1、全国自考操作系统(进程通信)模拟试卷 1 及答案与解析一、单项选择题1 测试并设置指令 testset 是一种_。(A)锁操作指令(B)互斥指令(C)判断指令(D)信号量指令2 读者写者是一个_问题。(A)互斥(B)半同步(C)全同步(D)共享3 在 UNIX 扣,向消息队列发送一个消息的系统调用是_。(A)msgsnd(B) shmat(C) semop(D)send4 UNIX 的软中断机制是_。(A)设备中断(B)信号量(C)系统调用(D)信号5 系统出现死锁的原因是_。(A)计算机系统发生了重大故障(B)系统中所有的进程都被封锁了(C)若干进程因竞争资源而无休止地等待着,不释放已占有的
2、资源(D)进程同时申请的资源数大大超过资源总数6 资源的按序分配策略可以破坏产生死锁的_条件。(A)互斥执行(B)保持并等待(C)不可剥夺(D)循环等待7 系统有 4 个进程,每个进程最多同时申请两个同类资源,系统至少应有_个此类同类资源才不会发生死锁。(A)5(B) 6(C) 7(D)8二、填空题8 一次仅允许一个进程访问的资源称为_。9 在操作系统中,使用信号量可以解决进程间的_与_问题。10 有 m 个进程共享 n 个同类临界资源,如使用信号量解决进程间的互斥问题,那么信号量的取值范围为_。11 采用多线程技术可把生产者与消费者问题中的两个进程改为一个进程中的两个线程来处理,这两个线程仍
3、具有_性,但不再需要额外的_。12 在默认的情况下,大多数信号会导致接收进程_。13 银行家算法是死锁_算法。三、简答题14 使用开关中断方法实施临界区互斥的缺点是什么?克服该缺点的改进方法是什么?15 为什么要在生产者和消费者的同步问题中加入互斥信号量 mutex,而在计算进程和打印进程的两个进程之间的同步问题中不要加入互斥信号量 mutex?16 信号与中断有哪几点不同之处?17 说明可通过哪些方法可以预防死锁。17 现有三个进程 P1、P2 、 P3,共享(A,B,C)这三类资源,系统总的资源数为(6,8, 6),各进程对资源的当前分配情况和最大需求量如表 43 所示。请按银行家算法解答
4、下列问题:18 目前系统是否处于安全状态?19 现在如果进程 P3 提出申请 (1,l,1)个资源或进程 P1 提出申请(1,1,0) 个资源,系统是否能为它们分配资源?四、综合题20 有一座只能容单列汽车通过的长窄桥,桥两边的汽车在对面没有汽车在桥上的情况下可以上桥并通过桥,且同一方向可以允许任意多的汽车通过。请用信号量操作实现桥两边汽车的安全通过,两边的汽车各作为一组进程,并说明各个信号量的意义和初值。五、判断题21 能允许多个进程同时进入不同的临界段。( )(A)正确(B)错误22 共享型设备使用前不必先申请分配。( )(A)正确(B)错误23 利用锁操作既可以实现进程间的同步,也能实现
5、进程间的互斥。( )(A)正确(B)错误24 为了实现阻塞唤醒协议,就需要设置 2 个信号量 S1 和 S2。( )(A)正确(B)错误25 外部设备中断可以通过中断控制器和中断向量进入软中断处理程序。( )(A)正确(B)错误26 信号处理比中断处理延时大。( )(A)正确(B)错误27 信号的接收方能识别发送方的身份(即进程 ID)。( )(A)正确(B)错误28 信号量 semWait、semSignal 操作的次序不当就可能形成死锁。( )(A)正确(B)错误全国自考操作系统(进程通信)模拟试卷 1 答案与解析一、单项选择题1 【正确答案】 A【知识模块】 进程通信2 【正确答案】 A
6、【试题解析】 在读者写者问题中仅需要互斥,不需要同步。【知识模块】 进程通信3 【正确答案】 A【知识模块】 进程通信4 【正确答案】 D【知识模块】 进程通信5 【正确答案】 C【知识模块】 进程通信6 【正确答案】 D【知识模块】 进程通信7 【正确答案】 A【知识模块】 进程通信二、填空题8 【正确答案】 临界资源【知识模块】 进程通信9 【正确答案】 同步、互斥【知识模块】 进程通信10 【正确答案】 n-(m-n)【知识模块】 进程通信11 【正确答案】 并发、系统公共缓冲区【知识模块】 进程通信12 【正确答案】 终止【知识模块】 进程通信13 【正确答案】 避免【知识模块】 进程
7、通信三、简答题14 【正确答案】 用硬件锁,即用开、关中断的方法可实现锁操作。但这种方法有以下几个不足之处。(1)这种方法只能用于单 CPU 系统。在多处理机系统中,禁止中断只影响执行关中断指令的 CPU,在其他 CPU 上并行执行的相关进程仍能不受阻碍地进入临界段。(2)如果临界段操作比较复杂,执行时间较长,那么长时间地关闭中断会降低系统对外部中断响应的速度,影响系统处理紧迫事件的能力。(3)一个运行系统可以有很多的临界段,应当允许多个进程进入不同的临界段并发地运行。采用开、关中断的硬件锁方法禁止了其他无关的进程进入不同的临界段,这种做法显然伤害了很多的“无辜者” 。克服该缺点的改进方法是用
8、硬件锁锁软件锁,用软件锁锁临界段。由于软件锁的LOCK 操作包含测试和关闭两个操作步骤,它本身也是一种临界段,故可以用硬件锁开、关中断保证软件锁操作的完整性。由于软件锁是一种程序长度最短的临界段,故用开、关中断的方法保证锁操作的完整性几乎不会影响到系统响应其他的中断请求。用软件锁保证临界段执行的独占性,也不会影响到其他无关进程进入不同的临界段。【知识模块】 进程通信15 【正确答案】 由于在生产者和消费者问题中的两个信号量 buffers 和 products的值都可以大于 1,因此就可能发生有多个生产者进程和消费者进程同时通过semWait(buffers)和 sereSignal(prod
9、ucts)操作,进入缓冲区存或取产品的情况。由于存放产品的缓冲区是一种数据结构,本身也是临界资源,故对该部分的操作是一个临界段,各个进程也要互斥地执行。在计算进程和打印进程的两个进程之间的同步问题中,由于受对方的制约,两个进程不可能同时访问缓冲区,故这种同步中就隐含了互斥。如果像生产者和消费者问题一样,也加入互斥信号量 mutex,尽管没有问题,但是这是没有必要的。【知识模块】 进程通信16 【正确答案】 信号与中断有以下几点不同之处:(1)中断有优先级,而信号没有优先级;(2)中断处理程序是在核心态下运行的,而信号处理程序如是由用户编制的,则可以在用户态下运行;(3)中断响应一般是及时的,进
10、程不必主动去判断是否发生了中断,而信号需要进程在执行中的某几个时机主动去询问,并做出响应,故一般延时较大。【知识模块】 进程通信17 【正确答案】 排除互斥执行条件:对于互斥设备,用虚设备技术将需互斥执行的如打印机等独享设备改造成可同时使用的共享设备,就能破坏本条件,预防死锁。排除“请求和保持 ”条件:只要进程一次申请它所需要的所有的资源,在所有的需要同时满足以前,阻塞自己。排除“不可剥夺 ”条件:一个方法是,如占有某些资源的进程不能获得进一步的资源,该进程必须释放原先所占用的资源;如果需要,以后再申请这些资源。另外的方法是,如果一个进程需要申请当前正被其他进程占用的资源,操作系统就要求后者释
11、放它所占用的这类资源。在后申请资源的进程优先级较高和资源的状态容易保存和便于以后恢复的情况下,这种预防死锁的方法才是实际可行的。处理机就是这类资源的例子,如剥夺像打印机那样的资源,就会使输出变得杂乱无章、毫无意义。排除“环路等待 ”条件:将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出。【知识模块】 进程通信【知识模块】 进程通信18 【正确答案】 系统总的资源数为(6,8,6),系统尚余的资源为(1,2,1),三个进程尚需的资源数如表 15-2 的“尚需的资源数” 一栏所示,由于进程 P2 尚需的资源数为(1 ,2,0),系统剩余的资源能满足其全部资源需求,它在有限
12、时间内会归还这些资源,因此系统可分配资源将达到(3,2,2);这样就可分配给进程 P1,等它归还资源后,可分配资源达到(4,7,5);接着又可分配给进程 P3,满足其全部请求。所以说目前系统处于安全状态。【知识模块】 进程通信19 【正确答案】 若此时先给进程 P3 分配(1,1, 1)个资源,进程 P3 尚需(0,6, 3),而系统剩余的资源量为(0,1,0) ,处于不安全的状态,因为这时无法满足进程 P1 和 P2 中任何一个进程的资源要求,系统就可能产生死锁。类似地如先给 P1 分配 (0,1,1)个资源,则系统剩余的资源量为 (1,1,0),同样也无法满足进程 P2 和 P3 中任何一
13、个进程的资源要求,这样系统也可能产生死锁。【知识模块】 进程通信四、综合题20 【正确答案】 这个问题类似于读者写者问题中的读者,区别是桥两边各是一组独立的读者,这两者之间需要互斥。int count1,count2:桥两边汽车上桥的计数器变量,初值为 0。mutex1,mutex2:计数器变量加减时的互斥信号量,初值为 1。first:两边允许第一辆汽车上桥的互斥信号量,初值为 1。一边的汽车: 另一边的汽车:while(1) while(1)semWait(mutex1); semWait(mutex2);if(+count1=1) if(+count2=1)semWait(first);
14、 semSignal(first);semSignal(mutex1); semSignal(mutex2);上桥,通过; 上桥,通过;semWait(mutex1); semWait(mutex2);if(-count1=0) if(-count2=0)semSignal(first); semSignal(first);semSignal(mutexl); semSignal(mutex2); 。【知识模块】 进程通信五、判断题21 【正确答案】 A【试题解析】 不同的临界段涉及不同的临界资源,允许不同的进程并发地访问不同的临界资源。【知识模块】 进程通信22 【正确答案】 A【知识模块】 进程通信23 【正确答案】 B【知识模块】 进程通信24 【正确答案】 B【试题解析】 阻塞唤醒协议是半同步。一个进程 a 需要同步等待另一个进程b,而进程 b 则不必同步等待进程 a,故只需要设置 1 个信号量。【知识模块】 进程通信25 【正确答案】 B【试题解析】 软中断处理程序是通过信号机制进入的。【知识模块】 进程通信26 【正确答案】 A【知识模块】 进程通信27 【正确答案】 B【知识模块】 进程通信28 【正确答案】 A【知识模块】 进程通信
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1