里移动。要求图示采用循环扫描策略磁盘调度算法实现上述请求的过程。并计算完成上述过程磁头移动的总道数。
参照教材P226图10.15。
循环扫描: 65 67 98 122 124 183 14 37 移动的总道数: 12+2+31+24+2+59+169+23=322
六、 综合题
1. 下面是利用信号量机制来管理接收/打印机制中字符和缓冲区的伪代码程序。
A) 请根据程序上下文关系,来补全中括号位置的语句内容。 B) 如果缓冲区大小变为10,这时伪语言源代码需要如何改变? Program producer-consumer /*程序:生产者-消费者*/ /*定义缓冲区B,信号量Sp、Se 其中Sp、控制字符资源同步,Se控制空间资源同步*/ Int B; Semaphore__[1]_______,__[2]_______; /*初始时系统内字符数为0,缓冲区空间为1*/ Void Producer() /*定义生产者进程(接收进程)*/ { While (ture) /*永远循环*/ {receive(C); /*接收字符并放在变量C中*/ __[3]_______; /*申请缓冲区空间,有就向下执行,无就阻塞等待*/ B=:C; /*赋值语句,将收到的字符放入缓冲区B中*/ __[4]_______; /*释放出一个字符。并检查是否有进程等待该字符*/ } } /*生产者进程结束*/ Void consumer() /*定义消费者进程(打印进程)*/ { While (ture) /*永远循环*/ {_[5]______; /*申请字符打印,有就向下执行,无就阻塞等待*/ Print(B); /*打印缓冲区B中字符*/ __[6]______; /*释放出一个空间资源。并检查是否有进程等待空间*/ } } /*消费者进程结束*/ Void main() /*主程序*/ { Parbegin ( Producer(), Consumer()); /*并行启动进程,使其由操作系统进行自由调度*/ 《2018春季操作系统综合复习题》 第 6 页,共10页
2. 某系统中有三类资源M1,M2,M3,其资源总数分别为10,5,8。系统中有四个进程P1,P2,P3,p4,它们分
别已得到的资源数如下表A, 它们还需要的资源数如下表B。试问, 按银行家算法能否安全分配?并说明分配过程。 P1 P2 P3
M1 2 3 1 M2 1 0 0 M3 0 2 2
P1 P2 P3 M1 2 1 3 M2 4 2 1 M3 1 3 2 《2018春季操作系统综合复习题》 第 7 页,共10页
P4 1
2 2
P4 4
1 5 表A:资源分配情况 表B:各进程还需要的资源数
3. 下面是利用信号量机制来管理接收/打印机制中字符和缓冲区的伪代码程序. 请根据程序上下文关系,来补全相关语句的说明行. Program producer-consumer /*程序:生产者-消费者*/ Int B; Semaphore Sp、=0, Se=1; /* (1) */ Void Producer() /*定义生产者进程(接收进程)*/ { While (ture) /*永远循环*/ {receive(C); /*接收字符并放在变量C中*/ Wait(Se); /* (2) */ B=:C; /*赋值语句,将收到的字符放入缓冲区B中*/ Signal(Sp); /* (3) */ } } /*生产者进程结束*/ Void consumer() /*定义消费者进程(打印进程)*/ { While (ture) /*永远循环*/ {Wait(Sp); /* (4) */ Print(B); /*打印缓冲区B中字符*/ Signal(Se); /* (5) */ } } /*消费者进程结束*/ Void main() /*主程序*/ { Parbegin ( Producer(), Consumer()); /* (6) */ 4. 现在有一个作业,分配到3个页架,运行时依此访问的页号为7,0,1,2,0,3,0,4,2,3。要求采用最近
未使用的页面调度方法,图示调度过程,并说明产生了几次缺页中断(页架空闲初次装入时,不计入缺页次数) (10分)
进程的请求序列
7 0 1 2 0 3 0 4 2 3 《2018春季操作系统综合复习题》 第 8 页,共10页
最新使用的页 最老使用的页 缺页标志 有六次缺页中断 7 0 1 2 2 3 0 4 2 3 7 0 1 1 2 3 0 4 2 7 0 0 1 2 3 0 4 + + + + + + 5. 假定有三个进程R、W1、W2共享一个缓冲器B,B中每次只能存放一个数。进程R每次启动输入设备读一个
数且把它存放到缓冲器B中。若存放到缓冲器中的是奇数,则由进程W1将其取出打印;若存放到缓冲器中的是偶数,则由进程W2将其取出打印。同时规定进程R仅当缓冲器中无数或缓冲器中的数已被取出打印后才能再存放一个数;进程W1和W2对存入缓冲器的不能重复打印,也不能从空的缓冲器中取数。要求使用同步机制管理这三个并发进程,使它们能正确地同步工作。 begin
B:integer;
S,SO,SE:(1) ;
S:=(2);SO:=0;SE:=0; cobegin
PROCESS R x:integer; begin
L1:|从输入设备读一个数|; x:=读入的数; (3) ; B:=x;
if B=奇数 then Signal(SO); else (4) ; goto L1 end;
PROCESS W1 y:integer; begin
L2:Wait(SO); y:=B; (5) ;
|打印y中的数|; goto L2 end;
PROCESS W2 z:integer; begin
L3:(6) ; z:=B;
Signal(S); |打印y中的数|; goto L3 end; coend; end;
《2018春季操作系统综合复习题》
第 9 页,共10页
请补充上适当的内容: (1) ;(2) ; (3) ;(4) ;
(5) ;(6) ;
并且请分别说明三个信号量 S、SO和SE的作用。
《2018春季操作系统综合复习题》 第 10 页,共10页