计算机操作系统课件习题解答
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
售票员进程: Begin Repeat 关门; signal(S_Door); 售票; wait(S_Stop); 开门; Until false; End
第三章 习题解答
1.在单道环境下,某批处理有四道作业,已知它们的进入系统的时刻、估计运算时 间(即所要求的服务时间)如下:
作业
1 2
提交时刻(h) 服务时间(h) 开始时刻 完成时刻 周转时间 带权周转时间
运行顺序:1、4、3、2 平均周转时间T=(2+3.6+2.4+1.8)/4=2.45(h) 平均带权周转时间T’=(1+3.6+4.8+6)/4=3.85
最高响应比作业优先算法(HRN)
作业
1 2 3 4
提交时刻
10.00 10.20 10.40 10.50
执行时间
2.00
开始时刻 完成时刻 周转时间 带权周转
最高响应比作业优先算法(HRN) 响应比=1+已等待时间/需运行时间=1+W/T
时刻为12.00: 分别计算2号、3号、4号作业的响应比 R2=1+(12.00-10.20)/1=1+1.8/1=2.8 R3 =1+(12.00-10.40)/0.5=1+1.6/0.5=4.2 R4 =1+(12.00-10.50)/0.3=1+1.5/0.3=6 (响应比最高) 所以选中4号作业投入运行,4号作业运行到12.30运行结束 时刻为12.30: 分别计算剩余的2号和3号作业的响应比 R2=1+(12.30-10.20)/1=1+2.1/1=3.1 R3 =1+(12.30-10.40)/0.5=1+1.9/0.5=4.8 (响应比最高) 所以选中3号作业投入运行,3号作业运行到12.80运行结束 时刻为12.80: 只剩下一个作业,即2号作业,被作业调度程序选 中,投入运行。
S4 S5
S1
b
S3
e
f
g
h
S6
吃水果问题
问题描述:桌上有一只盘子,每次只能放一
个水果,爸爸专向盘中放苹果,妈妈专向盘 中放桔子,儿子专等吃盘里的桔子,女儿专 等吃盘里的苹果。只要盘子空,则爸爸或妈 妈可向盘中放水果,仅当盘中有自己需要的 水果时,儿子或女儿可从中取出,请给出四 人之间的同步关系,并用PV操作实现四人正 确活动的程序。
A
B
A
C
B
C
30
70
90 100 120 130
160
180
时间/ms
第二章 习题解答
用信号量机制实现n个进程的互斥。 1)设sem为互斥信号量,其取值范围(1,0,1,…,-(n-1) ) 其中,sem=1表示n个进程都未进入类名为S的 临界区;sem=0表示n个进程中有一个进入临界 区;sem = -1表示n个进程中有一个进入临界区, 另有一个等待进入临界区;…sem=-(n-1)表示n 个进程中有一个进入临界区,而另n-1进程等待 进入临界区 。
10.00 12.80 12.30 12.00 12.00 2.00 3.6 2.4 1.8 1.00
1
0.5 0.3
13.80
12.80 12.30
3.6
4.8 6
运行顺序:1、4、3、2 平均周转时间T=(2+3.6+2.4+1.8)/4=2.45(h) 平均带权周转时间T’=(1+3.6+4.8+6)/4=3.85
第一章 习题解答
三个程序A、B、C,它们使用同 一个设备进行I/O操作,并按A 、B、C的优先次序执行。这三 个程序的计算和I/O操作时间如 表1所示。假设调度的时间可忽 略不计,请分别画出单道程序 环境和多道程序环境下(假设 内存中可同时装入这三道程序 ),它们运行的时间关系图, 并比较它们的总运行时间。
10.00 10.20 2.00 1.00 0.50 0.30
3 4
10.40 10.50
试分别用FCFS、SJF、HRRN算法写出作业的运行情况、平均周转时间和 平均带权周转时间。
FCFS调度算法
作业
1 2 3 4
提交时刻
10.00 10.20 10.40 10.50
执行时间
2.00
开始时刻 完成时刻 周转时间 带权周转
问题:用P.V操作解决下面问题
司机进程: REPEAT 启动车辆 正常驾驶 到站停车 UNTIL … 售票员进程: REPEAT 关门 售票 开门 UNTIL …
同步要求:先关门,后开车; 先停车,后开门
信号量: S_Door, {初值为0} S_Stop; {初值为0} 司机进程: Begin Repeat wait(S_Door); 启动; 驾驶; 停车; signal(S_Stop); Until false; End
程序 A 操作 B C
30
计算
60
20
40
I/O
30
40
计算
10
10
20
表1 程序运行的时间表(单位:ms)
• 单道运行的时间关系图
A B A B B C C C
I/O
计算
0
A
30
70 80
140
170 180 200
240 260
时间/ms
• 多道、非抢占式运行的时间关系图
A B C
I/O
计算
0
2)描述: P1: P2 : Pn : … wait(sem) wait(sem) … wait(sem) <CS> <CS> … <CS> signal(sem) signal(sem) … signal(sem) … … …
答:⑴ 设信号量c[0] ~c[4],初始值都为1,分别 表示第i号筷子被拿(i=0,1,2,3,4) Send(i) 第i个哲学家要吃饭 Begin wait(c[i]) wait(c[(i+1) mod 5]) eat signal(c[(i+1) mod 5]) signal(c[i]) end
⑵ 解决思路如下:让奇数号的哲学家先取左手边 的筷子,让偶数号的哲学家先取右手边的筷子。 Send(i) 哲学家
0
Begin
if (i mod 2 == 0) then
筷子
4
0
1 1
来自百度文库
{
wait(c[i]) wait(c[(i+1) mod 5]) eat signal(c[i]) signal(c[(i+1) mod 5]) }
四人之间的关系
爸爸,妈妈要互斥使用盘子,所以两者 之间是互斥关系;
爸爸放的苹果,女儿吃,所以两者是同 步关系; 妈妈放的桔子,儿子吃,所以两者也是 同步关系。
解:
设信号量pan初值为1,表示盘子里可以 放1个水果
设信号量apple为父亲和女儿同步的私用 信号量,初值为0
设信号量orange为母亲和儿子同步的私 用信号量,初值为0
周转时间= 完成时间-提交时间
最短作业优先法(SJF)
该算法总是优先调度要求运行时间最短的作业
作业
1 2 3 4
提交时刻
10.00 10.20 10.40 10.50
执行时间
2.00 1 0.5 0.3
开始时刻 完成时刻 周转时间 带权周转
10.00 12.80 12.30 12.00 12.00 13.80 12.80 12.30 2.00 3.6 2.4 1.8 1.00 3.6 4.8 6
10.00 12.00 13.00 13.5 12.00 2.00 2.80 3.10 3.30 1.00
1
0.5 0.3
13.00
13.50 13.80
2.80
6.20 11
运行顺序:1、2、3、4 平均周转时间T=(2+2.8+3.1+3.3)/4=2.8(h) 平均带权周转时间T’=(1+2.8+6.2+11)/4=5.25
4
3 3 2
2
else { wait(c[(i+1) mod 5]) wait(c[i]) eat
signal(c[(i+1) mod 5])
signal(c[i])
}
end
• 如下图具有6个节点的前驱图,利用信号 量机制来解决该前驱图所描述的并发执 行的过程。
S1 S2 S3
S4
S5
S6
Struct smaphore a,b,c,d,e,f,g,h=0,0,0,0,0,0,0,0 cobegin {S1;V(a);V(b);} {P(a);S2;V(c);V(d);} {P(b);S3;V(e);} {P(c);S4;V(f);} a {P(d); S5;V(g);} S2 {P(f);P(g); P(h) ;S6;} c d Coend
Father:wait(pan) 放apple signal(apple)
daughter:wait(apple) 取apple signal(pan)
Mother:wait(pan) 放orange signal(orange)
son:
wait(orange) 取orange signal(pan)