青岛理工大学操作系统作业答案.doc

青岛理工大学操作系统作业答案.doc

ID:51188803

大小:547.50 KB

页数:12页

时间:2020-03-20

青岛理工大学操作系统作业答案.doc_第1页
青岛理工大学操作系统作业答案.doc_第2页
青岛理工大学操作系统作业答案.doc_第3页
青岛理工大学操作系统作业答案.doc_第4页
青岛理工大学操作系统作业答案.doc_第5页
资源描述:

《青岛理工大学操作系统作业答案.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第1章作业综合题1、设内存中有三道程序A、B、C,它们按A、B、C的优先次序执行。它们的计算和I/O操作时间如表所示(单位:ms)。三道程序的操作时间程序操作ABC计算306020I/O403040计算101020假设三道程序使用相同设备I/O操作,即程序是以串行方式使用设备,调度程序的执行时间忽略不计,试计算出在单道和多道两种情况下,完成这三道程序各要花多少时间?要求画出多道运行的时序图。(假定在多道方式下采用的是基于优先级的非抢占调度程序)解:采用单道方式运行这三道程序,运行次序为A、B、C,故总的运行时间为:(30+40+

2、10)+(60+30+10)+(20+40+20)=260ms采用多道方式运行这三道程序,A、B、C这三道进程的运行存在并行,故总的运行时间如图所示为180ms第二章1、如图所示,有一计算进程和一打印进程,它们共享一个单缓冲区,计算进程不断地计算出结果并将它放入单缓冲区中,打印进程则负责从单缓冲区中取出每一个结果进行打印。请用信号量来实现它们的同步关系。答:方法一:从临界资源的角度来思考:本题中有两类临界资源:第一类是计算进程争用的空闲缓冲区,初始状态下有一个空闲缓冲可供使用,设置信号量empty,初值为1;第二类是打印进程争用

3、的已放入缓冲区中的打印结果,初始状态下缓冲区中无结果可打印,设置信号量full,初值为0。varfull,empty:semaphore:=0,1;beginparbegincp:beginrepeatcomputernextnumber;wait(empty);addthenumbertobuffer;signal(full);untilfalseendpp:beginrepeatwait(full);takeanumberfrombuffer;signal(empty);printthenumber;untilfalseen

4、dparendend2、试用信号量解决读者—写者问题,使得写者与读者优先级根据到达顺序确定(读写平等)。然后用到达序列:R1,R2,W1,R3,R4,W2进行测试列出类似如下测试结果进程行为rmutex=1wmutex=1Readcount=0状态备注R1到达rmutex=0rmutex=1wmutex=0Readcount=1执行/就绪第1位读者1)典型错误代码讲解:不增加任何信号量Varrmutex,wmutex:semaphore∶=1,1;Readcount:integer∶=0;beginparbegin

5、Reader:beginrepeatwait(rmutex);ifReadcount=0thenwait(wmutex);Readcount∶=Readcount+1;signal(rmutex);…performreadoperation;…wait(rmutex);Readcount∶=Readcount-1;ifReadcount=0thensignal(wmutex);signal(rmutex);untilfalse;endwriter:beginrepeatifreadcount

6、>0thenwait(rumtex);wait(wmutex);performwriteoperation;signal(rmutex);signal(wmutex);untilfalse;endparendend到达序列:R1,R2,W1,R3,R4,W2进程行为rmutex=1wmutex=1Readcount=0状态备注R1到达rmutex=0rmutex=1wmutex=0Readcount=1执行/就绪第1位读者R2到达rmutex=0rmutex=1Readcount=2执行/就绪W1到达rmutex=0

7、阻塞1阻塞Readcount>0R3到达阻塞1阻塞rmutex=0R4到达阻塞2阻塞rmutex=0W2到达阻塞3阻塞rmutex=0R1离开阻塞4阻塞rmutex=0R2离开阻塞5阻塞rmutex=0产生死锁2)解决方案varS,rmutex,wmutex:semaphore:=1,1,1;readcount:integer:=0;reader:beginrepeatwait(S);wait(rmutex);ifreadcount=0thenwait(wmutex);readcount:=readcount+1;signal(

8、rmutex);signal(S);performreadoperation;wait(rmutex);readcount:=readcount-1;ifreadcount=0thensignal(wmutex);signal(rmutex);untilfals

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。