最新青岛理工大学操作系统作业答案Word文件下载.docx
- 文档编号:13736846
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:20
- 大小:144.22KB
最新青岛理工大学操作系统作业答案Word文件下载.docx
《最新青岛理工大学操作系统作业答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新青岛理工大学操作系统作业答案Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
I/O
40
10
假设三道程序使用相同设备I/O操作,即程序是以串行方式使用设备,调度程序的执行时间忽略不计,试计算出在单道和多道两种情况下,完成这三道程序各要花多少时间?
要求画出多道运行的时序图。
(假定在多道方式下采用的是基于优先级的非抢占调度程序)
解:
采用单道方式运行这三道程序,运行次序为A、B、C,故总的运行时间为:
(30+40+10)+(60+30+10)+(20+40+20)=260ms
采用多道方式运行这三道程序,A、B、C这三道进程的运行存在并行,故总的运行时间如图所示为180ms
第二章
1、如图所示,有一计算进程和一打印进程,它们共享一个单缓冲
区,计算进程不断地计算出结果并将它放入单缓冲区中,打印
进程则负责从单缓冲区中取出每一个结果进行打印。
请用信号量来实现它们的同步关系。
答:
方法一:
从临界资源的角度来思考:
本题中有两类临界资源:
第一类是计算进程争用的空闲缓冲区,初始状态下有一个空闲缓冲可供使用,设置信号量empty,初值为1;
第二类是打印进程争用的已放入缓冲区中的打印结果,初始状态下缓冲区中无结果可打印,设置信号量full,初值为0。
varfull,empty:
semaphore:
=0,1;
begin
parbegin
cp:
repeat
computernextnumber;
wait(empty);
addthenumbertobuffer;
signal(full);
untilfalse
end
pp:
wait(full);
takeanumberfrombuffer;
signal(empty);
printthenumber;
parend
end
2、试用信号量解决读者—写者问题,使得写者与读者优先级根据到达顺序确定(读写平等)。
然后用到达序列:
R1,R2,W1,R3,R4,W2进行测试
列出类似如下测试结果
进程
行为
rmutex=1
wmutex=1
Readcount=0
状态
备注
R1
到达
rmutex=0
wmutex=0
Readcount=1
执行/就绪
第1位读者
1)典型错误代码讲解:
不增加任何信号量
Varrmutex,wmutex:
semaphore∶=1,1;
Readcount:
integer∶=0;
begin
parbegin
Reader:
begin
repeat
wait(rmutex);
ifReadcount=0thenwait(wmutex);
Readcount∶=Readcount+1;
signal(rmutex);
…
performreadoperation;
Readcount∶=Readcount-1;
ifReadcount=0thensignal(wmutex);
untilfalse;
end
writer:
ifreadcount>
0thenwait(rumtex);
wait(wmutex);
performwriteoperation;
signal(wmutex);
parend
到达序列:
R1,R2,W1,R3,R4,W2
R2
Readcount=2
W1
阻塞1
阻塞
Readcount>
R3
R4
阻塞2
W2
阻塞3
离开
阻塞4
阻塞5
产生死锁
2)解决方案
varS,rmutex,wmutex:
=1,1,1;
readcount:
integer:
=0;
reader:
begin
wait(S);
ifreadcount=0thenwait(wmutex);
=readcount+1;
signal(S);
=readcount-1;
ifreadcount=0thensignal(wmutex);
S=1
readcount=0
S=0
readcount=1
第一个读者
readcount=2
第一个写者
负责唤醒W1
被唤醒
负责唤醒R3
3、请给出一个写者优先的“读者—写者”问题的算法描述。
为使写者优先,可在原来的读优先算法基础上增加一个初值为1的信号量S,使得当至少有一个写者准备访问共享对象时,它可使后续的读者进程等待写完成。
初值为0的整型变量writecount用来对写者进行计数;
初值为1的互斥信号量mutex用来实现多个写者对writecount的互斥访问。
读者与写者进程算法描述如下:
varS,mutex,rmutex,wmutex:
=1,1,1,1;
writecount,readcount:
=0,0;
wait(mutex);
ifwritecount=0thenwait(S);
writecount:
=writecount+1;
signal(mutex);
=writecount-1;
ifwritecount=0thensignal(S);
mutex=1
writecount=0
mutex=0
writecount=1
writecount=2
负责唤醒W2
3、假设一个系统中有4个进程,它们的到达时间和服务时间如表所示,忽略I/O以及其他开销时间,若分别按先来先服务(FCFS)、非抢占及抢占的短进程优先(SPF)、高响应比优先(HRRN)、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 青岛 理工大学 操作系统 作业 答案