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