《操作系统第三章作业答案(4页).doc》由会员分享,可在线阅读,更多相关《操作系统第三章作业答案(4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-第三章作业1.下进程之间存在相互制约关系吗?若存在,是什么制约关系?为什么?几个同学去图书馆借同一本书。答:互斥,只能有一个借到篮球比赛中两队同学争抢篮板球。答:互斥,只能有一个抢到果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。答:同步时进行,相互不影响商品的入库出库。答:同步时进行,相互无影响工人做工与农民种粮。答:同步进行,相互无影响2.在操作系统中引入管程的目的是什么?条件变量的作用是什么?答:引入管城是为了实现进程的同步和互斥。 条件变量的作用是:设置多个信号量,使用大量的P、V操作,还要仔细安排多个P操作的排列次序,否则会出现错误的结果或出现死锁现象。3.说明P、V操作为什么要
2、设计成原语。答:用信号量S表示共享资源,其初值为1表示有一个资源。设有两个进程申请该资源,若其中一个进程先执行P操作。P操作中的减1操作有3条指令组成:去S送寄存器R;R-1送S。若P操作不用原语实现,在执行了前述三条指令中的2条,即还未执行R送S时(此时S值仍为1),进程被剥夺CPU,另一个进程执行也要执行P操作,执行后S的值为0,导致信号量的值错误。正确的结果是两个进程执行完P操作后,信号量S的值为-1,进程阻塞。4.设有一个售票大厅,可容纳200人购票。如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。试问:购票者之间是同步关系还是互
3、斥关系?答:互斥关系 用P、V操作描述购票者的工作过程。如下:semaphore mutex=1;semaphore full=200;void customer() p(metux); P(full); Buying V(mutex); V(full);5.进程之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。如下:设:s1s2为a s1s3为b s2s6为c s3s4 为d s3s5为e s4s6为f s5s6为gsemaphore a,b,c,d,g,f,g=0,0,0,0,0,0,0; s1;v(a);v(b); p(a);s2;v(a); p(b);s3;v(b); p(
4、d);s4;v(d); p(e);s5;v(e); p(c);s6; p(f);p(g);s66.有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、P3、P4从缓冲区中去消息,要求发送者必须等三个进程都去过本消息后才能发送下调消息。缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。如下:Semaphore: metux=0; p1;v(metux); p(metux); p(metux); p(metux);P2; p3; p4;V(metux); v(metux); v(metux); 7.分析生产者消费者问题中多个P操作颠倒引起的后果。
5、semaphore mutex=1; semaphore empty=n; semaphore full=0; int i,j;ITEM buffern;ITEM data_p,data_c;void producer() While(ture) Produce an item in data_p; P(empty); P(mutex); bufferi=data_p; i=(i+1)%n; v(empty); v(full);Void consumer() While(ture) P(full); P(mutex);data_c= bufferj; j=(j+1)%n;v(metux); v
6、(empty);coumer the item in data_c;8.读者写者问题中写者优先算法的实现。semaphore Wmutex,Rmutex=1;int Rcount=0;semaphore mutex=1void reader() void writer()while(true) while(true)P(mutex); P(mutex); P(Rmutex); P(wmutex); If(Rcount=0) P(wmutex); Rcount=Rcount+1 ; 写;V(Rmutex); V(mutex); V(Wmutex); V(mutex);读; P(Rmutex);R
7、count=Rcount-1;if (Rcount=0) V(wmutex);V(Rmutex);9.写一个用信号量解决哲学家进餐问题不产生锁死的算法。如下:Semaphore chopstick5=1,1,1,1,1;Semaphore mutex;Void profession(int n) While (ture) p(chopsticki; p(chopstick(i+1)%5); p(metux); 进餐; V(chopsticki; V(chopstick(i+1)%5);思考;V(metux);10.一个文件可有若干个不同的进程所共享,每个进程具有唯一的编号。假定文件可有满足下列限制的若干个不同的进程同时访问,并发访问该文件的哪些进程的编号的总和不得大于n,设计一个协调对该文件访问的管程。不会做这道题11.用管程解决读者写者问题,并采用公平原则。不会做这道题 -第 4 页-