资源描述:
《厦门大学操作系统56章习题讲解ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5-6章作业P177复习题5.8在信号量上可执行的操作:初始化>=0(一般情况)semWait原语,值减1如果值变为负数,则执行semWait的进程被阻塞semSignal原语,值加1如果值小于或等于0,则唤醒一个该信号量的阻塞进程P177复习题5.11什么是管程?管程(Monitor)是一个程序设计语言结构,它提供与信号量同样的功能,但更易于操作管程是一个软件模块一个或多个过程一个初始化序列局部数据P177复习题5.13与读者-写者问题相关联的条件:任意多的读进程可以同时读一个文件一次只有一个写进程可以往文件中写如果一个写进程正在往文件中
2、写时,则禁止任何读进程读文件P179习题5.2一个并发程序,它的两个进程p与q,A、B、C、D、E是任意的原子语句。设主程序执行两个进程的parbegin。voidp(){A;B;C;}voidq(){D;E;}给出这两个进程所有可能的交替执行(根据原子语句给出执行轨迹)ABCDE;ABDCE;ABDEC;ADBCE;ADBEC;ADEBC;DEABC;DAEBC;DABEC;DABCE1.进程A载入tally值,并将tally的值加到1,在此时失去处理器(它已经增加寄存器的值到1,但是还没有存储这个值).2.进程B载入tally值(仍然是
3、0),然后运行完成49次增加操作,在它已经将49这个值存储给共享变量tally后,失去处理器控制权.3.进程A重新获得处理器控制权去完成它的第一次存储操作(用1去代替先前的49这个tally值),此时被迫立即放弃处理器.4.进程B重新开始,将1(当前的tally值)载入到它自己的寄存器中,但此时被迫放弃处理器(注意这是B的最后一次载入).5.进程A被重新安排开始,但这次没有被中断,直到运行完成它剩余的49次载入,增加和存储操作,结果是此时tally值已经是50.6.进程B在它终止前完成仅有的最后一次增加和存储操作.它的寄存器值增至2,同时存
4、储这个值做为这个共享变量的最终结果.一些人认为会出现低于2这个值的结果,这种情况是不会出现.所以tally值的正确范围是[2,100].P182习题5.3P182习题5.3b、在a的假设下,允许任意多的进程并发执行,tally值的范围?对一般有N个进程的情况,tally值的最终范围是[2,N*50],因为对其他所有进程来说,从最初开始运行到在第五步完成.但最后都被进程B破坏掉它们的最终结果.P182习题5.13考虑图5.10中定义的无限缓冲区生产者/消费者问题的解决方案,设生产者与消费者都以大致相同的速度运行,运行情况如下:生产者:appe
5、nd;semSignal;produce;...;append;semSignal;produce;...;消费者:consume;...;take;semWait;consume;...;take;semWait;...;生产者通常管理给缓冲区添加一个新元素,并在消费者消费了前面的元素后发出信号。生产者通常添加到一个空缓冲区中,而消费者通常取走缓冲区中的惟一元素。消费者从不在信号量上阻塞,但必须进行大量的信号量调用,产生相当多的开销。构造新程序,使之更有效。提示:允许n的值为-1,这表示不仅缓冲区为空,而且消费者也检测到这个事实并将被阻塞
6、,直到生产者产生新的数据。这个方案不要图5.10中的局部变量m。P182习题5.13P182习题5.13programproducerconsumer;varn:integer;s:(*binary*)semaphore(:=1);delay:(*binary*)semaphore(:=0);procedureproducer;beginrepeatproduce;semWaitB(s);append;n:=n+1;ifn=0thensemSignalB(delay);semSignalB(s)foreverend;P182习题5.13pr
7、ocedureconsumer;beginrepeatsemWaitB(s);take;n:=n-1;ifn=-1thenbeginsemSignalB(s);semWaitB(delay);semWaitB(s)end;consume;semSignalB(s)foreverend;begin(*mainprogram*)n:=0;parbeginproducer;consumerparendP182习题5.14考虑图5.13,若发生下面的交换,程序的意义是否会改变?a.semWait(e);semWait(s)b.semSignal(s
8、);semSignal(n)c.semWait(n);semWait(s)d.semSignal(s);semSignal(e)P182习题5.14P182习题5.14信号量s控