当前位置:文档之家› 计算机操作系统练习题及答案

计算机操作系统练习题及答案

单项选择1. 两个进程合作完成一项任务。

在并发执行中,一个进程要等待其合作伙伴发来消息,或建立某个条件后再运行,这种制约性合作关系被称为进程的—A—。

A.同步B.执行C.互斥D.调度2. 为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式通常称为—C—。

A. 进程互斥B. 进程同步C. 进程通信D. 进程制约3. 除了因为资源不足,进程竞争资源可能出现死锁外,不适当的—C—也可能产生死锁。

A.进程优先权B.资源线性分配C.进程推进顺序D.分配队列优先权4. 除了可以采用资源剥夺法解除死锁外,还可以采用—C—方法解除死锁。

A.修改信号量B.拒绝分配新的资源C.撤消进程D.执行并行操作5. 资源的按序分配策略可以破坏—D—条件。

A. 互斥B. 请求与保持C. 不剥夺D. 环路等待6. 在—C—的情况下,系统出现死锁。

A. 计算机系统发生了重大故障B. 有多个阻塞的进程存在C. 若干个进程因竞争资源而无休止地相互等待他方释放已占有的资源D. 资源数远小于进程数或进程同时申请的资源数远超过资源总数7.某系统中有3个进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是—B—。

A.9B.10C.11D.128. 银行家算法是一种—B—算法。

A. 解除死锁B.避免死锁C. 预防死锁D. 检测死锁9. 在下列解决死锁的方法中,属于死锁预防策略的是—B—。

A. 银行家算法B. 资源有序分配C. 死锁检测法D. 资源分配图化简法10. 设有n个进程共用一个相同的程序段(临界区),如果每次最多允许m个进程(m≤n)同时进入临界区,则信号量的初值应为—B—。

A. nB. mC. m-nD. -m11.死锁定理是用于处理死锁的哪一种方法—C—。

A.预防死锁B.避免死锁C.检测死锁D.解除死锁12. AND信号量集机制是为了—C—。

A. 信号量的集中使用B. 解决结果的不可再现性问题C. 防止系统的不安全性D. 实现进程的相互制约13.临界区是指—A—。

A.与共享变量有关的程序段B.公共数据区C.系统管理区D.临时的工作区14. “死锁”问题的讨论是针对—D—的。

A. 某个进程申请系统中不存在的资源B. 某进程申请资源数超过了系统拥有的最大资源数C.硬件故障D. 多个并发进程竞争独占型资源15. 下列的信号量操作中,相当于一个可控开关的是—D—。

A. Swait(s,d,d)B. Swait(s,1,1)C. Swait(s,1,0)D. Swait(s,0,0)16.不是信号量能实现的功能是—D—。

A.进程同步B.进程互斥C.执行的前趋关系D.进程的并发执行17. 若P、V操作的信号量S初值为2,当前值为-1,则表示有—B—等待进程。

A. 0个B. 1个C.2个D. 3个18.发生死锁的必要条件有四个,要预防死锁的发生,可以破坏这四个必要条件,但破坏—A—条件是不太现实的。

A.互斥B.请求和保持C. 不剥夺D.环路等待19. 下面关于检测死锁的叙述错误的是—C—。

A. 检测死锁的方法对系统资源的分配不加限制,只要有则可以分配B. 检测死锁中系统需要反复检测各进程资源申请和分配情况C.检测死锁是预防系统进入死锁D. 检测死锁只能发现死锁,而不能解除死锁填空1. 信号量的物理意义是:当前信号量的值大于零时,表示(可用资源的数目);当前信号量的值小于零时,其绝对值表示(因请求该资源而被阻塞的进程数目)。

2. 进程间的高级通信机制可归结为3类,分别是(共享存储器系统)、 (消息传递系统)和(管道通信)。

3. 资源分配中,摒弃请求和保持条件,可以采用(资源原子分配法);摒弃不剥夺条件采用(剥夺方式);摒弃环路等待条件,可采用(资源有序分配法)。

4. 系统处于安全状态则(一定不会)发生死锁,系统处于不安全状态则(有可能)发生死锁。

5. 有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是(1~1-m)。

问答1. a, b两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下:当ab之间有车辆在行驶时,同方向的车可以同时驶入ab段,但另一方向的车必须在ab段外等待;当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a点与b点同时驶入;当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。

请用信号量为工具,对ab段实现正确管理以保证行驶安全。

答:设置信号量。

共享变量ab表示由a点进入ab段上的车辆数,ab初值为0。

