操作系统原理课后习题答案 联系客服

发布时间 : 星期五 文章操作系统原理课后习题答案更新完毕开始阅读6208a7d977232f60ddcca1ec

量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。

Main( ){

int mutexa, mutexb, mutex1, mutex2, counta, countb;

mutexa=1;

mutexb=1;

mutex1=mutex2=1;

counta=countb=0;

cobegin

bargei; //i=1,2,...,m

carj; //j=1,2,...,n

Coend }

bargei(){

.....

P(mutexb);

吊起 B 桥;

P(mutexa);

吊起 A 桥;

驳船通过 A 桥;

放下 A 桥;

V(mutexa);

驳船通过 B 桥;

放下 B 桥;

V(mutexb);

.... }

carj(){

....

P(mutex2);

countb++;

if(countb==1)

P(mutexb);

V(mutex2);

汽车通过 B 桥;

P(mutex2);

countb--;

if(countb==0)

V(mutexb);

V(mutex2);

汽车通过 AB 段公路;

P(mutex1);

counta++;

if(counta==1)

P(mutexa);

V(mutex1);

汽车通过 A 桥;

P(mutex1);

counta--;

if(counta==0)

V(mutexa);

V(mutex1);

..... }

5-7 讨论下图描述的交通死锁的例子(设个方向上的汽车是单线的,直线行驶):

(1)对于死锁的四个必要条件中的哪些条件在此例中是适用的? (2)提出一个简单的原则,它能避免死锁。

(3)若用计算机实现交通的自动管理,请用信号灯上的V,P操作来实现各方向上汽车行驶的同步。

答:(1)路口是共享资源。

c 互斥条件:路口必须互斥使用,即汽车对它所需要的路口是排他性控制的。

d 不剥夺条件:汽车一旦占用了路口,除非自己让出路口,别人无权剥夺。

e 部分分配条件:每个方向的车队都占有一个路口,同时因申请新路口而等待。

f 环路等待条件:占有路口的车都在等待其它车占有的路口,循环等待。

(2)可以在每个路口设置红绿灯进行控制:绿灯亮时,南北方向的车可以通行,东西方向的车禁止通行;当红灯亮时,东西方向的车可以通行,而南北方向的车禁止通行。

第6章

6-2 某系统的进程状态变迁图如图6.9所示(设该系统的进程调度方式为非剥夺式),请说明:

(1)一个进程发生变迁3的原因是什么?发生变迁2、变迁4的原因又是什么?

答:变迁3:请求I/O设备 ,变迁2:超时间片,变迁4:I/O完成。

(2)下述因果变迁是否会发生,如果有可能的话,在什么情况下发生?

(a)2->1;(b)3->2;(c)4->5;(d)4->2;(e)3->5

答:<1><5>不能发生,<2>在该进程位于就绪队列首部时<3>在I/O完成后<4>在某进程剥夺处理机时