操作系统原理答案(张丽芬).doc
《操作系统原理答案(张丽芬).doc》由会员分享,可在线阅读,更多相关《操作系统原理答案(张丽芬).doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 习题答案2-9. (1) x=3 运行顺序为 Px,P3,P5,P6,P9T=(x+(x+3)+(x+3+5)+(x+3+5+6)+(x+3+5+6+9)/5=x+9.6(2) 3x=5 运行顺序为 P3,Px,P5,P6,P9T=(3+(3+x)+(3+x+5)+(3+x+5+6)+(3+x+5+6+9)/5=0.8x+10.2(3) 5x=6 T=0.6x+11.2(4) 6x=9 T=0.4x+12.4(5) 9n时,每个进程最多可以请求个该类资源 当m=n时,每个进程最多可以请求1个该类资源 当mn时,每个进程最多可以请求(m+n-1)/n个该类资源)3-15解答:这是进程之间
2、的同步问题。M2、M3和M4必须在接收到M1的消息后才能运行。同理,M6必须在M2和M3之后运行,M7必须在M4,M5之后运行,M8必须在M3、M7之后运行。如何保证呢?需设置相应的信号量来保证:S12,S13,S14,用来制约M2、M3和M4的运行;S26,S36,用来制约M6的运行;S47,S57,用来制约M7的运行;S38,S78用来制约M8的运行。各进程的制约关系描述如下。S12,S13,S14,S26,S36,S47,S57,S38,S78:semaphore;S12:=0;S13:=0;S14:=0;S26:=0;S36:=0;S47:=0;S57:=0;S38:=0;S78:=0
3、;COBEGIN PROCESS M1: PROCESS M2: BEGIN BEGIN V(S12); P(S12); V(S13); V(S26); V(S14); END ENDPROCESS M3: PROCESS M4:BEGIN BEGIN P(S13); P(S14); V(S36); V(S47); V(S38); ENDENDPROCESS M5: PROCESS M6:BEGIN BEGIN V(S57); P(S26);END P(S36); ENDPROCESS M7: PROCESS M8BEGIN BEGIN P(S47); P(S38); P(S57); P(S7
4、8); V(S78); ENDENDCOEND3-16. 叉子是临界资源,在一段时间内只允许一个哲学家使用。一个信号量表示一把叉子,五个信号量构成信号量数组,这些信号量的初值为1。int fork0=fork1=fork4=1;第i个哲学家所执行的程序:do P(mutex); P(forki); P(fork(i+1)mod5); V(mutex); 吃饭 V(forki); V(fork(i+1)mod5); while(1);3-17. (1)公平竞争(无写者时,读者仍遵循多个读者可以同时读)rmutex互斥共享readcount; rwmutex读写互斥,写写互斥;读写进程在z上排队。
5、int rmutex=1,rwmutex=1,readcount=0;reader:begin p(z); /读写进程在z上排队。 p(rmutex); if(readcount=0) then p(rwmutex); end if +readcount; v(rmutex); v(z); /无写者时,多个读者可以同时读. read data;写z读写写读读读写 p(rmutex); -readcount; if(readcount=0 then v(rwmutex); end if; v(rmutex); endwriter:begin p(z); /读写进程在z上排队。 p(rwmutex
6、); write data; v(rwmutex); v(z); end(2)写者优先int readcount,writecount;semaphore rmutex=1,wmutex=1,rwmutex=1,z=1,x=1;reader:/当来了一个写进程时,通过p(x)禁止其后读进程读,直到写进程写完为止。 while(1)p(z); /其他读进程在z上排队p(x); /一个读进程与一个写进程在x上竞争p(rmutex); /读进程互斥访问readcount+readcount;if(readcount=1) p(rwmutex); v(rmutex);v(x);rwmutexxz读读读
7、读写读写写v(z);read data; /临界区p(rmutex);-readcount;if(readcount=0) v(rwmutex);v(rmutex); Writer: while(1)p(wmutex); /写进程互斥访问writecount+writecount;if(writecount=1) p(x); /一个写进程与一个读进程在x上竞争v(wmutex);p(rwmutex); /其他写进程在rwmutex上排队write data; /临界区v(rwmutex);p(wmutex);-writecount;if(writecount=0) v(x); /写进程都写完时
8、,通过v(x)允许读进程读v(wmutex); 附加题:读者优先,规定仅允许5个进程同时读,怎样修改程序?解:增加一个资源信号量s,初值为5。 int s=5;Reader:beginP(rmutex);readcount=readcount+1;if(readcount=1)then P(rwmutex);V(rmutex);P(s);read_file();V(s);P(rmutex);readcount=readcount-1;if(readcount=0)then V(rwmutex);V(rmutex);endwriter:begin p(rwmutex); write data;
9、v(rwmutex); end3-18int s1=0, s2=n;顾客进程:P(s2);V(s1);坐椅子等理发理发师进程:P(s1);给顾客理发V(s2)读写管程两个计数器rc和wc分别对读进程和写进程计数,用R和W分别表示允许读和允许写的条件变量,于是管理该文件的管程可如下设计:type read-writer = MONITORvar rc, wc : integer;R, W : condition;define start-read, end-read, start-writer, end-writer;use wait, signal, check, release;proced
10、ure start-read;begincheck(IM);if wc0 then wait(R,IM);rc := rc + 1;signal(R, IM);release(IM);end;procedure end-read;begincheck(IM);rc := rc - 1;if rc=0 then signal(W,IM);release(IM);end;procedure start-write;begincheck(IM);wc := wc + 1;if rc0 or wc1 then wait(W,IM);release(IM);end;procedure end-write
11、;begincheck(IM);wc := wc - 1;if wc0 then signal(W,IM);else signal(R, IM);release(IM);end;beginrc := 0; wc := 0; R := 0; W := 0;end.任何一个进程读(写)文件前,首先调用start-read(start-write),执行完读(写)操作后,调用end-read(end-write)。即:cobeginprocess readerbegincall read-writer.start-read;read;call read-writer.end-read;end;pro
12、cess writerbegincall read-writer.start-write;write;call rear-writer.end-write;end;coend.上述程序能保证在各种并发执行的情况下,读写进程都能正确工作,请读3-19(2)和(4)会发生死锁。3-20P1/剩余P2/剩余P3/剩余系统剩余13/5722/4534(不安全)45/3352(不安全)6(5+3)/00(8)74/348(2+2)/229(1)P1占有5个资源,剩余3个资源请求。P2占有2个资源,剩余4个资源请求。P3占有0个资源,剩余7个资源请求。系统剩余3个资源。(2)P1的请求最先满足。进程完成序
13、列:P1,P2,P3。3-21(1) 最大需求矩阵: 分配矩阵: 剩余请求矩阵:0 0 0 00 7 5 01 0 0 20 0 2 00 6 4 20 0 1 21 0 0 01 3 5 40 6 3 20 0 1 40 0 1 21 7 5 02 3 5 60 6 5 20 6 5 6Max = Allocation = Need = 剩余资源向量:Available=(1 5 0 2)(2)当前系统是安全的。判断系统是否安全,只要检查系统剩余资源向量能否对各进程的剩余请求向量找到一个进程完成序列,当按照这个序列为各进程分配资源时,各进程都能成功完成。若能找到,则系统是安全的,否则,为不安
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 答案 张丽芬
限制150内