1、计算机专业基础综合(进程管理)模拟试卷 4 及答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 正在运行的进程,因某种原因而暂时停止运行,等待某个事件的发生,此时处于( )状态。(A)运行(B)完成(C)就绪(D)阻塞2 进程从运行状态转换为就绪状态的可能原因是( )。(A)被调度程序选中占用处理机(B)等待某一事件(C)等待的事件已经发生(D)时间片用完3 设 m 为同类资源数,n 为系统中并发进程数。当 n 个进程共享 m 个互斥资源时,每个进程的最大需求是 w,则下列情况中会出现系统死锁的是 ( )。(A)
2、m=2 , n=1,w=2(B) m=2,n=2,w=1(C) m=4,n=3,w=2(D)m=4 , n=2,w=34 在操作系统中引入并发可以提高系统效率。若有三个进程 P1、P2 和 P3,按照P1,P2 到 P3 的优先次序运行,采用可抢占式调度,其运行过程如下:P1:计算 6ms,IO 8ms,计算 2msP2:计算 12ms,IO 6ms,计算 2msP3:计算 4ms,IO 8ms,计算 4ms不计系统开销,相比单通道顺序运行,多道并发可以节省的时间和 CPU 利用率分别是( )。(A)14 ms;79(B) 16 ms; 83(C) 12 ms; 75(D)22 ms;1005
3、 系统产生死锁的可能原因是( )。(A)共享资源分配不当(B)系统资源不足(C)进程运行太快(D)CPU 内核太多6 若有一进程拥有 100 个线程,这些线程都属于用户级线程,则在系统调度执行时间上占用的时间片是( ) 。(A)1(B) 100(C) 1100(D)07 有五个进程共享一个互斥段,如果最多允许两个进程同时进入互斥段,则所采用的互斥信号量初值应该是( )。(A)5(B) 2(C) 1(D)08 2 个优先级相同的并发进程 P1 和 P2,它们的执行过程如下所示,假设当前信号量 s1=0,s2=0,当前的 z=2,进程运行结束后,x、y 和 z 的值分别为( )。进程 P1 进程
4、P2y:=1 ; x:=1 ;y:=y+2; x:=x+1 ;z:=y+1; P(s1);V(s1); x:=x+y ;P(s2); z:=x+z;y:=z+y; V(s2) ;(A)5,9,9(B) 5,9,4(C) 5,12,9(D)5,12,49 设有 3 个作业,其运行时间分别为 2 小时、5 小时、3 小时,假定它们同时到达,并在同一台处理机上以单道运行方式运行,则平均周转时间最小的执行顺序是( )。(A)J1,J2,J3(B) J3,J2,J1(C) J2,J1,J3(D)J1,J3,J210 关于临界区问题(critical section problem)有如下算法 (假设只有
5、进程 P0 和 P1 可能进入该临界区),算法如下(i 为 0 或 1),该算法( )。repeatretry:if(turn一 1)turn:=i;if(tumi)go to retry;turn:= 一 1;critical section(临界区)turn=0:remainder section(其他区域)until false;(A)不能保证进程互斥进入临界区,且会出现“饥饿”(B)不能保证进程互斥进入临界区,但不会出现“饥饿”(C)保证进程互斥进入临界区,但会出现“饥饿”(D)保证进程互斥进入临界区,不会出现“饥饿”11 下列死锁的论述中,正确的是( )。(A)由于产生死锁的基本原因
6、是系统资源不足,因而,预防死锁最常用的方法是根据系统规模,配置足够的系统资源(B)由于产生死锁的另一个基本原因是进程推进顺序不当,因而,预防死锁的常用方法是使进程的推进顺序合法(C)只要系统不进入不安全状态,便不会产生死锁,因而,预防死锁的常用方法是防止系统进入不安全状态(D)可以通过破坏产生死锁的四个必要条件之一或其中几个的方法来预防发生死锁12 下列关于进程的叙述中,最不符合操作系统对进程的理解的是( )。(A)进程是在多程序并行环境中的完整的程序(B)进程可以由程序、数据和进程控制块描述(C)线程是一种特殊的进程(D)进程是程序在一个数据集合上运行的过程,是系统进行资源管理的一个独立单位
7、13 下列进程调度算法中,综合考虑了 CPU 密集型进程和 IO 密集型进程的是( )。(A)时间轮转(B)优先级(C)多重队列(D)FIFO14 进程 P1、 P2 和 P3 单独执行时间分别为 10min、15min 和 20min,其中处理机占用时间分别为 2min、3min 和 12min。如果采用多道程序设计技术使其并发,并假设处理机的利用率可以达到 60,加上系统开销 5min,则并发使得计算机系统的效率提高了( ) 。(A)63(B) 38(C) 74(D)2615 进程创建的时候,不需要做的是( )。(A)填写一个该进程的进程表项(B)分配该进程适当的内存(C)将该进程插入就绪
8、队列(D)为该进程分配 CPU二、综合应用题41-47 小题,共 70 分。16 有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有 100 个座位。试分别用信号量和 P、V 操作以及管程来实现用户进程的同步算法。17 设有 n 个进程共享一个互斥段,如果:(1)每次只允许一个进程进入互斥段;(2)每次最多允许 m 个进程(mn)同时进入互斥段。试问:所采用的信号量初值是否相同?信号量值的变化范围如何?17 设某系统采用可抢占的优先级进程调度算法,系统在某一段时间内有 A、B 、C三个进程,进程 C 优先级最高,
9、进程 A 优先级最低,进程 B 优先级介于进程A、C 之间,它们的就绪时刻、计算与 IO 所需时间如下表所示:18 若系统采用多道方式运行,给出这三个进程运行完成总共所需的时间,并用图示给出三个进程的实际运行过程(忽略进行系统调度所需时间)。19 采用多道方式运行比采用单道方式运行可节省多少时间?19 某系统中进程有如下的状态变化图:请回答下列问题:20 该系统采用了怎样的进程调度算法?说明理由。21 把图中发生 的状态变化原因填入下表中。22 中断分为哪几种类型?请给出各自的含义。23 引起进程切换的时机有哪些?24 时间片轮转调度算法中,时间片值的选取对系统有什么影响?25 什么是抢占式优
10、先级调度和非抢占式优先级调度?26 设有三个进程 A、B、C,进程 A 和进程 B 各需要运行 3ms 的处理器时间,而进程 C 却要 24ms 的处理器时间,分别考虑当三个进程到达顺序为 A,B,C 时及C,B,A 时,用先来先服务进行调度时各自的平均等待时间。计算机专业基础综合(进程管理)模拟试卷 4 答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 【正确答案】 D【试题解析】 此题主要考查进程的基本状态及其转换等相关内容。在操作系统中,进程的三种基本状态之一的阻塞状态是指正在运行的进程,因某种原因而暂停运
11、行(如发生了 IO 请求等),等待某个事件的发生,导致进程不能继续运行且交出处理机时的状态。【知识模块】 进程管理2 【正确答案】 D【试题解析】 就绪状态是指一个进程获得了除处理机以外的一切资源,当得到调度时,就由就绪状态转换为运行状态;运行状态就是一个进程在处理机上正在运行。当处于运行状态的进程在运行过程中所分配的时间片用完,则会被强制撤离处理机,以便调度其他进程运行。由于原先运行的进程是非自愿地离开运行状态,所以没有其他的事件相关,只有继续在就绪队列中等候下一次的调度,所以选项 D 是正确的。选项 A 的情形是由就绪状态转换为运行状态;选项 B 的情形是由运行状态转换为阻塞状态;选项 C
12、 的情形是由阻塞状态转换为就绪状态。【知识模块】 进程管理3 【正确答案】 D【试题解析】 本题考查死锁的检测。选项 A 不会发生死锁,只有一个进程时不会发生死锁。选项 B 不会发生死锁,两个进程各需要一个资源,而系统中恰好有 2个资源。选项 C 不会发生死锁,3 个进程需要的最多资源数都是 2,系统总资源数是 4,所以总会有一个进程得到 2 个资源,运行完毕后释放资源。选项 D 可能会发生死锁,当 2 个进程各自都占有了 2 个资源后,系统再无可分配资源。由此可得出结论:当满足 mn(w-1)+1时,不会产生死锁。【知识模块】 进程管理4 【正确答案】 A【试题解析】 本题考查多道程序运行的
13、工作方式,解决此类问题的关键一般是根据进程的优先级和时序关系画出时序图,注意 I O 设备不能抢夺,CPU 可以根据优先级来抢夺。 根据题意,进程运行时序图如下:单道运行时需要耗时: 6+8+2+12+6+2+4+8+4=52(ms) 从表中分析,并发运行时需要耗时: 6+8+2+4+4+2+2+6+4=38(ms) 节省时间为 52-38=14(ms) CPU 效率为 (6+8+2+4+4+2+4)38=79【知识模块】 进程管理5 【正确答案】 A【试题解析】 系统死锁的可能原因主要是时间上和空间上的。时间上由于进程运行中推进顺序不当,即调度时机不合适,不该切换进程时进行了切换,可能会造成
14、死锁。空间上的原因是对共享资源分配不当,互斥资源部分分配又不可剥夺,极易造成死锁。那么,为什么系统资源不足不是造成死锁的原因呢?系统资源不足只会对进程造成“饥饿”,例如,某系统只有 3 台打印机,若进程运行中要申请 4 台,显然不能满足,该进程会永远等待下去。如果该进程在创建时便声明需要 4 台打印机,那么操作系统立即就会拒绝,不会创建该进程。一般地,系统由于部分分配的剩余资源不足时,可能会造成死锁,这实际上是资源分配不当的一种表现。不能以系统资源不足来描述剩余资源不足的情形。【知识模块】 进程管理6 【正确答案】 A【试题解析】 本题主要考查关于进程和线程之间资源共享的知识点。在引入线程的操
15、作系统中,线程是进程中的一个实体,是系统独立调度和分派的基本单位。但是线程自己基本上不拥有系统资源,所以它不是资源分配的基本单位,它只拥有一部分在运行中必不可少的与处理机相关的资源,如线程状态、寄存器上下文和栈等,它同样有就绪、阻塞和执行三种基本状态。它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。由于用户线程不依赖于操作系统内核,因此,操作系统内核是不知道用户线程的存在的,用户线程是由用户来管理和调度的,用户利用线程库提供的 API 来创建、同步、调度和管理线程。所以,用户线程的调度在用户程序内部进行,通常采用非
16、抢占式和更简单的规则,也无须用户态和核心态切换,所以速度很快。由于操作系统不知道用户线程的存在,所以,操作系统把 CPU 的一时间片分配给用户进程,再由用户进程的管理器将时间分配给用户线程。那么,用户进程能得到的时间片即为所有用户线程共享。因此,正确答案应为 A。【知识模块】 进程管理7 【正确答案】 B【试题解析】 因为最多允许两个进程同时进入互斥段,所以信号量为 2。如果一个互斥段可以同时允许两个进程进入,则相当于有两个互斥段。【知识模块】 进程管理8 【正确答案】 C【试题解析】 本题考查并发进程的特点,并结合信号量进行同步的原理。由于进程并发,所以进程的执行具有不确定性,在 P1、 P
17、2 执行到第一个 P、V 操作前,应该是相互无关的。现在考虑第一个对 1 的 P、V 操作,由于进程 P2 是 P(s1)操作,所以,它必须等待 P1 执行完 V(s1)操作以后才可继续运行,此时 x、y、z 的值分别为 3、3、4,当进程 P1 执行完 V(s1)以后便在 P(S2)上阻塞,此时 P2 可以运行直到 V(s2),此时x、y、z 值分别为 5、3、 9,进程 Pl 继续运行直到结束,最终的 x、y、z 值分别为5、12、90【知识模块】 进程管理9 【正确答案】 D【试题解析】 本题考查平均周转时间的概念,周转时间=等待时间+ 运行时间,平均周转时间=总周转时间n 。在本题中,
18、选项 A 的顺序 J1,J2,J3 的平均周转时间是 (2+7+10)3=193=63(小时) ;选项 B 的顺序 J3,J2,J1 的平均周转时间是(3+8+10)3=213:7(小时);选项 C 的顺序 J2,J1,J3 的平均周转时间是(5+7+10)3=223=73(小时);选项 D 的顺序 J1,J3,J2 的平均周转时间是(2+5+10)3=173=57(小时)。因此,答案为 D。【知识模块】 进程管理10 【正确答案】 A【试题解析】 例如当 P0 执行完语句 turn:=-1,刚好要进入临界区时, CPU 又调度 P1 执行,Pl 能够顺利进入临界区,不能满足互斥。当 P0 执
19、行完临界区时,CPU 调度 P1 执行,P1 在 retry 循环,CPU 调度 P0 执行,P0 继续执行,重复以上过程,会导致 P1“饥饿”。【知识模块】 进程管理11 【正确答案】 D【试题解析】 选项 A,不可能根据系统的规模,配置足够的系统资源,因为系统的资源是有限的。选项 B,这种方法不能保证死锁不发生,而且进程推进过程很复杂,实现合理的顺序不太可能。选项 C,系统进入不安全状态不一定会产生死锁,防止系统进入不安全状态不太可能,故不是常用的方法。【知识模块】 进程管理12 【正确答案】 A【试题解析】 A 的说法不够全面。【知识模块】 进程管理13 【正确答案】 C【试题解析】 多
20、重队列通过将进程分类,在系统中设置若干队列进行进程调度,综合考虑了 CPU 密集型进程和 I0 密集型进程。【知识模块】 进程管理14 【正确答案】 D【试题解析】 本题考查并发的计算。由于本题并没有详细描述进程的执行过程,所以,计算是以总体效率来进行的。总体效率是指并发执行所花费的时间值与原时间值相比提高了多少。依本题题意,可以计算出处理机所需时间为2+3+12=17(min),按处理机 60的利用率,并发所需总时间为1760+5=3333(min) ,单道运行时所需要的总时间为 10+15+20=45(min),则系统效率提高了(453333)45=26。注意题意,并发时不要忘记系统开销5
21、min。单道执行时由于较少需要进程切换,因此系统开销一般忽略不计。并发时系统要进行大量的进程切换,因此,系统开销有时会比较大,此时就应该纳入计算。【知识模块】 进程管理15 【正确答案】 D【试题解析】 本题考查的是进程创建的过程。进程创建最主要的工作是为该进程申请并填写一张进程表。进程表内包含有多个与进程有关的数据结构,例如,进程号、进程组、进程的优先级、进程所分配的内存、进程需要的 IO 设备、进程要打开的文件等。当填写好了进程表以后,进程创建模块便将进程表按照该系统规定的法则插入到就绪队列的适当位置,等待进程调度模块进行下一步的调度。所以进程创建的过程中不会包含分配 CPU 的过程,这不
22、是进程创建的工作,而是调度器的工作。【知识模块】 进程管理二、综合应用题41-47 小题,共 70 分。16 【正确答案】 (1)使用信号量和 P、V 操作:var A:array1100of Rec ;Rec=recordnumber:integer;name:string;end;i:integer;for i:=1 to 100 doAinumber:=i;Ai name:=null;mutex,seatcount:semaphore; semaphore:信号量mutex:=1:seatcount:=100 ;cobeginprocess readeri(var readername:
23、string)(i=1,2,)P(seatcount);P(mutex);for i:=1 to 100 doi+:if Ainame=-null then Ainame :=readername; 读者登记*必须采用这种方式,因为该空位是随机产生的。我们无法知道哪个读者何时离开*V(mutex)进入阅览室,座号 i,坐下读书:P(mutex); 读书完毕,需要退场Ainame: =null;V(mutex);V(seatcount);离开阅览室;coend(2)使用管程操作:TYPE readbook=monitorVAR R:condition;i,seatcount:integer;na
24、me:array1100of string;DEFINE readercome,readerleave ;USE check,wait ,signal ,release ;procedure readereome(readername)begancheck(IM):if seatcount1100 wait(R,IM)seatcount:=seatcount+1:for i=1 to 100 do i+if namei=null then namei:=readername:get the seat number=i;release(IM);endprocedure readerleave(r
25、eadername)begincheck(IM);seatcount-:for i=1 t0 100 do i+if namei=readername then namei:=null:release(IM):endbeginseatcount:=100;name:=null :endeobeginprocess readeri(1=1,2)begmreadercome(readername);read the book:readerleave(readername):leave the readroom;endcoend【知识模块】 进程管理17 【正确答案】 所采用的互斥信号量初值不同。(
26、1)互斥信号量初值为 1,变化范围为-n+1,1。当没有进程进入互斥段时,信号量值为 1;当有 1 个进程进入互斥段但没有进程等待进入互斥段时,信号量值为 0;当有 1 个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为一 1:最多可能有 n-1 个进程等待进入互斥段,故此时信号量的值应为-(n-1),也就是 -n+1。(2)互斥信号量初值为 m,变化范围为-n+m,m。当没有进程进入互斥段时,信号量值为 m;当有 1 个进程进入互斥段但没有进程等待进入互斥段时,信号量值为 m-1;当有 m 个进程进入互斥段且没有一个进程等待进入互斥段时,信号量值为 0;当有 m 个进程进入互斥段且有一
27、个进程等待进入互斥段时,信号量值为-1;最多可能有 n-m 个进程等待进入互斥段,故此时信号量的值应为-(n-m),也就是-n+m 。【知识模块】 进程管理【知识模块】 进程管理18 【正确答案】 若系统采用多道方式运行,这三个进程运行完成总共所需的时间为 68ms。【知识模块】 进程管理19 【正确答案】 采用单道方式运行,这三个进程运行完成总共所需的时间为113ms。采用多道方式运行比采用单道方式运行节省时间:113-68=45(ms)【知识模块】 进程管理【知识模块】 进程管理20 【正确答案】 该系统采用的是时间片轮转调度算法。该调度算法让就绪进程按就绪的先后次序排成队列,每次总是选择
28、就绪队列中的第一个进程占用处理器,但规定只能使用一个时间片。如果一个时间片用完,进程工作尚未结束,则它也必须让出处理器而被重新排到就绪队列的末尾,等待再次运行,当再次轮到运行时,重新开始使用一个新的时间片。这样,就绪队列中的进程就依次轮流地占用处理器运行。【知识模块】 进程管理21 【正确答案】 【知识模块】 进程管理22 【正确答案】 (1)硬件故障中断。它是由于机器故障造成的,例如,电源故障、主存出错等。(2)程序中断。这是由于程序执行到某条机器指令时可能出现的各种问题而引起的中断,例如,发现定点操作数溢出、除数为“0”、地址越界、使用非法指令码、目态下的用户使用了特权指令等。(3)外部中
29、断。这是由各种外部事件引起的中断,例如,按压了控制板上的一个中断键、设置的定时时钟的时间周期到。(4)输入输出中断。输入输出控制系统发现外围设备完成了输入输出操作或在执行输入输出操作时通道或外围设备产生错误而引起的中断。(5)访管中断。它是正在运行的进程为了请求调用操作系统的某个功能而执行一条访管指令所引起的中断。例如,用户要求分配一台外围设备、要求分配一些主存区域、要求启动外围设备读一批数据等。【知识模块】 进程管理23 【正确答案】 我们把处理机从一个进程转到另一个进程称为进程切换。引起进程切换的时机有以下几种情况:(1)一个进程从运行状态变为等待状态。(2)一个进程从运行状态变为就绪状态
30、。(3)一个进程从等待状态变为就绪状态。(4)一个进程运行完成而撤离系统。【知识模块】 进程管理24 【正确答案】 (1)时间片取值的大小关系到计算机系统的效率和用户的满意度,所以,时间片的值应根据进程要求系统给出应答的时间和进入系统的进程数来决定。如果要求系统快速应答,则时间片小些,这样使轮转一遍的总时间减少而可对进程尽快应答。如果进程数少,则时间片可以大些,这样可减少进程调度的次数,提高系统效率。(2)对每个进程可规定相同的时间片,但有的系统对不同的进程规定不同的时间片,例如,对很少使用外围设备而需要运算时间长的进程,给一个大一些的时间片,以达到减少调度次数,加快进程执行速度的目的。但应注
31、意到,时间片值过大时该算法退化为先来先服务;时间片值过小时加重系统开销。【知识模块】 进程管理25 【正确答案】 采用“ 非抢占式 ”调度时,一旦有某个高优先数的进程占用了处理器,就一直让它运行下去,直到该进程由于自身的原因主动让出处理器或进程执行结束而让出处理器。此时,进程调度才重新再按优先数选择另一个占用处理器的进程。采用“可抢占 ”式的调度方式严格保证任何时刻总是让具有最高优先数的进程在处理器上运行。也就是说,当某一进程在处理器上运行时,一旦有另一个更高优先数的进程就绪,进程调度就要剥夺正在处理器上运行的进程使用处理器的权力,抢回分配给它的处理器,而把处理器让给具有更高优先数的进程使用。
32、这种抢占式的优先数调度算法在实时系统中很有用。例如,在实际系统中可把处理紧急情况的报警进程赋予最高优先数,一旦有紧急事件发生,触发报警进程就绪,进程调度就让这个报警进程抢占处理器进行紧急处理和发出警告信号。【知识模块】 进程管理26 【正确答案】 (1)当三个进程到达顺序为 A、B 、C 时,按照先来先服务的顺序,进程 A 先占用处理器,进程 B 需等待 3ms 后才能去占用处理器,进程 C 在等待6ms 的时间后可以占用处理器。于是,它们的平均等待时间为(0+3+6)3=3(ms) 。(2)如果进程是按 C、B、A 的次序排入队列,则进程 C 先占用处理器运行 24ms后才能让进程 B 占用,即进程 B 需等待 24ms,而进程 A 在等了 27ms 后才可占用处理器,现在这三个进程的平均等待时间为(27+24+0)3=17(ms)。可见当运行时间长的进程先就绪时,先来先服务算法使系统效率受到影响。【知识模块】 进程管理