操作系统第4章调度与死锁习题与解答.docx
《操作系统第4章调度与死锁习题与解答.docx》由会员分享,可在线阅读,更多相关《操作系统第4章调度与死锁习题与解答.docx(21页珍藏版)》请在冰豆网上搜索。
操作系统第4章调度与死锁习题与解答
第4章调度与死锁习题与解答
4.2例题解析
例4.2.1当前运行的进程(),将引发系统进行进程调度。
A.执行了一条转移指令
B.要求增加主存空间,经系统调用银行家算法进行测算认为是安全的
C.执行了一条I/O指令
D.执行程序期间发生了I/O完成中断
解本题考核进程调度的时机,相关的概念有:
(1)进程执行转移指令表示CPU将转到一个新程序段去,并不是转到一个新进程,因而不会重新分配CPU。
(2)当前进程提出主存请求时,若系统认为分配是安全的,则可以立即使进程的请求得到满足,不会因而造成进程阻塞。
因此不会分配CPU。
(3)当前进程执行了I/O指令,提出了输入输出请求。
由于I/O是低速的,因此不能让CPU等待I/O完成。
因此需要阻塞当前进程,重新分配CPU。
(4)当前进程运行程序期间发生了I/O完成中断,说明有一个处于阻塞队列上的进程,正等待此I/O事件的出现。
因此可在中断处理程序中查出等待的进程,将它唤醒。
然后再返回到当前进程来执行。
只要恢复当前进程的现场信息就可以了,不会重新分配CPU。
正确答案应为C。
例4.2.2分时系统中的当前运行进程连续获得了两个时间片,原因可能是()。
A.该进程的优先级最高
B.就绪队列为空
C.该进程最早进入就绪队列
D.该进程是一个短进程
解
(1)在分时系统中,诸多进程以轮流方式分享CPU,一般不考虑进程的优先级。
(2)当前进程运行完一个时间片后回到就绪队列,如果此刻就绪队列为空队列,那么下一个时间片仍然由该进程使用CPU。
(3)在分时系统中,诸多进程轮流地使用CPU,并不考虑进程进入就绪队列的时间,也不登记进程进入就绪队列的时间。
(4)分时系统中诸多进程轮流使用CPU不考虑进程的长短,也不登记进程预估将运行多长时间。
正确答案应为B。
例4.2.3有三个作业A(到达时间8:
50,执行时间1.5小时)、B(到达时间9:
00,执行时间0.4小时)、C(到达时间9:
30,执行时间1小时)。
当作业全部到达后,单道批处理系统按照响应比高者优先算法进行调度,则作业被选中的次序是()。
A.(ABC)B.(BAC)
C.(BCA)D.(CBA)
E.(CAB)F.(ACB)
解本题考核进程调度问题。
作业运行情况见下表:
进程
到达时间
运行长度
开始时间
结束时间
A
8:
50
1.5
9:
30
11:
00
B
9:
00
0.4
11:
00
11:
24
C
9:
30
1
11:
24
12:
24
当作业全部到达后,也就是9:
30,系统开始调度。
此刻各作业的等待时间是,A为40分钟(0.67小时)、B为0.5小时、C为0小时。
其响应比分别为:
A=1+0.67/1.5=1.4
B=1+0.5/0.4=1.25
C=1+0/1=1
系统首先选A运行,至11:
00运行结束。
各作业的等待时间是,B为2小时,C为1.5小时。
其响应比分别修改为:
B=1+2/0.4=6
C=1+1.5/1=2.5
系统再选B运行,至11:
24运行结束。
最后选择C运行至12:
24结束。
因此,本题的正确答案应当是A。
例4.2.4有三个进程P1、P2和P3并发工作。
进程P1需要资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3,回答:
(1)若对资源分配不加限制,会发生什么情况?
为什么?
(2)为保证进程正确地工作,应采用怎样的资源分配策略?
为什么?
解
(1)若对进程间的资源分配不加限制,可能会发生死锁,因为这样的分配可能导致进程间的“循环等待”,并且这种状态将永远持续下去。
进程P1、P2和P3分别获得资源S3、S1和S2,后再继续申请资源时都要等待。
进程和资源会形成如下环路:
图4.3进程资源分配图
(2)为保证系统处于安全状态,应采用下面列举3种资源分配策略:
1)采用静态分配:
由于执行前已获得所需的全部资源,故不会出现占有资源又等待的资源的现象(或不会出现循环等待资源现象)。
2)采用资源按序分配,避免出现循环等待资源的现象。
3)采用银行家算法进行分配资源前的检测。
例4.2.5进程调度又称为低级调度,其主要功能是()。
A.选择一个作业调入内存
B.选择一个主存中的进程调出到外存
C.选择一个外存中的进程调入到主存
D.将一个就绪的进程投入运行
解本题考核进程调度的基本功能,相关概念有:
(1)选择一个作业调入内存是批处理系统的作业调度所实现的功能。
(2)选择一个主存中的进程调出到外存是进程换出的功能。
(3)选择一个外存中的进程调入到主存是进程的换入功能,是中级调度的组成部分。
(4)将进程投入运行是进程调度的功能。
本题的正确答案应为D。
例4.2.6若进程P一旦被唤醒就能够投入运行,系统可能为()。
A.在分时系统中,进程P的优先级最高
B.抢占调度方式,就绪队列上的所有进程的优先级皆比P的低
C.就绪队列为空队列
D.抢占调度方式,P的优先级高于当前运行的进程
解本题考核一个进程被调度的条件,相关概念有:
(1)在分时系统中,进程调度是按照轮转方式进行的。
系统并不登记进程的优先级,也就是说与P的优先级高低无关。
(2)在抢占调度方式中,P的优先级高于就绪队列上的所有进程,但不一定高于当前的运行进程,所以也不一定能立即运行。
(3)无论哪种调度方式,若就绪队列为空队列,P被唤醒并插入后都会成为该队列的唯一进程。
但这并不能说P可以立即获得处理机。
只有当前运行的进程释放了CPU,且就绪队列无其他进程时,P才可以立即使用CPU。
(4)在抢占式调度中,一个的进程P到来,若P的优先级高于当前进程时,可以抢占CPU,立即投入运行。
本题的正确答案应为D。
例4.2.7有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10,6,2,4,8min。
其优先级分别为3,5,2,1和4,这里5为最高优先级。
对于下列每一种调度算法,计算其平均进程周转时间(进程切换开销可不考虑)。
(1)先来先服务(按A,B,C,D,E)算法。
(2)优先级调度算法。
(3)时间片轮转算法。
解
(1)采用先来先服务(FCFS)调度算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示:
执行次序
运行时间
优先数
等待时间
周转时间
A
10
3
0
10
B
6
5
10
16
C
2
2
16
18
D
4
1
18
22
E
8
4
22
30
根据表中的计算结果,5个进程的平均周转时间T为:
T=(10+16+18+22+30)/5=19.2min
(2)采用最高优先级调度(HPF)算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示:
执行次序
运行时间
优先数
等待时间
周转时间
B
6
5
0
6
E
8
4
6
14
A
10
3
14
24
C
2
2
24
26
D
1
1
26
27
它们的平均周转时间为:
T=(6+14+24+26+27)/5=19.4min
(3)如果系统采用时间片轮转(RR)算法,令时间片为2分钟,5个任务轮流执行的情况为:
第1轮:
(A,B,C,D,E)
第2轮:
(A,B,D,E)
第3轮:
(A,B,E)
第4轮:
(A,E)
第5轮:
(A)
显然,5个进程的周转时间为:
T1=30min、T2=22min、T3=6min、T4=16min、T5=28min。
它们的平均周转时间T为:
T=(30+22+6+16+28)/5=20.4min
例4.2.8现有两道作业同时执行,一道以计算为主,另一道以输入输出为主,你将怎样赋予作业进程占有处理器的优先级?
为什么?
解本题考核要点是,如何提高系统效率的问题。
我们知道,以计算为主的进程运行期间,将主要集中在CPU的计算上,较少使用外部设备。
而以输入输出为主的进程则主要集中在外部设备的I/O上,较少使用CPU。
因此让两个进程并发运行是可以提高系统效率的。
不过它们的优先级应当设定合理。
(1)如果计算进程的优先级高于或者等于输入输出进程的优先级,系统效率也不会提高。
因为计算进程一旦占用了CPU便忙于计算,使输入输出进程得不到运行机会,同样会使设备空闲,不能提高系统效率。
(2)如果输入输出进程的优先级高于计算进程的优先级,系统效率就能够得到提高。
因为输入输出操作是一种速度极慢的操作。
若该项操作的优先级高,那么,当它完成一项输入输出操作后,便能立即获得CPU,为下一次输入输出作准备工作,并启动外部设备。
当设备被启动起来后,它便主动让出CPU,由系统将CPU交给计算机进程使用。
从而获得较好的运行效率。
例4.2.9设某系统进程的状态除了最基本的三种状态外,还增加了创建状态、延迟状态和完成状态。
试画出系统的进程状态变迁图,并说明状态变迁可能的原因。
解一般的多道程序运行环境中,进程最基本的状态有3个:
就绪、运行、阻塞。
本题又增加了创建、延迟、完成3种状态,使进程状态增至6个。
图4.3进程状态转换配图
(1)就绪→运行:
进程具备运行条件,当进程调度程序选择了进程后,便将其转入运行状态。
(2)运行→阻塞:
进程需要等待某种事件的发生,如执行了输入输出指令,或者请求资源得不到满足时,进程转阻塞状态。
(3)阻塞→就绪:
进程等待的I/O已完成,或者请求的资源得到满足,进程转为就绪状态。
(4)创建→就绪:
进程尚不具备运行条件,所需的资源尚未得到满足。
当进程创建完成后,进程可转入就绪状态。
(5)运行→延迟:
进程运行过程中,因某种原因需要延迟运算,则设定好延迟时间后被转入延迟状态。
(6)运行→完成:
进程运行时遇到结束指令后,被转入完成状态。
例4.2.10考虑由n个进程共享的具有m个同类资源的系统,证明:
如果对i=1,2,…,n进程,有Need>0而且所有最大需求量之和小于m+n,那么该系统是死锁无关的。
解本题的考核要点是资源共享系统。
令每个进程请求共享资源的最大量相等,且为x,(0此刻,系统剩余的可用资源数为:
m-n*(x-1)。
当m–n*(x-1)≥1时,即x≤(m+n-1)/n时,系统不会出现死锁的。
因此得出,系统中所有进程的最大需求量之和n×x≤(m+n-1)时,系统是不会发生死锁的。
所以,n个进程的最大需求量之和小于m+n时,系统与死锁无关。
例4.2.11设系统中有三种类型的资源(A、B、C)和五个进程(P1、P2、P3、P4、P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。
在T0时刻系统状态如表1和表2所示。
系统采用银行家算法实施死锁避免策略。
(1)T0时刻是否为安全状态?
若是,请给出安全序列。
(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?
为什么?
(3)在②的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?
为什么?
(4)在③的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?
为什么?
表4.1T0时刻系统状态
进程
最大资源需求量
已分配资源数量
A
B
C
A
B
C
P1
5
5
9
2
1
2
P2
5
3
6
4
0
2
P3
4
0
11
4
0
5
P4
4
2
5
2
0
4
P5
4
2
4
3
1
4
表4.2T0时刻系统状态
ABC
剩余资源数
233
解
(1)系统在T0时刻:
存在一个安全的序列(P4、P5、P1、P2、P3),因而是安全的。
(2)若在T0时刻进程P2请求资源(0,3,4),因为可用资源的数量不够,所以只能推迟分配。
(3)在
(2)基础上,若进程P4请求资源(2,0,1),系统可以予以满足。
因为当分配给P4后,系统剩余的可用资源为(0,3,2),仍能找到一个安全的序列,比如(P4、P5、P1、P2、P3)。
(4)在(3)的基础上,若进程P1请求资源(0,2,0),系统不予以分配。
因为分配出去后,系统找不到一个安全序列。
例4.2.12关于处理机调度,试问:
(1)什么是处理机三级调度?
(2)处理机三级调度分别在什么情况下发生?
(3)各级调度完成的关键性工作是什么?
解操作系统的处理机调度有3级,一个具体的操作系统中可能包含所有3级调度,也可能只包含其中的两级或一级。
(1)3级调度为:
高级调度(又称为“作业调度”)、中级调度(又称为“交换调度”)、低级调度(又称为“进程调度”)。
(2)处理机的3级调度在以下情况发生:
1)高级调度:
适合于“批处理系统”。
该调度从后备作业中选择一个或多个作业进入内存,创建为进程,分配必要的系统资源,然后将进程设为“就绪”,挂入就绪队列。
常用的调度算法有:
先来先服务、最短作业优先、最高优先级算法、最高响应比优先算法等。
2)中级调度:
为了缓解内存紧张压力而采用的一种技术。
当内存中的进程因存储空间紧张导致系统效率降低时,该技术可将暂时不运行的进程换至外存挂起来,让腾出来的内存空间分给其它进程运行。
一旦内存空间宽余时就将外存的挂起进程重新换入内存。
当外存中的挂起进程较多时,就需要利用中级调度选择其中的一部分换入。
3)低级调度:
最靠近计算机硬件的处理机调度,适用于多道运行环境。
它将根据系统资源的使用情况及时分配处理机。
处理过程为,从“就绪”队列中选择一个进程,将处理机分配给该进程“运行”。
常见的算法有:
先进先出调度、最高优先级调度、最短进程优先,最高响应比优先算法、时间片轮转算法等。
(3)高级调度完成作业调度,使“后备”状态的作业变为“执行”状态;中级调度完成内存和和外存信息的交换调度;低级调度完成进程调度,使“就绪”的进程在CPU上“运行”。
例4.2.13按序分配是防止死锁的一种策略。
什么是按序分配?
为什么按序分配可以防止死锁?
解
(1)按序分配是适应于动态分配的一种分配方法。
为了避免产生死锁,系统将所有资源进行编号,并规定进程请求资源时,严格按照设备编号的大小,比如由小到大的顺序进程申请。
如果某进程第n号资源没有获得,则进程不能请求第j(j>n)号资源。
(系统也可以规定由大到小的请求次序。
)
(2)按序分配可以破坏环路等待条件。
因为在进程发生死锁时,必然存在一个“进程-资源”的环形链。
令Pi表示第i个进程,Ri表示第i个资源,则,n个和n个资源的进程-资源形链如图所示:
图4.5进程资源分配图
在有环路存在,必然存在一个进程Pi,该进程已经占有了一个较大编号的资源,并再请求一个较小编号的资源,否则循环无法存在。
要排除循环的产生,让Pi先请求较小编号的资源,如果不能满足就不准请求较大编号的。
这样一来,较小编号的资源如用于其他进程,Pi进程申请不到,也就不能申请高号资源,因此形成不了循环,也就不会产生死锁。
例4.2.14什么叫作业调度和进程调度?
下面给出的算法中,哪些适合于前者,哪些适合于后者?
(1)FCFS
(2)LJF(LongestJobFirst)
(3)SJF
(4)RR
(5)Priority
解
(1)作业调度是处理机调度中的高级调度,该调度将按照某种算法从后备作业中选择一个作业,将其装入内存创建为进程。
(2)进程调度是处理机调度中的低级调度,该调度将按照某种算法从就绪队列中中选择一个进程,让该进程使用CPU运行程序。
(3)适合于作业调度的算法有:
(1)、
(2)、(3)和(5)。
(4)适合于CPU调度的算法有:
(1)、(4)和(5)。
例4.2.15单处理机分时系统收到了3个作业,作业提交情况见下表:
Job
作业提交时间
运行长度
其中
I/O时间
CPU时间
A
10.0
0.36小时
0.18小时
0.18小时
B
10.2
0.32小时
0.16小时
0.16小时
C
10.4
0.36小时
0.18小时
0.18小时
现假设:
(1)单CPU上分时运行两道作业,若每道作业的I/O等待时间皆占各自总运行时间的50%,则CPU将有20%的时间空闲;
(2)系统有相当充足的可用资源(CPU除外)供用户使用。
请写出各个作业的结束时间。
解在分时系统中,进程轮流使用CPU。
每个进程使用完一个时间片后就将处理机转给另一个进程。
已知,每个进程单道运行时的I/O等待时间皆占各自总运行时间的50%,若两个进程分时运行时则CPU将有20%的时间空闲,即,CPU为各进程分别运行40%。
这样一来,可列出下表所示的运行情况。
时间
事件
道数
CPU等待
各占CPU
经过时间
作业
进度
还需
10.0-10.2
A提交
1
50%
50%
0.2
A
0.1
0.08
10.2-10.4
B提交
2
20%
40%
0.2
A
B
0.08
0.08
0
0.08
10.4-10.6
C提交
2
20%
40%
0.2
B
C
0.08
0.08
0
0.1
10.6-10.8
1
50%
50%
0.2
C
0.1
0
因此,3个作业的完成时间为:
(1)A:
10.4小时;
(2)B:
10.6小时;
(3)C:
10.8小时;
例4.2.6一个计算机系统中拥有6台打印机,现有N个进程竞争使用,每个进程要求两台,试问,N的值如何选取时系统中绝对不会出现死锁?
解本题的考核要点是资源竞争与死锁问题。
已知系统中的每个进程需要两台打印机,那么在最坏的情况下,各进程都占用了其中的一台,而且都在请求自己所需的另一台。
如果此时系统尚有多余的一台,那么就可以满足其中一个进程运行完毕。
因此说,如果让6-1台打印机分给N个进程,满足它们每人一台的话,进程数量N必然小于等于5。
当该进程运行完毕释放出它所占有的打印机后,又可以进一步满足其他进程。
系统就不会出现死锁。
4.3习题
4.3.1选择最合适的答案
1.某系统采用了银行家算法,则下列叙述正确的是()。
A.系统处于不安全状态时一定会发生死锁
B.系统处于不安全状态时可能会发生死锁
C.系统处于安全状态时可能会发生死锁
D.系统处于安全状态时一定会发生死锁
2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。
A.Max[i,j]=Allocation[i,j]+Need[i,j]
B.Need[i,j]=Allocation[i,j]+Max[i,j]
C.Max[i,j]=Available[i,j]+Need[i,j]
D.Need[i,j]=Available[i,j]+Max[i,j]
3.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
A.非抢占式静态优先权法
B.抢占式静态优先权法
C.时间片轮转调度算法
D.非抢占式动态优先权法
4.在下列选项中,属于预防死锁的方法是()。
A.剥夺资源法B.资源分配图简化法
C.资源随意分配D.银行家算法
5.在下列选项中,属于检测死锁的方法是()。
A.银行家算法B.消进程法
C.资源静态分配法D.资源分配图简化法
6.在下列选项中,属于解除死锁的方法是()。
A.剥夺资源法B.资源分配图简化法
C.银行家算法D.资源静态分配法
7.为了照顾紧迫型作业,应采用()。
A.先来服务调度算法B.短作业优先调度算法
C.时间片轮转调度算法D.优先权调度算法
8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。
A.先来先服务调度算法B.短作业优先调度算法
C.时间片轮转调度算法D.长作业优先调度算法
9.作业从后备作业到被调度程序选中的时间称为()。
A.周转时间B.响应时间
C.等待调度时间D.运行时间
10.资源静态分配法可以预防死锁的发生,它们使死锁四个条件中的()不成立。
A.互斥条件B.请求和保持条件
C.不可剥夺条件D.环路等待条件
4.3.2选择所有正确答案
1.下列选项中,()可能是非抢占方式进程调度中引起调度的原因。
A.当前的运行进程调用阻塞原语而进入阻塞状态
B.当前的运行进程提出申请I/O而阻塞
C.有更高优先级的进程到达而从执行状态变为就绪状态
D.正在执行的进程执行了P原语操作,由于资源不足而阻塞
2.选择排队作业中等待时间最长的作业被优先调度,该调度算法不可能是()。
A.先来先服务调度算法B.高响应比优先调度算法
C.优先权调度算法D.短作业优先调度算法
3.作业控制块JCB连成一串而形成的一个排队队列,该队列称为()。
A挂起队列B.阻塞队列
C.就绪队列D.后备队列
4.下列哪个选项描述的时间属于响应时间的一部分()。
A.处理机对请求信息进行处理的时间
B.从键盘输入的请求信息传送到处理机的时间
C.所形成的响应回送到终端显示器的时间
D.用户查看响应回送到的信息
5.下列四个选项描述的时间组成了周转时间,其中可能发生多次的是()。
A.等待I/O操作完成的时间
B.作业在外存后备队列上等待作业调度的时间
C.进程在CPU上的执行时间
D.进程在就绪队列上等待进程调度的时间
6.下面列出的是选择调度方式和算法的4个面向用户的准则。
其中,不完全适用于实时系统的准则是()。
A.优先权准则B.响应时间快
C.截止时间的保证D.周转时间短
7.下面列出了选择调度方式和算法的4个准则。
其中,对批处理、分时、实时系统都可以采用的是()。
A.周转时间短B.响应时间快
C.截止时间的保证D.优先权准则
8.下列选项中,()是分时系统中确定时间片大小需要考虑的因素。
A.各类资源的平衡利用B.就绪队列中进程的数目
C.系统的处理能力D.系统对响应时间的要求
9.下面列出的选项中,属于可剥夺性资源的有()。
A.CPUB.内存
C.磁盘D.磁带机
10.在多级队列调度和多级反馈队列调度的叙述中,正确的是()。
A.多级反馈队列调度中就绪队列的设置不是象多级队列调度一样按作业性质划分,而是按时间片的大小划分
B.多级队列调度用到优先权,而多级反馈队列调度中没有用到优先权
C.多级队列调度中的进程固定在某一个队列中,而多级反馈队列调度中的进程不固定
D.多级队列调度中每个队列按作业性质不同而采用不同的调度算法,而多级反馈队列调度中除了个别队列外,均