操作系统部分习题参考答案

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

部分习题参考答案

第二章

书上习题

23.若缺少了signal(full),由于full初值为0,消费者无法取产品;

当缓冲池全送满时,empty降为0,若缺少了signal(empty),当缓冲池全取空时,由于empty仍然为0,生产者无法再送产品。

24.如果wait(full)和wait(mutex)互换位置,会造成当full=0时,若有消费者进程还对full执行wait操作,导致死锁。

28.设初值 empty=1, full=0

Precess1: begin

Repeat

Wait(empty)

Critical section

送数据

Signal(full)

Until false

End

Precess2: begin

Repeat

Wait(full)

Critical section

取数据

Signal(empty)

Until false

End

附加题:

1.

设信号量S 表示共享资源,初值为1

(模型图请参考课件)

2.

因为两个进程要协作完成一个任务,为了进程间的相互唤醒(即同步执行),对私用信号量的PV操作应成对出现在两个进程中。

3.供者A和用者B的同步关系模型:

设:

S1-表示Buf是否为空(0为不空,1为空);

S2-表示Buf是否为满(0为不满,1为满)。

且初值为:S1=1,S2=0。

(注:与课件中的假设条件相反

课件中:设S1-表示Buf是否为满(0为不满,1为满);

S2-表示Buf是否为空(0为不空,1为空)。

S1初值为0,S2的初值为1。)

(这里,供者和用者要交换两个消息:缓冲区空和满的状态。当空时,供者才能送数据;当满时用者才能取数据。用者不能超前供者,供者不能往满的区中再送,避免覆盖掉前面的数据)

供者A 用者B

P( S1) P(S2)

送信息到缓冲区,直到满。取数据,直到空

V(S2) P(S1)

4.答:不能,因为他先对缓冲池执行了互斥操作。(缓冲池的初值为1,执行P操作后为0)。

5. 答:不能,应该先对私用信号量执行P操作,再对公用信号量执行P操作,否则可能会引起死锁。V操作的顺序没关系。

如:若先对mutex执行P操作,再对empty执行P操作,当执行到empty=0时,再对mutex执行P操作,可以进入缓冲池,但由于这时empty已经为0,没有空的缓冲区可用,出现死锁,出不去又进不来。

6. 答:可以。因为两个进程是并发进程,不满就可以送,不空就可以取。但不论谁执行,都要先对缓冲池执行互斥操作。

7. 答:通过私用信号量 empty,和full。

已知初值empty=n, full=0 。在生产者进程中对empty执行P操作,对full执行V 操作,当empty=0,full=n时,说明缓冲池满,不能再送;当消费者进程中的full=0,而empty=n时,说明缓冲池空,不能再取。

第三章

1. 对下面的5个非周期性实时任务,按最早开始截止时间优先调度算法,以图示说明,应如何进行CPU 调度 (分“抢占式”和“非抢占式”)

进程 到达时间 执行时间 开始截止时间

A 10 20 110

B 20 20 20

C 40 20 50

D 50 20 90

E 60 20 70

答:

0 10 20 30 40 50 60 70 80 90 100 110 120

(1)非抢占方式

B(错过) C E D A

(2)抢占方式

B C E D A

可见,在采用非抢占调度方式时,系统没能保证B 任务对截止时间的要求。

2. 若有3个周期性任务,

任务A 要求每20ms 执行一次,执行时间为10ms ;

任务B 要求每50ms 执行一次,执行时间为10ms ;

任务C 要求每50ms 执行一次,执行时间为15ms ;

以图示说明,应如何按最低松弛度优先算法对它们进行CPU 调度

答:

0 10 20 30 40 50 60 70 80 90 100

任务执行 任务执行

B1,C1 B2,C2 B3,C3

A1 A2 A3 A4 A5 A6

必须完成时间 A1 A2 A3 A4 A5

B1,C1 B2,C2

0 10 25 35 45 55 70 80 90 100

松弛度

A1=10 A2=5 A3=5 A4=0 A5=0 A6=10

B1=40 B1=15 B2=20 B3=40

C1=35 C3=35

B1=30 B1=5 B2=35 B2=10

C1=25 C2=30 A5=10

任务执行:

0 10 25 35 45 55 70 80 90 100

第四章

1. 解答:

(1)地址转换:

① 逻辑地址1023:

页号P =INT [1023/1024]=0, 页内地址为1023,查页表找到对应的物理块号为2,故物理地址为 2×1K +1023=3071

② 逻辑地址2500:

页号P =INT [2500/1024]=2, 页内地址d = 452,查页表找到对应的物理块号为6,故物理地址为 6×1K +452=6596

③ 逻辑地址3500:

页号P =INT [3500/1024]=3, 页内地址为428,查页表找到对应的物理块号为7,故物理地址为 7×1K +428=7596

④ 逻辑地址4500:

页号P =INT [4500/1024]=4, 页内地址为404,因页号不小于页表长度,故产生越界中断。

(2)变换过程图:。。。。。。。。。。。(略)

到达时间

相关文档
最新文档