青岛理工大学考研内部资料
第1章 作业
综合题
1、设内存中有三道程序A、B、C,它们按A、B、C的优先次序执行。它们的计算和I/O操作时间如表所示(单位:ms)。
假设三道程序使用相同设备I/O操作,即程序是以串行方式使用设备,调度程序的执行时间忽略不计,试计算出在单道和多道两种情况下,完成这三道程序各要花多少时间?要求画出多道运行的时序图。(假定在多道方式下采用的是基于优先级的非抢占调度程序)
解:采用单道方式运行这三道程序,运行次序为A、B、C,故总的运行时间为:(30+40+10)+(60+30+10)+(20+40+20)=260ms
采用多道方式运行这三道程序,A、B、C这三道进程的运行存在并行,故总的运行时间如图所示为180ms
第二章
1、如图所示,有一计算进程和一打印进程,它们共享一个单缓冲 区,计算进程不断地计算出结果并将它放入单缓冲区中,打印
进程则负责从单缓冲区中取出每一个结果进行打印。请用信号量来实现它们的同步关系。
答:方法一:从临界资源的角度来思考:本题中有两类临界资源:第一类是计算进程争用的
空闲缓冲区,初始状态下有一个空闲缓冲可供使用,设置信号量empty,初值为1;第二类是打印进程争用的已放入缓冲区中的打印结果,初始状态下缓冲区中无结果可打印,设置信号量full,初值为0。 var full, empty: semaphore:=0,1; begin
parbegin cp:begin repeat
computer next number; wait(empty);
add the number to buffer; signal(full);