【考研类试卷】计算机专业基础综合操作系统(进程管理)-试卷2及答案解析.doc

上传人:figureissue185 文档编号:1389568 上传时间:2019-12-03 格式:DOC 页数:11 大小:70.50KB
下载 相关 举报
【考研类试卷】计算机专业基础综合操作系统(进程管理)-试卷2及答案解析.doc_第1页
第1页 / 共11页
【考研类试卷】计算机专业基础综合操作系统(进程管理)-试卷2及答案解析.doc_第2页
第2页 / 共11页
【考研类试卷】计算机专业基础综合操作系统(进程管理)-试卷2及答案解析.doc_第3页
第3页 / 共11页
【考研类试卷】计算机专业基础综合操作系统(进程管理)-试卷2及答案解析.doc_第4页
第4页 / 共11页
【考研类试卷】计算机专业基础综合操作系统(进程管理)-试卷2及答案解析.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、计算机专业基础综合操作系统(进程管理)-试卷 2 及答案解析(总分:68.00,做题时间:90 分钟)一、单项选择题(总题数:22,分数:44.00)1.单项选择题 1-40 小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_2.计算机系统中判别是否有中断事件发生应是在( )。(分数:2.00)A.进程切换时B.执行完一条指令后C.执行 P 操作后D.由用户态转入核心态时3.若当前进程因时间片用完而让出处理机时,该进程应转变为( )状态。(分数:2.00)A.就绪B.等待C.运行D.完成4.一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。(分数:2.

2、00)A.先来先服务B.轮转C.最高响应比优先D.均衡调度5.作业调度程序是从处于( )状态的作业中选取一个作业并把它装入主存。(分数:2.00)A.输入B.收容C.执行D.完成6.进程处于下列( )等待状态时,它是处于非阻塞状态。(分数:2.00)A.等待从键盘输入数据B.等待协作进程的一个信号C.等待操作系统分配 CPU 时间D.等待网络数据进入内存7.若系统中有五个并发进程涉及某个相同的变量 A,则变量 A 的相关临界区是由( )临界区构成。(分数:2.00)A.2 个B.3 个C.4 个D.5 个8.在多进程的并发系统中,肯定不会因竞争( )而产生死锁。(分数:2.00)A.打印机B.

3、磁带机C.磁盘D.CPU9.通常不采用( )方法来解除死锁。(分数:2.00)A.终止一个死锁进程B.终止所有死锁进程C.从死锁进程处抢夺资源D.从非死锁进程处抢夺资源10.进程所请求的一次打印输出结束后,将使进程状态从( )。(分数:2.00)A.运行态变为就绪态B.运行态变为等待态C.就绪态变为运行态D.等待态变为就绪态11.共享变量是指( )访问的变量。(分数:2.00)A.只能被系统进程B.只能被多个进程互斥C.只能被用户进程D.可被多个进程12.UNIX 系统中,进程调度采用的技术是( )。(分数:2.00)A.时间片轮转B.先来先服务C.静态优先数D.动态优先数13.死锁现象是由于

4、( )造成的。(分数:2.00)A.CPU 数量不足B.内存数量不足C.多个进程抢夺并独占资源D.作业批处理14.临界区是指( )。(分数:2.00)A.一组临界资源的集合B.可共享的一块内存区C.访问临界资源的一段代码D.请求访问临界资源的代码15.在一段时间内,只允许一个进程访问的资源称为( )。(分数:2.00)A.共享资源B.独占资源C.临界资源D.共享区16.不需要信号量能实现的功能是( )。(分数:2.00)A.进程同步B.进程互斥C.执行的前趋关系D.进程的并发执行17.当中断发生后,进入中断处理的程序属于( )。(分数:2.00)A.用户程序B.OS 程序C.可能是用户程序,也

