操作系统综合题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
38.有五个计算型的进程P1、P2、P3、P4、P5依次紧接着进入就绪队列,它们的优先级和需
约定当所有进程均进入就绪队列后才开始调度,且忽略进程进入就绪队列和进行调度所花费的时间。
要求:(1)写出采用“先来先服务调度算法”的进程调度次序及进程平均等待时间。
进程平均等待时间:
(0+8+9+16+18)/5=10.2 分钟
(2)写出采用“最高优先级调度算法”的进程调度次序及进程平均等待时间。
进程平均等待时间:(0+22+10+8+17)/5=11.4分钟
40.假设一个磁盘组有100个柱面,编号为0—99,
每个柱面有32个磁道,编号为0-31,每个盘面有
16个扇区,编号为0-15。现采用位示图方法管理磁
盘空间,令磁盘块号按柱
面顺序和盘面顺序编排。请回答下列问题:
(1)若采用32位的字组成位示图,共需要多少个字?
(16x32x100)/32=1600个字
(2)第40字的第18位对应于哪个柱面、哪个读写磁头和哪个扇区?
1、块号=40*32+18=1298
2、柱面上的块数=16*32=512、
3、柱面号=[块号/柱面上的块数]=[1298/512]=2
4、磁头号=[(块号 mod 柱面上的块数)/盘面
上的扇区数]= [(1298 mod 512)/ 16] =[274/16]=17 5、扇区号=[(块号 mod 柱面上的块数)mod盘面上的扇区数]= (1298 mod 512)/ mod 16=274mod16=2 41.假定有一个可存放50封信的公共信箱,现要用PV 操作的管理方式来实现进程间通信。
请回答:
(1)该问题能用解决生产者/消费者问题的方
法来实现吗?
可以
(2)写出用PV操作管理时应定义的变量和信号量及其含义;
SP,SG为信号量;
SP:为信箱是否满信号量,SG:信箱是否为空
信号量;
MBox:为公共信箱共享变量。
(3)写出发送进程和接收进程的程序
(发送进程和接收进程名自定)。
Begin
S:semaphore;
SP=50;SG=0;
MBox:array[0..49] of messge;
Var i:integer;信箱信件的下标;
i=0;
Cobegin
Process send(M:messge)
Begin
L1: 检查信箱
P(SP);
MBox [i]=M;
i++;
V(SG)
End
Process sreceive(M:messge)
Var i:integer;
Begin
L2:检查信箱
P(SG);
M = MBox [i];
i--;
V(SP)
End
39.(10分)在一个采用页式虚拟存
储管理的系统中,有一用户作业,它依
次要访问的字地址序列是:115,228,120,88,446,102,321,432,260,167,若该作业的第0页已经装入主存,现分配给该作业的主存共300字,页的
大小为100字,请回答下列问题:
(1)按FIFO调度算法将产生次缺页中断,依次淘汰的页号为,缺页中断率为。
1)按FIFO调度算法将产生5次缺页中断;
依次淘汰的页号为:0,1,2;
缺页中断率为:5/10=50%
(2)按LRU调度算法将产生次缺页中
断,依次淘汰的页号为,缺页中断
率为。
(3)按LRU调度算法将产生6次缺页中断;
依次淘汰的页号为:2,0,1,3;
缺页中断率为:6/10=60%
40.(8分)若干个等待访问磁盘者依次要
访问的柱面为20,44,40,4,80,
12,76,假设每移动一个柱面需要3
毫秒时间,移动臂当前位于40号柱面,
请按下列算法分别计算为完成上述各次
访问总共花费的寻找时间。
(1)先来先服务算法;
(1)3毫秒×292=876毫秒
(2)最短寻找时间优先算法。
(2)3毫秒×120=360毫秒
41.(8分)某系统中有10台打印机,有
三个进程P1,P2,P3分别需要8台,7台和
4台。若P1,P2,P3已申请到4台,2台和2 台。试问:按银行家算法能安全分配吗?请说
明分配过程。
系统能为进程P3分配二台打印机。因为尽管此时10
台打印机已分配给进程P1 4台,P22台和P34台,
全部分配完,但P3已分配到所需要的全部4台打印机,它不会对打印机再提出申请,所以它能顺利运
行下去,能释放占用的4台打印机,使进程P1,
P2均可能获得乘余的要求4台和5台,按银行家算
法是安全的。
42.(10分)用PV操作解决读者写者问题
的正确程序如下:
begin S, Sr: Semaphore; rc: integer;
S:=1; Sr:=1; rc:=0;
cobegin PROCESS Reader i ( i=1,2…) begin P(Sr)
rc:=rc+1;
if rc=1 then P(S);
V(Sr);
read file;
P(Sr);
rc:=rc-1