操作系统课后答案1文档格式.docx
《操作系统课后答案1文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统课后答案1文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
C23=10ms
C33=20ms
试画出按多道运行的时间关系图(忽略调度执行时间)。
完成三道程序共花多少时间?
比单道运行节省了多少时间?
若处理器调度程序每次进行程序转换化时1ms,试画出各程序状态转换的时间关系图。
1)
忽略调度执行时间,多道运行方式(抢占式):
时间0378101213141719单位10ms
I/OI12I22I32
CPUC11C21C13C21C31C23C33
抢占式共用去190ms,单道完成需要260ms,节省70ms。
忽略调度执行时间,多道运行方式(非抢占式):
时间0379101213141618单位10ms
CPUC11C21C13C31C23C33
非抢占式共用去180ms,单道完成需要260ms,节省80ms。
2)
调度执行时间1ms,多道运行方式(抢占式):
时间0303132717273748485105107127136137147177178198单位1ms
OS
调度执行时间1ms,多道运行方式(非抢占式):
时间03031327172939495105106124125127129139168169189单位1ms
CPUC11C21C21C13C31C31C23C33
4在单CPU和两台I/O(I1,I2)设备的多道程序设计环境下,同时投入三个作业运行。
它们的执行轨迹如下:
Job1:
I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)、I2(20ms)
Job2:
I1(20ms)、CPU(20ms)、I2(40ms)
Job3:
CPU(30ms)、I1(20ms)、CPU(10ms)、I1(10ms)
如果CPU、I1和I2都能并行工作,优先级从高到低为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU,但不抢占I1和I2。
试求:
(1)每个作业从投入到完成分别所需的时间。
(2)从投入到完成CPU的利用率。
(3)I/O设备利用率。
画出三个作业并行工作图如下(图中着色部分为作业等待时间):
(1)Job1从投入到运行完成需110ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需110ms。
(2)CPU空闲时间段为:
60ms至70ms,80ms至90ms,100ms至110ms。
所以CPU利用率为(110-30)/110=72.7%。
(3)设备I1空闲时间段为:
20ms至40ms,90ms至100ms,故I1的利用率为(110-30)/110=72.7%。
设备I2空闲时间段为:
30ms至50ms,故I2的利用率为(110-20)/110=81.8%。
5在单CPU和两台I/O(I1,I2)设备的多道程序设计环境下,同时投入三个作业运行。
I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)
CPU(30ms)、I1(20ms)
如果CPU、I1和I2都能并行工作,优先级从高到低为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU。
(2)每个作业投入到完成CPU的利用率。
(1)Job1从投入到运行完成需80ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需90ms。
60ms至70ms,80ms至90ms。
所以CPU利用率为(90-20)/90=77.78%。
20ms至40ms,故I1的利用率为(90-20)/90=77.78%。
30ms至50ms,故I2的利用率为(90-20)/90=77.78%。
6若内存中有3道程序A、B、C,它们按A、B、C优先次序运行。
各程序的计算轨迹为:
A:
计算(20)、I/O(30)、计算(10)
B:
计算(40)、I/O(20)、计算(10)
C:
计算(10)、I/O(30)、计算(20)
如果三道程序都使用相同设备进行I/O(即程序用串行方式使用设备,调度开销忽略不计)。
试分别画出单道和多道运行的时间关系图。
两种情况下,CPU的平均利用率各为多少?
分别画出单道和多道运行的时间图
(1)单道运行时间关系图
单道总运行时间为190ms。
CPU利用率为(190-80)/190=57.9%
多道总运行时间为140ms。
CPU利用率为(140-30)/140=78.6%
7若内存中有3道程序A、B、C,优先级从高到低为A、B和C,它们单独运行时的CPU和I/O占用时间为:
程序A:
60203010402020(ms)
I/O2CPUI/O1CPUI/O1CPUI/O1
程序B:
3040703030(ms)
I/O1CPUI/O2CPUI/O2
程序C:
40603070(ms)
CPUI/O1CPUI/O2
如果三道程序同时并发执行,调度开销忽略不计,但优先级高的程序可中断优先级低的程序,优先级与I/O设备无关。
试画出多道运行的时间关系图,并问最早与最迟结束的程序是哪个?
每道程序执行到结束分别用了多少时间?
计算三个程序全部运算结束时的CPU利用率?
画出三个作业并发执行的时间图:
(1)最早结束的程序为B,最后结束的程序为C。
(2)程序A为250ms。
程序B为220ms。
程序C为310ms。
(3)CPU利用率为(310-120)/310=61.3%
8有两个程序,A程序按顺序使用:
(CPU)10秒、(设备甲)5秒、(CPU)5秒、(设备乙)10秒、(CPU)10秒。
B程序按顺序使用:
(设备甲)10秒、(CPU)10秒、(设备乙)5秒、(CPU)5秒、(设备乙)10秒。
在顺序环境下先执行A,再执行B,求出总的CPU利用率为多少?
程序A执行了40秒,其中CPU用了25秒。
程序B执行了40秒,其中CPU用了15秒。
两个程序共用了80秒,CPU化了40秒。
故CPU利用率为40/80=50%。
9在某计算机系统中,时钟中断处理程序每次执行的时间为2ms(包括进程切换开销)。
若时钟中断频率为60HZ,试问CPU用于时钟中断处理的时间比率为多少?
因时钟中断频率为60HZ,所以,时钟周期为:
1/60s=50/3ms。
在每个时钟周期中,CPU花2ms执行中断任务。
所以,CPU用于时钟中断处理的时间比率为:
2(50/3)=6/50=12%。
CH2应用题参考答案
1下列指令中哪些只能在核心态运行?
(1)读时钟日期;
(2)访管指令;
(3)设时钟日期;
(4)加载PSW;
(5)置特殊寄存器;
(6)改变存储器映象图;
(7)启动I/O指令。
(3),(4),(5),(6),(7)。
2假设有一种低级调度算法是让“最近使用处理器较少的进程”运行,试解释这种算法对“I/O繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。
因为I/O繁忙型作业忙于I/O,所以它CPU用得少,按调度策略能优先执行。
同样原因一个进程等待CPU足够久时,由于它是“最近使用处理器较少的进程”,就能被优先调度,故不会饥饿。
3并发进程之间有什么样的相互制约关系?
下列日常生活中的活动是属哪种制约关系:
(1)踢足球,
(2)吃自助餐,(3)图书馆借书,(4)电视机生产流水线工序。
并发进程之间的基本相互制约关系有互斥和同步两种。
其中
(1)、(3)为互斥问题。
(2)、(4)为同步问题。
4在按动态优先数调度进程的系统中,每个进程的优先数需定时重新计算。
在处理器不断地在进程之间交替的情况下,重新计算进程优先数的时间从何而来?
许多操作系统重新计算进程的优先数在时钟中断处理例程中进行,由于中断是随机的,碰到哪个进程,就插入哪个进程中运行处理程序,并把处理时间记在这个进程的账上。
5若后备作业队列中等待运行的同时有三个作业J1、J2、J3,已知它们各自的运行时间为a、b、c,且满足a<
b<
c,试证明采用短作业优先算法调度能获得最小平均作业周转时间。
采用短作业优先算法调度时,三个作业的总周转时间为:
T1=a+(a+b)+(a+b+c)=3a+2b+c①
若不按短作业优先算法调度,不失一般性,设调度次序为:
J2、J1、J3。
则三个作业的总周转时间为:
T2=b+(b+a)+(b+a+c)=3b+2a+c②
令②-①式得到:
T2-T1=b-a>
可见,采用短作业优先算法调度才能获得最小平均作业周转时间。
6若有一组作业J1,…,Jn,其执行时间依次为S1,…,Sn。
如果这些作业同时到达系统,并在一台单CPU处理器上按单道方式执行。
试找出一种作业调度算法,使得平均作业周转时间最短。
首先,对n个作业按执行时间从小到大重新进行排序,则对n个作业:
J1’,…,Jn’,它们的运行时间满足:
S1’≤S2’≤…≤S(n-1)’≤Sn’。
那么有:
T=[S1’+(S1’+S2’)+(S1’+S2’+S3’)+…+(S1’+S2’+S3’+…+Sn’)]/n
=[n×
S1’+(n-1)×
S2’+(n-3)×
S3’]+…+Sn’]]/n
=(S1’+S2’+S3’+…+Sn’)-[0×
S1’+1×
S2’+2×
S3’+…+(n-1)Sn’]/n
由于任何调度方式下,S1’+S2’+S3’+…+Sn’为一个确定的数,而当S1’≤S2’≤…≤S(n-1)’≤Sn’时才有:
0×
S3’+…+(n-1)Sn’的值最大,也就是说,此时T值最小。
所以,按短作业优先调度算法调度时,使得平均作业周转时间最短。
7假定执行表中所列作业,作业号即为到达顺序,依次在时刻0按次序1、2、3、4、5进入单处理器系统。
1)分别用先来先服务调度算法、时间片轮转算法、短作业优先算法及非强占优先权调度算法算出各作业的执行先后次序(注意优先权高的数值小);
2)计算每种情况下作业的平均周转时间和平均带权周转时间。
作业号
执行时间
优先权
1
2
3
4
5
10
(1)采用FCFS算法调度作业,运作情况:
(2)采用RR算法调度作业,若令时间片长=1,各作业执行情况为:
1、2、3、4、5、1、3、5、1、5、1、5、1、5、1、1、1、1、1。
(3)采用SJF算法调度作业,运作情况:
(4)
采用非剥夺优先权算法调度作业,运作情况:
8对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T。
一次进程切换的系统开销时间为S。
若采用时间片长度为Q的时向片轮转法,对下列各种情况算出CPU利用率。
1)Q=∞2)Q>T3)S<Q<T4=Q=S5=Q接近于0
1)Q=∞CPU利用率=T/(T+S)
2)Q>
TCPU利用率=T/(T+S)
3)T>
Q>
SCPU利用率=Q/(Q+S)
4)Q=SCPU利用率=50%
5)Q→0CPU利用率→0
9有5个待运行的作业,各自预计运行时间分别是:
9、6、3、5和x,采用哪种运行次序使得平均响应时间最短?
按照最短作业优先的算法可以使平均响应时间最短。
X取值不定,按照以下情况讨论:
1)x≤3次序为:
x,3,5,6,9
2)3<
x≤5次序为:
3,x,5,6,9
3)5<
x≤6次序为:
3,5,x,6,9
4)6<
x≤9次序为:
3,5,6,x,9
5)9<
x次序为:
3,5,6,9,x
10有5个批处理作业A到E均已到达计算中心,其运行时间分别2、4、6、8和10分钟;
各自的优先级分别被规定为1、2、3、4和5,这里5为最高级。
对于1)时间片轮转算法、2)优先数法、3)短作业优先算法、4)先来先服务调度算法(按到达次序C、D、B、E、A),在忽略进程切换时间的前提下,计算出平均作业周转时间。
(对1)每个作业获得相同的2分钟长的时间片;
对2)到4)采用单道运行,直到结束。
)
(1)FCFS调度算法
(2)优先级调度算法
(3)时间片轮转法
按次序ABCDEBCDECDEDEE轮转执行。
(4)SJF调度算法
11有5个批处理作业A到E均已到达计算中心,其运行时间分别10、6、2、4和8分钟;
各自的优先级分别被规定为3、5、2、1和4,这里5为最高级。
若不考虑系统切换开销,计算出平均作业周转时间。
(1)FCFS(按A、B、C、D、E);
(2)优先级调度算法,(3)时间片轮转法(每个作业获得相同的2分钟长的时间片)。
按次序ABCDEABDEABEAEA轮转执行。
12
(1)假定一个处理器正在执行两道作业,一道以计算为主,另一道以输入输出为主,你将怎样赋予它们占有处理器的优先级?
为什么?
(2)假定一个处理器正在执行三道作业,一道以计算为主,第二道以输入输出为主,第三道为计算与输入输出均匀。
应该如何赋予它们占有处理器的优先级使得系统效率较高?
处理器调度算法会考虑以下因素:
作业响应时间要求;
让CPU尽量和外围设备并行工作;
限制一个计算进程长时间霸占处理器。
因而,
(1)I/O为主作业优先级高。
(2)输入输出为主作业优先级最高,输入输出均匀的作业其次,而计算为主作业的优先级最低。
13请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息?
请描述用硬件完成进程切换的工作过程。
该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的PCB的指针。
当系统中发生了一个事件,如I/O结束事件,CPU便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB中保护起来,然后,CPU转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作。
14单道批处理系统中,下列三个作业采用先来先服务调度算法和最高响应比优先算法进行调度,哪一种算法性能较好?
请完成下表:
作业
提交时间
运行时间
开始
时间
完成
周转
带权周
转时间
10∶00
10∶10
10∶25
2∶00
1∶00
0∶25
平均作业周转时间=
平均作业带权周转时间W=
FIFO
10:
00
12:
13:
25
2:
50
120/120
145/60
180/25
平均作业周转时间=2.61
平均作业带权周转时间W=3.54
HRRF
3:
15
195/60
120/25
平均作业周转时间=2.41
平均作业带权周转时间W=3.02
可见HRRF比FIFO要好。
15若有如表所示四个作业进入系统,分别计算在FCFS、SJF和HRRF算法下的平均周转时间与带权平均周转时间。
(时间以十进制表示)
FCFSSJFHRRF
作业开始完成周转开始完成周转开始完成周转
时间时间时间时间时间时间时间时间时间
18.0010.002.008.0010.002.008.0010.002.00
210.0010.502.0010.3010.802.3010.1010.602.10
310.5010.601.6010.0010.101.1010.0010.101.10
410.6010.801.3010.1010.300.8010.6010.801.30
平均周T=1.725T=1.55T=1.625
转时间=
带权平均W=6.875W=5.15W=5.675
周转时间=
16Kleinrock提出一种动态优先权算法:
进程在就绪队列等待时,其优先权以速率α变化;
当进程在处理器上运行,时其优先权以速率β变化。
给参数α、β赋以不同值可得到不同算法。
(1)若α>
β>
0是什么算法?
(2)若α<
β<
0是什么算法
(1)是先进先出算法。
因为在就绪队列中的进程比在CPU上运行的进程的优先数提高得快,故进程切换时,先进入就绪队列的进程优先权就越高。
(2)是后进先出算法。
因为在就绪队列中的进程比在CPU上运行的进程的优先权下降得快,故后进入就绪队列的进程此先进入的进程的优先权高。
1717有一个四道作业的操作系统,若在一段时间内先后到达6个作业,它们的提交和估计运行时间由下表给出:
系统采用SJF调度算法,作业被调度进入系统后中途不会退出,但作业运行时可被更短作业抢占。
(1)分别给出6个作业的执行时间序列、即开始执行时间、作业完成时间、作业周转时间。
(2)计算平均作业周转时间。
注意,J1被调度运行后,直到它执行结束,才会引出作业调度程序工作。
所以,J2至J6虽在J1执行期间进入,但未被调度,均在等待。
当J1撤离后,作业调度程序工作,按SJF算法,显然有执行次序:
J5、J6、J3、J4、和J2。
18有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。
(1)列出所有作业进入内存时间及结束时间。
(2)计算平均周转时间。
每个作业运行将经过两个阶段:
作业调度(SJF算法)和进程调度(优先数抢占式)。
另外,批处理最多容纳2道作业,更多的作业将在后备队列等待。
CPU
(1)10:
00,作业A到达并投入运行。
(2)10:
20,作业B到达且优先权高于作业A,故作业B投入运行而作业A在就绪队列等待。
(3)10:
30,作业C到达,因内存中已有两道作业,故作业C进入作业后备队列等待。
(4)10:
50,作业B运行结束,作业D到达,按SJF短作业优先算法,作业D被装入内存进入就绪队列。
而由于作业A的优先级高于作业D,故作业A投入运行。
(5)11:
10,作业A运行结束,作业C被调入内存,且作业C的优先级高于作业D,故作业C投入运行。
(6)12:
00,作业C运行结束,作业D投入运行。
(7)12:
20,作业D运行结束。
各作业周转时间为:
作业A70,作业B30,作业C90,作业D90。
平均作业周转时间为70分钟。
19某多道程序设计系统供用户使用的主存为100K,磁带机2台,打印机1台。
采用可变分区内存管理,采用静态方式分配外围设备,忽略用户作业I/O时间。
现有作业序列如下:
作业号进入输入井时间运行时间主存需求量磁带需求打印机需求
18:
0025分钟15K11
28:
2010分钟30K01
38:
2020分钟60K10
48:
3020分钟20K10
58:
3515分钟10K11
作业调度采用FCFS策略,优先分配主存低地址区且不准移动已在主存的作业,在主存中的各作业平分CPU时间。
现求:
(1)作业被调度的先后次序?
(2)全部作业运行结束的时间?
(3)作业平均周转时间为多少?
(4)最大作业周转时间为多少?
(1)作业调度选择的作业次序为:
作业1、作业3、作业4、作业2和作业5。
(2)全部作业运行结束的时间9:
30。
(3)周转时间:
作业1为30分钟、作业2为55分钟、作业3为40分钟、作业4为40分钟和作业5为55分钟。
(4)平均作业周转时间=44分钟。
(5))最大作业周转时间为55分钟。
20某多道程序设计系统采用可变分区内存管理,供用户使用的主存为200K,磁带机5台。
采用静态方式分配外围设备,且不能移动在主存中的作业,忽略用户作业I/O时间。
作业号进入输入井时间运行时间主存需求量磁带需求A8:
30