操作系统部分习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)变换过程图:。。。。。。。。。。。(略)
到达时间