操作系统习题及答案三

  • 格式:docx
  • 大小:54.82 KB
  • 文档页数:11

习题三同步、通信与死锁一、单项选择题1在单一处理机上,将执行时间有重叠的几个程序称为()。

A. 顺序程序B.多道程序C.并发程序D.并行程序2、进程间的基本关系为()。

A. 相互独立与相互制约B.同步与互斥C.并行执行与资源共享D.信息传递与信息缓冲3、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。

A. 同步B.互斥C.竞争D.合作4、在一段时间内,只允许一个进程访问的资源称为()。

A.共享资源B.临界区C.临界资源D.共享区5、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是()。

A. S>0B. S=0C. S<0D. S=06、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。

A . 10 B. 8 C. 6 D. 47、临界区是指()。

A. 并发进程中用于实现进程互斥的程序段B. 并发进程中用于实现进程同步的程序段C. 并发进程中用户实现进程通信的程序段D. 并发进程中与共享变量有关的程序段8、下列对线程的描述中,()是错误的。

A.不同的线程可执行相同的程序 B •线程是资源的分配单位C.线程是调度和执行单位 D •同一进程中的线程可共享该进程的主存空间9、P, V操作是()A.两条低级进程通信原语B.两组不同的机器指令C. 两条系统调用命令D. 两条高级进程通信原语10、若P, V操作的信号量S初值为2,当前值为-1,则表示有()等待进程。

A. 0 个B. 1 个C. 2 个D. 3 个11、()是一种只能进行P操作和V操作的特殊变量.A.调度B.进程C.同步D.信号量12、下面的叙述中正确的是()。

A. 操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同B. 为了避免发生进程死锁,各进程只能逐个申请资源C. 操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息D. 进程同步是指某些进程之间在逻辑上的相互制约关系13、对于两个并发进程,设互斥信号量为mutex,若mutex=0 ,则().A.表示没有进程进入临界区B. 表示有一个进程进入临界区C. 表示有一个进程进入临界区,另一个进程等待进入D. 表示有两个进程进入临界区14、发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏()条件是不太实际的。

A •互斥B •不可抢占C. 部分分配 D •循环等待15、资源的按序分配策略可以破坏()条件。

A •互斥使用资源B •占有且等待资源C. 非抢夺资源 D •循环等待资源16、在()的情况下,系统出现死锁。

A •计算机系统发生了重大故障B •有多个封锁的进程同时存在C.若干进程因竞争资源而无休止地相互等待他方释放己占有的资源D •资源数大大小于进程数或进程同时申请的资源数大大超过资源总数17、银行家算法是一种()算法。

A•死锁解除C.死锁预防B •死锁避免D .死锁检测18某系统中有3个并发进程,都需要冋类资源4个, 试问该系统不会发生死锁的最少资源数是()。

A • 9 B.10 C. 11D. 1219、信箱通信是一种()通信方式。

A.直接通信B•间接通信C.低级通信 D. 信号量20、并发进程失去了封闭性是指()。

A .多个相对独立的进程以各自的速度向前推进B •并发进程的执行结果与速度无关C.并发进程执行时,在不同时刻发生的错误D •并发进程共享变量,其执行结果与速度有关二、填空题1、若一个进程已进入临界区,其他欲进入临界区的进程必须 _________ 。

2、用P, V操作管理临界区时,任何一个进程在进入临界区之前应调用操作,退出临界区时应调用______ 操作。

3、用信箱实现通信时,应有_____ 和______ 两条基本原语。

4、有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是_______ 。

5、死锁产生的必要条件有四个,即_________ 、________ 、________ 、_________ 。

6、银行家算法中,当一个进程提出的资源请求将导致系统从进入时,系统就拒绝它的资源请求。

7、PV操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为。

8、在多线程操作系统中,线程与进程的根本区别在于进程作为单位,而线程是__________ 单位。

9、临界区是指并发进程中与_________ 有关的程序段10、操作系统中信号量的值与________ 的使用情况有关,它的值仅能由_________ 来改变。

三、简答题1、什么是进程的互斥与同步?2、一个进程进入临界区的调度原则是什么?3、在操作系统中,P操作和V操作各自的动作是如何定义的?4、为什么并发进程执行时可能会产生与时间有关的错误?如何避免?5、为什么说采用有序资源分配法不会产生死锁?四、应用题1、四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。

但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。

