操作系统原理
第一次离线作业答案(第1、2章)
应用题
1.解:
var S1,S2:semaphere = 0,0 ; begin parbegin
司机:begin 售票员:begin repeat repeat P(S1) ; (上客) 启动开车 关车门 - V(S1) ; 正常行车 售票 - P(S2) ; 到站仃车 开车门 V(S2) ; - (下客) until until end end perend end
2. 解:
var (信号量)﹎﹎S1 , S2 ﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎:semaphore:= (信号量初值) ﹎﹎1 , 0 ﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎; begin parbegin 妈: begin
repeat 準備
﹎﹎ P (S1 ) ﹎﹎ 向盒内放水果 ﹎﹎ V (S2) ﹎﹎
until false end 儿:begin
repeat
﹎﹎ P (S2 ) ﹎﹎ 拿盒中的水果
﹎﹎ V (S1) ﹎﹎ 吃水果
until false end 女:begin
repeat
﹎﹎ P (S2 ) ﹎﹎ 拿盒中的水果 ﹎﹎ V (S1) ﹎﹎ 吃水果 until false end parend end
3. 解:
高响应比优先(HRRN)(作业)调度算法作业调度次序的计算: T=0:只有作业A已到达,调度作业A运行。
T=4:作业A完成,作业B、C、D、E已到达,计算作业B、C、D、E响应比RP分别为: 1+3/3、1+2/5、1+1/2、1+0/4,作业B响应比最大调度运行。
T=7:作业B完成,作业C、D、E已到达,计算作业C、D、E响应比RP分别为: 1+5/5、1+4/2、1+3/4,作业D响应比最大调度运行。
T=9:作业D完成,作业C、E已到达,计算作业C、E响应比RP分别为: 1+7/5、1+5/4,作业C响应比最大调度运行。
T=14:作业C完成,作业E已到达,调度作业E运行。 T=18:作业E完成。
4. 解:
短作业优先调度算法SJF作业调度次序的计算: 1. T=0 作业A到达, 调度作业A。
2. T=7 作业B、C、D、E已全部到达,比较作业B、C、D、E的运行时间,按运行时间短的作业先运行,则调度次序为D、B、E、C。
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 A D SJF SJF
进 程 到达时间 Ta 运行时间 TS A 0 7 B 2 6 C 3 9 D 4 4 11 7 E 6 6 23 17 平均(分) 15 B E C 完成时间 Tf 7 17 32 周转时间 Tq 7 15 29
5. 解: Allocation A B 0 0 3 6 0 C 1 0 5 3 1 D 1 0 4 2 4 A 0 0 1 0 0 Need B 0 7 0 0 6 C 0 5 0 2 4 D 0 0 2 0 2 A 1 1 2 1 3 分配前 B 5 11 11 5 C 2 6 6 3 D 0 3 3 1 7 Available 回收后 A 1 2 3 1 3 B 5 11 11 C 3 6 6 D 1 3 7 3 No 1 3 4 2 5 P0 0 P1 1 P2 1 P3 0 P4 0 14 11 14 11 14 12 11 T0时刻是安全,一个安全序列为P0、P3、P1、P2、P4;
6. 解:
T0时刻是安全的,进程P2此时提出资源申请(1,2,2,2), Reqp2(1,2,2,2)<= ( 2 3 5 6 ) Reqp2(1,2,2,2)<= ( 1 6 2 2 )
如系统实施此次分配,修改Allocation、Need、Availabe ,得到新状态如图, 使系统可用资源减到(0,4,0,0),再也无法满足各进程对资源的需求,系统进入一个不安全状态,系统不能将资源分配给进程P2。 进程 P0 P1 P2 P3 P4 Allocation A B C D 0 0 3 2 1 0 0 0 2 5 7 6 0 3 3 2 0 0 1 4 Need A B C D 0 0 1 2 1 7 5 0 1 1 3 4 0 6 5 2 Availabe A B C D 0 4 0 0 Avelable+ Allocation A B C D No 0 6 5 6