操作系统练习答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习
1、在下列调度算法中,对所有进程和作业都是公平合理的调度算法是(D多级反馈队列),最有利于提高系统吞吐量的作业调度算法是(B短作业优先),能兼顾作业等待时间和作业执行时间的调度算法是(E高响应比优先),最有利于提高资源的利用率,使大部分用户比较满意的调度算法是(C时间片轮转),为实现人机交互而采用的调度算法,能对紧急作业进行及时处理的调度算法是(F可抢占式优先级)。
A.先来先服务B.短作业优先C.时间片轮转
D.多级反馈队列E.高响应比优先F.可抢占式优先级调度
试用剥夺式短进程优先调度算法和时间片轮转调度(时间片为2个基本时间单位),分别给出每个进程的调度次序及平均周转时间。
3、有5个批处理作业1、2、3、
4、5,分别在0、1、3、
5、6时刻到达计算中心。假设它们的预计的运行时间是3、5、2、3、2,且在执行过程中不进行I/O处理和系统调用。它们的优先级分别为5、3、1、2、6(6为最高优先级,1为最低优先级)对于下面的四种调度算法,请写出每个进程的结束时间、周转时间和所有作业的平均周转时间。忽略进程转换所产生的系统开销,且后三种调度算法为非剥夺的调度算法。
(1)时间片轮转调度算法,时间片长度为2;
(2)优先级调度算法;
(3)FCFS算法;
(4)SJF算法。
4、有5个批处理作业A、B、C、D、E,几乎同时到达计算机系统,其估计运行时间分别为10、6、2、4、8分,优先级数分别为3、
5、2、1、4,其中5为最高优先级。假设它们都是纯计算型作业,系统开销时间忽略不记。若系统采用非剥夺式使用CPU,对于以下调度算法,描述执行过程并计算平均周转时间:
(1)优先级调度;
(2)先来先服务(按A、B、C、D、E顺序);
(3)短作业优先。
5、有两个作业A和B,分别在7:00和8:30到达系统,它们估计的计算时间分别是0.8小时和0.1小时,系统在9:00开始以响应比高者优先算法进行调度,请问在单道执行时这两道作业被选中的次序以及被选中时的响应比。
(2+0.8)/0.8=3.5
(0.5+0.1)/0.1=6
9:00 B
9:06 A (2.1+0.8)/0.8=3.625
6、设有某系统有5个作业J1、J2、J3、J4、J5进入系统的时间、计算时间如下表所示。若作业在处理机上按单道方式运行,且作业按响应比高者优先调度算法。试写出作业的执行顺
J2 (29+30)/30=1.97
J3 (18+24)/24=1.75
J4 (12+24)/24=1.50
J5 (6+12)/12=1.50
11:18
J3 (48+24)/24=3
J4 (42+24)/24=2.75 J5 (36+12)/12=4 11:30
J3 (60+24)/24=3.5 J4 (54+24)/24=3.25 11:54
J4
1、在请求页式系统中,一程序的页面走向为
2、
3、
4、
5、2、3、
6、2、3、4、5、6,设分配给该程序的存储块为m。试计算m=3和m=4时,FIFO和LRU两种替换算法的缺页中断次数,并对结果进行分析说明。
答:FIFO算法:
M=3时,缺页9次,M=4时,缺页10次。这说明FIFO算法出现了Belady异常现象。
M=3时,缺页10次,M=4时,缺页8次。
2、在一个请求页式存储管理系统中,进程P的地址空间共有5页组成,访问页面序列为:
3、2、1、0、3、2、
4、3、2、1、0、4,试用FIFO置换算法和LRU置换算法,计算当分配给该进程的页框数分别为3和4时,访问过程中发生的缺页次数和缺页率,比较所得的结果,分析原因。
答:FIFO算法:
算法出现了Belady异常现象。
LRU算法:
M=3时,缺页10次,缺页率为83.3%;M=4时,缺页8次,缺页率为66.7%。
3、在一个采用页式虚拟存储管理的系统中,有一用户作业,它依次要访问的字地址序列是:115、228、120、88、446、102、321、432、260、167。若该作业的第0页已经装入内存,现分配给该作业的主存共300字,页的大小为100字,请回答下列问题。
(1)按FIFO调度算法将产生多少次缺页中断?缺页中断率为多少?
(2)按LRU调度算法将产生多少次缺页中断?缺页中断率为多少?
答:定义数组buf[0]、buf[1];bufempty[0],bufempty[1]是P A的私有信号量;buffull[0]、buffull[1]是P B的私有信号量。
初始时:
bufempty[0]=bufempty[1]=n,(n为缓冲区队列的缓冲区个数)
buffull[0]=buffull[1]=0
send(i,m)
begin
local x
P(bufempty[i])
按FIFO方式选择一个空缓冲区buf[i](x)
buf[i](x)=m
buf[i](x)置满标记
V(buffull[i])
end
receive(i,m)
begin
local x
P(buffull[i])
按FIFO方式选择一个装满数据的缓冲区buf[i](x)
m=buf[i](x)
buf[i](x)置空标记
V(bufempty[i])
end
P A调用send(0,m)和receive(1,m)
P B调用send(1,m)和receive(0,m)
练习2:
有3个并发进程in, outA和outB共享一个缓冲区buf(容量为1)。规定:
进程in负责将读入数据放到buf中。
进程outA仅当在buf中有数据且数据为奇数时,outA才可从buf取数据打印,并使buf为空;进程outB仅当在buf中有数据且数据为偶数时,outB才可从buf取数据打印,并使buf为空;试用P,V操作实现三个进程可正确执行的并发程序。
提示:这是一个同步问题,可以设3个私用信号量。
答:根据题意,设三个同步信号量:
SR是进程in的私用信号量,初值为1,表示开始时进程in可向缓冲区buf中送一整数;SW1是进程outA的私用信号量,初值为0,表示开始时缓冲区buf中无奇数可供进程outA 取;
SW2是进程outB的私用信号量,初值为0,表示开始时缓冲区buf中无偶数可供进程outA 取。