习题解答——第2章进程与线程
- 格式:doc
- 大小:41.50 KB
- 文档页数:2
第2章进程与线程思考与练习题
4
6.进程的三个基本状态如图所示,图中1、2、3、4表示某种类型的状态变迁,试回答以下问题:1什么“事件”引起各状态之间的变迁?
2系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,我们把这种变迁称为因果变迁。试判断下述哪些是因果变迁?并说明理由。
3→1, 2→1, 3→2, 4→1, 3→4
6下述哪些变迁不会引起其它变迁,为什么?
1, 2, 3, 4
答:(1)1为进程调度,
2为时间片用完,
3为请求I/O或等待某事件,
4为I/O完成或事件完成。
(2)3→1,2→1为因果变迁,其他均不是,因为前者均是一个进程从CPU下来,另一个就绪态的进程被调度。
(3)1和4不会引起其他变迁,理由同(2)。
7.假如有以下程序段:
S1: a = 5 - x;
S2: b = 3 * x;
S3: c = a + b;
S4: d = c + 3;
1试画图表示它们执行时的先后次序。
2利用Bernstain条件证明,S1和S2是可以并发执行的,S3和S4是不可以并发执行的。
3试用信号量写出它们可以并发执行的程序。
答:
(1)进程的执行次序如下图
(2)对于进程S1和S2
R(S1)={x},W(S1)={a}
R(S2)={x},W(S2)={b}
R(S1)∩W(S2)∪R(S2)∩W(S1)∪W(S1)∩W(S2)=Ф由Bernstain条件得知,S1和S2可以并发执行。
R(S3)={a,b},W(S3)={c}
R(S4)={c},W(S4)={d}
R(S3)∩W(S4)∪R(S4)∩W(S3)∪W(S3)∩W(S4)={c} 由Bernstain条件得知,S1和S2不可以并发执行。
(3)定义信号量a=b=c=0
S1: S2: S3: S4:
a=5-x b=3*x p(a) p(c)
v(a) v(b) p(b) d=c+3
c=a+b
v(c)