5、可能是 OS 程序D.单独的程序,既不是用户程序,也不是 OS 程序18.某计算机系统中有 8 台打印机,有 K 个进程竞争使用,每个进程最多需要 3 台打印机。该系统可能会发生死锁的 K 的最小值是( )。(分数:2.00)A.2B.3C.4D.519.进程 P0 和 P1 的共享变量定义及其初值如下: boolean flag2; int turn=0; flag0=false; flag1=false; 若进程 P0 和 P1 访问临界资源的伪代码按照下面设计: void P0()f进程 P0 while(TRUE) flag0=TRUE; turn=1; while(flag1 beg

6、in repeat wait(mutex): wait(empty): *应为 wait(full),而且还应该在wait(mutex)的前面* nextc:=buffer(out); out:=out+1; *考虑循环,应改为:out:=(out+1)mod n:* signal(mutex): *signal(empty)* consumer item in nextc: until false; end)解析:26.3 个进程 P1、P2、P3 互斥使用一个包含 N 个(N0)单元的缓冲区,P1 每次用 produce()生成一个正整数并用 put()送入缓冲区某一空单元中;P2 每次用

7、 getodd()从该缓冲区中取出一个奇数并用 countodd()统计奇数个数;P3 每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这 3 个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。(分数:2.00)_正确答案:(正确答案:(1)定义信号量 s1 控制 P1 与 P2 之间的同步,s2 控制 P1 与 P3 之间的同步,empty 控制生产者与消费者之间的同步,mutex 控制进程间互斥使用缓冲区。 (2)程序如下: vat s1=0,s2=0,empty=N,mutex=1; parbegin P1

8、:begin X=produce(): *生成一个数* P(empty); *判断缓冲区是否有空单元* P(mutex); *缓冲区是否被占用* Put(): If X2=0 V(s2): *如果是偶数,向 P3 发出信号* else V(s1): *如果是奇数,向 P2 发出信号* V(mutex): *使用完缓冲区,释放* end P2:begin P(s1); *收到 P1 发来的信号,已产生一个奇数* P(mutex):*缓冲区是否被占用* Getodd();Countodd():=countodd()+1;V(mutex); *释放缓冲区* V(empty); *向 P1 发信号,多

9、出一个空单元* end P3:begin P(s2) *收到 P1 发来的信号,已产生一个偶数* P(mutex); *缓冲区是否被占用* Geteven():Counteven():=counteven()+1;V(mutex); *释放缓冲区* v(empty); *向 P1 发信号,多出一个空单元* end parend)解析:27.假设程序 PA 和 PB 单独执行时所需的时间分别用 T A 和 T B 表示,并且假设 T A =1 h,T B =15 h,其中处理器工作时间分别为 T A =18 min,T B =27 min,如果采用多道程序设计方法,让 PA 和 PB 并行工作,

10、假定处理器利用率达到 50,系统开销为 15 min,请问系统效率能提高多少?(分数:2.00)_正确答案:(正确答案:(1)在串行情况下,两个程序运行时间共计 25 h;在并行方式下,处理器利用率为 50,说明处理器的工作时间占总运行时间的 50。根据已知条件,“处理器工作时间分别为 T A =18 min,T B =27 min”,即总运行时间为(18+27)50(min),考虑到还有 15 min 系统开销,故并行与串行的效率比为并行处理所需的时间串行处理所需要的时间总和=(18+27)50+152560=70。 (2)即采用多道处理技术之后,完成程序 P A 和程序 P B 所需的时间

11、为串行处理方法的 70。因此可以说效率提高了 30。)解析:28.某多道程序设计系统配有一台处理器和两台外设 101、102,现有 3 个优先级由高到低的 J1、J2、J3都已装入了主存,它们使用资源的先后顺序和占用时间分别是: J1:102(30 ms),CPU(10 ms);101(30 ms),CPU(10 ms); J2:101(20 ms),CPU(20 ms);102(40 ms); J3:CPU(30 ms),IO1(20 ms)。 处理器调度采用可抢占的优先数算法,忽略其他辅助操作时间,回答下列问题。 (1)分别计算作业 J1、J2 和J3 从开始到完成所用的时间。 (2)3