共享变量ba表示由b点进入ab段上的车辆数,ba初值为0。

信号量S1表示a点进入的车辆访问共享变量ab,初值为1;信号量S2表示b点进入的车辆访问共享变量ba,初值为1 ;信号量Sab表示a点、 b点的车辆湖斥进入ab段,初值为1。

Semaphore S1=1,S2=1,Sab=1int ab=ba=0;void Pab(){ while(1){ wait(S1);if (ab==0)wait(Sab);ab=ab 1;signal(S1);车辆由a驶向b;wait(S1);ab=ab-1;if (ab==0)signal(Sab);signal(S1); }}void Pba(){ while(1){ wait(S2);if (ba==0)wait(Sab);ba=ba 1;signal(S2);车辆由b驶向a;wait(S2);ba=ba-1;if (ab==0)signal(Sab);signal(S2); } }Main(){ cobegin{Pab();Pba(); } }2.在公共汽车上,司机与售票员的工作流程分别为,司机:启动车辆→正常运行→到站停车→启动车辆….;售票员:关车门→售票→开车门→关车门….。

为保证乘客安全,司机与售票员要密切配合,协调工作。

请用信号量来实现司机与售票员之间的同步。

汽车运行中,司机与售票员之间的同步关系为:售票员在关车门之后,向司机发开车信号,司机接到开车信号后启动车辆,汽车运行时售票员售票,到站后司机停车,售票员在停车后开车门让乘客下车。

设置信号量S1,S2,S1表示是否允许司机启动车辆,初值为0 ;S2表示是否允许售票员开车门,初值为0。

答:Semaphore S1=S2=0;void Driver(){ while(1){ wait(S1);启动车辆;正常运行;到站停车;signal(S2);}}void Busman(){ while(1){ 关车门;signal(S1);售票;wait(S2);开车门;} }Main(){ cobegin{Driver();Busman();} }3. 产生死锁的四个必要条件是什么?答:产生死锁的四个必要条件分别如下:[1] 互斥条件。

进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一个进程所占有。

[2] 请求与保持条件。

进程因请求资源而阻塞时,对已经获得的资源保持不放。

[3] 不可剥夺条件。

进程已经获得的资源,在没有使用完毕之前,不能被剥夺。

[4] 环路等待条件。

发生死锁时,必然存在一个“进程——资源”的环形链。

4. 为什么采用有序资源分配法不会产生死锁?假设系统有m类资源,n个进程,分别用R1,R2,… ,Rm和P1,P2,… ,Pm表示。

根据有序资源分配法,进程申请资源必须按照资源编号升序申请,即,某进程已经拥有Ri资源,再申请的Rj资源,则j一定比i大。

因此,在任一时刻,系统中至少存在一个进程Pk,它占有较高编号的资源Rh,且它申请的资源必然是空闲的,因而能得到满足。

进程Pk能完成,之后释放其资源,使得其它进程也能得到满足,从而完成各自任务而不会导致死锁。

5. 不安全状态是否必然导致系统进入死锁状态?答:不一定。

安全性检查中使用的向量Max是进程执行前提供的,而在实际运行过程中,一个进程需要的最大资源可能小于Max,如,一个进程对应的程序中有一段进行错误处理的代码,其中需要n个A类资源,若该进程在运行过程中没有碰到相应的错误而不需要错误处理,则它实际上不会请求这n个A类资源。

6. . 简述死锁防止与死锁避免的区别。

答:死锁的避免是在每次资源分配的时候采取措施避免死锁;死锁的防治是利用打破死锁的三个必要条件,即,请求与保持、不剥夺、环路等待,来提前采取相应的预防,这种方法条件较苛刻且实现困难。

7 .有三个并发进程R,M,P,它们共享一个缓冲器B。

进程R负责从输入设备读信息,每次读出一个记录后把它存放在缓冲器B中。

进程M在缓冲器B中加工进程R 存入的纪录。

进程P把加工后的记录打印输出。

缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可存放一个新记录。

请用P、V操作作为同步机制写出他们并发执行时能正确工作的程序。

答:Semaphore S1=1,S2=S3=0;void R(){ int x;While(1){从输入设备读一个数data;x=data;wait(S1);B=x;signal(S2);}}void M(){ While(1){ wait(S2);加工B中数据;B=x;signal(S3);}}void P(){ int Z;While(1){ wait(S3);Z=B;signal(S1);打印Z中的数;} }Main(){ cobegin {R();M();P();}}。

相关主题