当前位置:文档之家› 操作系统习题及答案三

操作系统习题及答案三

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

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

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

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

A. 共享资源B. 临界区C.临界资源 D. 共享区的资源数大大超过资源总数17、银行家算法是一种()算法。

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

A.9 B.10 C.11 D.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;read F;[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、在银行家算法中,若出现下述资源分配情况:试问:(1)该状态是否安全? (2)如果进程P2提出请求Request2(1,2,2,2)后,系统能否将资源分配给它? 5、桌上有一空盘,允许存放一只水果。

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

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

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

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

PP 0 0 3 2 1 0 0 0 1 2 1 7 1 6 2 2 Allo Ne Ava答案三 同步、通信与死锁一、单项选择题1、C2、B3、A4、C5、A6、C7、D8、B9、A 10、B甲乙11、D 12、D 13、B 14、A 15、D 16、C 17、B 18、B 19、B 20、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<0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V 操作,把它释放出来为止)。

V操作顺序执行下述两个动作:①S值加1,即S=S+1;②如果S>0,则该进程继续运行;如果S≤0,则释放信号量队列上的第一个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中取出信息,并在打印机上印出。

②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。

③信号量含义及初值:B1full —— 缓冲区B1满,初值为0;B1empty ——缓冲区B1空,初值为0; B2full —— 缓冲区B2满,初值为0;B2empty ——缓冲区B2空,初值为0;R 进程 C 进程 P 进程3.答:(1)full 表示放有产品的缓冲区数,初值为0;empty 表示可供使用的缓冲区数,初值为N ;mutex 为互斥信号量,初值为1,表示互斥进入临界区。

(2)P (empty ),P (mutex ),V (mutex ),V (full )(3)生产者进程算法中的临界区是如下程序段:产品送往buffer (in );in=(in+1) mod N; /*mod 为取模运算*4.解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分 析情况:从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,Pl ,P2},故该状态是 安全的。

(2)P2提出请求Request2(1,2,2,2),按银行家算法进行检查:.Request2(1,2,2,2) ≤Need2(2,3,5,6).Request2(1,2,2,2) ≤Available(1,6,2,2). 试分配并修改相应数据结构,资源分配情况如下:P 0 P 1 6 2 21 6 0 0 12 0 6 0 03 2 0 3 W Ne Allo 1 6 54 1 9 truetruetrue Fini Work+All.再利用安全性算法检查系统是否安全,可用资源Available (0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。

5.解:在本题中,应设置三个信号量S, So, Sa ,信号量S 表示盘子是否为空,其初值为1;信号量So 表示盘中是否有桔子,其初值为0;信号量Sa 表示盘中是否有苹果,其初 值为0。

同步描述如下:int S=1;int So=0;int Sa=0;main ()tcobeginfather ();son ();PP 0 0 3 2 1 0 0 0 1 2 1 7 0 4 0 0 Allo Ne Avadaughter();coend}father( ){while(1){P(S);将水果放入盘中:If (放入的是桔子) V (So);else V (Sa):}}son( ){while(1){P(So);从盘中取出桔子;V(S):吃桔子;}}daughter(){while(1){P(Sa):从盘中取出苹果;V(S):吃苹果;}}6.解:在本题中,应设置四个信号量forkl、fork2、knifel、knife2,其初值均为1,分别表示资源叉1、叉2、刀1、刀2是否可用。

相关主题