操作系统考试重点大题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.设有两个进程P1和P2,其优先权分别为10和8,同时进入就绪队列(Ready Queue ); 各自运行的程序段(Code)如下表,其中信号量S1和S2的初值均为0,已知x,y,z
为共享变量(Public Variable),x的初值为0,z的初值为3,若调度程序执行的策
略为抢占式优先权调度算法,试问:
[1] (5分)P1、P2并发执行序列(用代码标号M i,N i表示i=1,..,6)
[2] (3分)变量x,y,z的运行结果是什么?
解:M1 y=1
M2 y=4
M3 (S1=1)P1继续
M4 z=4
M5 P1阻塞
N1 x=1
N2 x=6
N3 (S1=0) P2继续
N4 y=14
N5 唤醒P1,P1抢占CPU
M6 x=18 P1完成
N6 z=22 P2完成
x=18,y=14,z=22
------------------------------------------------------------------------ 2. 考虑下面的页访问串(Reference String):
0,1,4,3,0,1,2,4,0,1,5,1,6,2,1,7,0,1,2,3,0,1,2 假定系统给该进程分配4个物理块(Frames),进程运行时,先将0,1号页装入
内存。应用下面的页面置换算法(Page-replacement algorithm),计算各会出现多
少次缺页中断(Page Faults);并给出依次被置换的页号(Page NO.)
[1](4分)LRU
[2](4分)Optimal
解:Opt:
序列0 1 4 3 0 1 2 4 0 1 5 1 6 2 1 7 0 1 2 3 0 1 2
内存0
1 0
1
1
4
1
4
3
1
4
3
1
4
3
1
4
2
1
4
2
1
4
2
1
4
2
1
5
2
1
5
2
1
6
2
1
6
2
1
6
2
1
7
2
1
7
2
1
7
2
1
7
2
1
3
2
1
3
2
1
3
2
1
3
2
缺页√√√√√√√
置换 3 4 5 6 7
7次缺页
LRU:
序列0 1 4 3 0 1 2 4 0 1 5 1 6 2 1 7 0 1 2 3 0 1 2
内存0
1 1
4
1
3
4
1
3
4
1
1
3
4
2
1
3
4
2
1
4
2
1
1
4
2
5
1
4
1
5
4
6
1
5
2
6
1
5
1
2
6
5
7
1
2
6
7
1
2
1
7
2
2
1
7
3
2
1
3
2
1
1
3
2
2
1
3
缺页√√√√√√√√√√
置换 4 3 2 4 0 5 6 7
10次缺页
------------------------------------------------------------------------ 3.假设系统已完成某进程对86#磁道的访问请求,正在为访问100#磁道的请求者服务,还有若干个进程在等待服务,它们依次要访问的磁道号为55,58,39,18,90,160,150,38,184
[1](12分)写出按FCFS、SSTF、SCAN和CSCAN算法调度时,各进程被调度的次序。
[2](6分)计算平均寻道长度。(保留两位小数)
答:FCFS(先来先服务):100->55->58->39->18->90->160->150->38->184 平均寻道长度=(45+3+19+21+72+70+10+112+146)/9≈55.33
SSTF(最短寻道时间优先):100->90->58->55->39->38->18->150->160->184
平均寻道长度=(100-18+184-18)/9≈27.56
SCAN(扫描):100->150->160->184->90->58->55->39->38->18
平均寻道长度=(184-100+184-18)/9≈27.78
CSCAN(循环扫描):100->150->160->184->18->38->39->55->58->90
平均寻道长度=(184-100+184-18+90-18)/9≈35.78
------------------------------------------------------------------------------------------------------------- 4.假设有5个进程,P1、P2 、P3、P4和P5; 它们到达相对时刻和所要求服务时间(CPU-burst time)如下表(时间单位为ms),试问非抢占方式(Non Preemptive)情况下, 采用短进程优先(SPF)调度算法时:
[1](4分)写出进程调度顺序;
[2](4分)计算平均带权周转时间w。(保留两位小数)
进程(Process)
时间(Time)
P1 P2 P3 P4 P5
到达相对时刻( Arrival Time) 0 10 11 13 20
执行时间(Burst time) 12 8 4 2 1
解:进程P1 P2 P3 P4 P5
完成时间12 26 16 18 27
周转时间12 16 5 5 7
带权周转时间 1 2 1.25 2.5 7
执行顺序:P1->P3->P4->P2->P5 平均周转时间W=(1+2+1.25+2.5+7)/5=2.75 5.假定系统中有五个进程(P0 ,P1,P2,P3,P4)和四种类型的资源(A,B,C,D), 全部资源的数量(Vector)为(3,12,14,14); 在T0时刻的资源分配情况如下表。
[1]( 4分)用银行家算法判断T0时刻系统状态是否安全?如为安全状态给出所有安全序列。
[2]( 4分)若进程P2提出请求Request(0,1,1,0),系统能否将资源分配给它?
解:
(1)Available=(3,12,14,14)-(2,6,11,12)=(1,6,3,2)
Work=Available = (1,6,3,2)
Process Work Need Available Work+Ava Finish P0 (1,6,3,2) (0,0,1,2) (0,0,3,2) (1,6,6,4) True P3 (1,6,6,4) (0,5,5,2) (0,3,3,2) (1,9,9,6) True P1 (1,9,9,6) (1,7,5,0) (1,0,0,0) (2,9,9,6) True P2 (2,9,9,6) (2,2,5,4) (1,3,4,4) (3,12,13,10) True P4 (3,12,13,10) (0,6,5,7) (0,0,1,4) (3,12,14,14) True T0时刻是安全的,安全序列为:{P0,P3,P1,P2,P4},
(2)若P2提出请求Request(0,1,1,0),调用银行家算法:
Request(0,1,1,0) Request(0,1,1,0) 进行假分配,修改相应的数据结构: Allocation=(1,3,4,4)+(0,1,1,0)=(1,4,5,4) Need=(2,2,5,4)-(0,1,1,0)=(2,1,4,4) Available=(1,6,3,2)-(0,1,1,0)=(1,5,2,2) 调用安全性算法: 能得到安全序列:{P0,P3,P1,P2,P4},所以可以分配 进程P1进程P2 M1 y:=1; N1 x:=1; M2 y:=x+y+3; N2 x:=x+z+1; M3 V(S1); N3 P(S1); M4 z:=x+y; N4 y:=x+y+z; M5 P(S2); N5 V(S2); M6 x:=z+y; N6 z:=x+z; Process Max Allocation A B C D A B C D P0 0 0 4 4 0 0 3 2 P1 2 7 5 0 1 0 0 0 P2 3 5 9 8 1 3 4 4 P3 0 8 8 4 0 3 3 2 P4 0 6 6 11 0 0 1 4