为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:(1)如何定义信号量及初值;(2)在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:进程A 进程B 进程C 进程D[1] ;[3] ;[5] ;[7];read F;read F;read F;readF;[2] ;[4] ;[6] ;[8];2、设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。

卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印,问:①系统要设几个进程来完成这个任务?各自的工作是什么?②这些进程间有什么样的相互制约关系?③用P、V操作写出这些进程的同步算法。

3、生产者-消费者问题表述如下:一组生产者进程和一组消费者进程通过缓冲区发生联系。

生产者进程将生产的产品送入缓冲区,消费者进程则从中取出产品。

假定环形缓冲池中共有N个缓冲区,编号为0~N-1。

为了描述生产者进程和消费者进程,设指针in和out分别指向生产者进程和消费者进程当前所用的缓冲区(buffer),初值均为0。

(1)应设置三个信号量实现两类进程的同步,分别是full、empty和mutex。

请说出它们的含义及初值。

(2)下面是生产者进程的算法描述,请填写相应的P、V操作语句。

while (TRUE){----------------------- ;产品送往buffer (in);in= (in+1)mod N ;/*mod 为取模运算*/(3) 指出生产者进程算法中的临界区是哪一段程序? 4、在银行家算法中,若出现下述资源分配情况:Allocatio nNeedAvailable P0 0 0 32 0 0 1 2 16 2 2P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6P30 3 3 2 0 6 5 2P4 0 0 1 40 6 5 6试问:(1)该状态是否安全?(2)如果进程P2提出请求Request2(1, 2,2,2)后,系统能否将资源分配给 它?5、 桌上有一空盘,允许存放一只水果。

爸爸可向盘中放苹果,也可向盘中放桔子,儿子专 等吃盘中的桔子,女儿专等吃盘中的苹果。

规定当盘空时一次只能放一只水果供吃者 取用,请用P, V 原语实现爸爸、儿子、女儿三个并发进程的同步。

6、 哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论:在讨论的间 隙四位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如图2.9所示。

请用信号量及P 、V 操作说明这四位哲学家的同步、互斥过程。

甲刀2 叉1答案三同步、通信与死锁一、单项选择题1、C2、B3、A4、C5、A6、C7、D8、B9、A10、B11、D 12 、D13、B14、A15、D16、C17 、B18、B19、B20、D二、填空题1、等待2、P、V3、发送、接收4、1至-(m-1)5、互斥条件、不剥夺条件、部分分配、环路条件6、安全状态、不安全状态7、低级通信8、资源分配、调度和执行单位9、共享变量10、资源、PV 操作三、简答题1.进程的互斥是指在逻辑上本来完全独立的若干进程,由于竞争同一个资源而产生的相互制约关系。

进程的同步是进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。

2.一进程进入临界区的调度原则是:①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

②任何时候,处于临界区内的进程不可多于一个。

如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。

③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。

④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现忙等”现象。

3.P 操作顺序执行下述两个动作:①信号量的值减1,即S=S-1;②如果S>0,则该进程继续执行;如果S v 0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止)。

V操作顺序执行下述两个动作:①S值加1,即S=S+1 ;②如果S>0,则该进程继续运行;如果s w0,则释放信号量队列上的第一个PCB (即信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V 操作的进程继续运行。

4.有交往的并发进程可能会同时使用共享资源,如果对这种情况不加控制,由于进程占用处理器的时间、执行的速度和外界的影响等, 就会引起与时间有关的错误。

只要使若干并发进程的相关临界区互斥执行,就可避免造成这类错误。

5.为了便于说明,不妨设系统中有m类资源,n个进程,分别用Rl, R2,…,Rm (1, 2,…,m可看作资源编号)和P1, P2,…Pn表示。

根据有序资源分配法可知,进程申请资源时必须按照资源编号的升序进行,即任何进程在占有了Ri 类资源后,再申请的资源Rj的编号j 一定大于i。

因此在任一时刻,系统中至少存在一个进程Pk,它占有了较高编号的资源Rh,且它继续请求的资源必然是空闲的,因而Pk可以一直向前推进直至完成,当Pk运行完成后即会释放它占有的所有资源;在Pk完成之后,剩下的进程集合中同样会存在一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以一直向前推进直至完成;以此类推,所有进程均可运行完成,故不会发生死锁。

四、应用题1解:(1)定义二个信号量S1 S2,初值均为1,即:S1=1, S2=1 (共2分)(2)从[1]到[8]分别为:P(S1), V(S1) , P(S2), V(S2) , P(S1) , V(S1) , P(S2),V(S2)2、解:①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。