习题解答——第2章进程与线程

  • 格式:doc
  • 大小:41.50 KB
  • 文档页数:2

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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)