12、个作业全部完成时 CPU 的利用率。 (3)3 个作业全部完成时外设 101的利用率。(分数:2.00)_正确答案:(正确答案:为了清楚地描述作业执行情况,我们对题目假设的情况分析如下: (1)J1 占用102 传输 30 ms 时,J1 传输完成,抢占 J2 的 CPu,运行 10 ms,再传输 30 ms,运行 10 ms,完成。J1 从开始到完成所用的时间为:30+10+30+10=80(ms)。 J2 与其并行地在 IO1 上传输 20 ms,抢占 J3 的CPU,J2 运行 10 ms 后,被 J1 抢占 CPU,等待 10 ms 之后,J2 再次得到 CPU,运行 10 ms,J2

13、 启动 102 传输,40 ms 完成。J2 从开始到完成所用的时间为:20+10+10+10+40=90(ms)。 J3 在 CPU 上执行 20 ms,被J2 抢占 CPu,等待 30 ms,再运行 10ms,等待 10 ms,J3 启动 IO1 运行 20 ms 的传输,完成。J3 从开始到完成所用的时间为 20+30+10+10+20=90(ms)。 (2)三个作业全部完成时,CPU 的利用率为(10+20+30+10)90=79=78。 (3)三个作业全部完成时,外设 IO1 的利用率为(20+30+20)90=79=78。)解析:29.有 A、B 两个程序,程序 A 按顺序使用 C

14、PU 为 10s,使用设备甲为 5s,使用 CPU 为 5s,使用设备乙为5s,最后使用 CPU 为 10s。程序 B 按顺序使用设备甲为 10 s、使用 CPU 为 10s,使用设备乙为 5s,再使用CPU 为 5s,使用设备乙为 10s,试问: (1)在顺序环境下执行程序 A 和程序 B,CPU 的利用率是多少? (2)在多道程序环境下,CPU 的利用率是多少?(分数:2.00)_正确答案:(正确答案:此题考查学生对并发程序概念的理解。 (1)程序 A 和程序 B 顺序执行时,程序 A执行完毕程序 B 才开始执行。两个程序共耗时 75 s,其中占用 CPU 的时间为 40 s,因此顺序执行

15、时 CPU的利用率为 4075=53。 (2)在多道程序环境下,两个程序并发执行,其执行情况如下表所示。 由表中数据可以看出,两个程序共耗时 40 s,其中 CPU 运行时间为 40 s,故此时 CPU 的利用率为4040=100。 )解析:30.何谓死锁?产生死锁的原因和必要条件是什么?在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高?(分数:2.00)_正确答案:(正确答案:(1)死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。 (2)产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法。 (3)产生死锁的必要条件是互斥

16、条件、请求和保持条件、不可剥夺条件和循环等待条件。 (4)解决死锁可归纳为四种方法:预防死锁、避免死锁、检测死锁和解除死锁。 (5)解决死锁的四种方法中,预防死锁是最容易实现的,而避免死锁的发生则可以使资源的利用率最高。)解析:31.简述预防死锁的办法。(分数:2.00)_正确答案:(正确答案:(1)方法一:如果系统当前存在的资源数量能够满足进程的资源需求,便一次性地为进程分配其所需的全部资源;在该进程完成之后再一次性地回收全部资源。这个做法被称为摒弃“请求和保持”条件,该方法可以预防死锁。 (2)方法二:当系统中某些进程在已经占有一定数量资源的情况下,又提出新的资源请求,操作系统不能立即满足

17、该进程的需求时,该进程必须立即释放已经占有和保持的所有资源,待以后需要时再重新申请;这种可以剥夺进程资源的做法可以有效地防止死锁的产生。其被称为摒弃“不可剥夺”条件。 (3)方法三:就是采用一定的方法,将所有可提供的资源按类型排序编号,所有进程对资源的请求也必须严格按序号递增的次序提出,避免产生资源占有和资源需求的回路出现,造成死锁的产生。此方法也被称为摒弃“环路等待”条件。)解析:32.为使用户进程互斥地进入临界区,可以把整个临界区实现成不可中断的过程,即用户有屏蔽所有中断的能力。每当用户程序进入临界区的时候,屏蔽所有中断;当出了临界区的时候,再开放所有中断。你认为这种方法有什么缺点?(分数

18、:2.00)_正确答案:(正确答案:此题主要考查中断概念在操作系统设计过程中的重要作用与临界区的概念。 用户进程进入临界区时屏蔽所有中断,包括系统程序的中断。假如屏蔽的是用户进程,确实可以保护临界资源,但如果连系统所发出的中断也被屏蔽的话,就会引起系统错误。虽然系统外中断往往与当前运行的程序无关,但如果是一些重要的硬件中断,如电源故障等,就可能会引起错误,故不可盲目屏蔽所有中断。)解析:33.有三个进程 PA、PB 和 PC 合作解决文件打印问题:PA 将文件记录从磁盘读入主存的缓冲区 1,每执行一次读一个记录;PB 将缓冲区 1 的内容复制到缓冲区 2,每执行一次复制一个记录;PC 将缓冲区

19、 2 的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录的大小。请用 P、V 操作来保证文件的正确打印。(分数:2.00)_正确答案:(正确答案:本题考查用 P、V 操作解决进程的同步互斥问题。 (1)进程 PA、PB、PC 之间的关系为:PA 与 PB 共用一个单缓冲区,PB 又与 PC 共用一个单缓冲区,其合作方式如下图所示。当缓冲区 1为空时,进程 PA 可将一个记录读入其中;若缓冲区 1 中有数据且缓冲区 2 为空,则进程 PB 可将记录从缓冲区 1 复制到缓冲区 2 中;若缓冲区 2 中有数据,则进程 PC 可以打印记录。在其他条件下,相应进程必须等待。事实上,这是一个

20、生产者一消费者问题。 )解析:34.在一间酒吧里有 3 个音乐爱好者队列,第 1 队的音乐爱好者只有随身听,第 2 队只有音乐磁带,第 3队只有电池。而要听音乐就必须随身听、音乐磁带和电池这 3 种物品俱全。酒吧老板一次出售这 3 种物品中的任意两种。当一名音乐爱好者得到这 3 种物品并听完一首乐曲后,酒吧老板才能再一次出售这 3 种物品中的任意两种。于是第 2 名音乐爱好者得到这 3 种物品,并开始听乐曲。全部买卖就这样进行下去。试用 P、V 操作正确解决这一买卖。(分数:2.00)_正确答案:(正确答案:本题考查用 P、V 操作解决进程的同步互斥问题。 (1)第 1 队音乐爱好者要竞争“待

21、出售的音乐磁带和电池”,而且在初始状态下系统并无“待出售的音乐磁带和电池”,故可为该种资源设置一初值为 0 的信号量 buy1;同样,需设置初值为 0 的 buy2、buy3 分别对应“待出售的随身听和电池”、“待出售的随身听和音乐磁带”。另外,为了同步买者的付费动作和卖者的给货动作,还需设置信号量 payment 和 goods,以保证买者在付费后才能得到所需商品。信号量 music_over 用来同步音乐爱好者听乐曲和酒吧老板的下一次出售行为。 (2)具体的算法描述如下: semaphore buy1=buy2=buy3=0 semaphore payment=0; semaphore g

22、oods=0; semaphore music_over=0; cobegm process boss() 酒吧老板 while(TRUE) 拿出任意两种物品出售: if(出售的是音乐磁带和电池)V(buy1); else if(出售的是随身听和电池)V(buy2): else if(出售的是随身听和音乐磁带)V(buy3); P(payment); 等待付费 V(goods); 给货 P(music_over); 等待乐曲结束 process fanl() 第1 队音乐爱好者 while(TRUE) P(buyl); 等待有音乐磁带和电池出售 V(payment); 付费 P(goods); 取货 欣赏一曲乐曲: V(music_over); 通知老板乐曲结束 process fan2() 第 2 队音乐爱好者 while(TRUE) P(buy2); 等待有随身听和电池出售 V(payment); 付费 P(goods); 取货 欣赏一曲乐曲: V(music_over); 通知老板乐曲结束 process fan3() 第 3 队音乐爱好者 while(TRUE) P(buy3); 等待有随身听和音乐磁带出售 V(payment): 付费 P(goods): 取货 欣赏一曲乐曲; V(music_over):通知老板乐曲结束 coend)解析:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 大学考试

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1