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分钟长的时间片)。
答:
(1)FCFS调度算法
(2)优先级调度算法
(3)时间片轮转法
按次序ABCDEABDEABEAEA轮转执行。
12
(1)假定一个处理器正在执行两道作业,一道以计算为主,另一道以输入输出为主,你将怎样赋予它们占有处理器的优先级?
为什么?
(2)假定一个处理器正在执行三道作业,一道以计算为主,第二道以输入输出为主,第三道为计算与输入输出均匀。
应该如何赋予它们占有处理器的优先级使得系统效率较高?
答:
处理器调度算法会考虑以下因素:
作业响应时间要求;让CPU尽量和外围设备并行工作;限制一个计算进程长时间霸占处理器。
因而,
(1)I/O为主作业优先级高。
(2)输入输出为主作业优先级最高,输入输出均匀的作业其次,而计算为主作业的优先级最低。
13请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息?
请描述用硬件完成进程切换的工作过程。
答:
该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的PCB的指针。
当系统中发生了一个事件,如I/O结束事件,CPU便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB中保护起来,然后,CPU转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作。
14单道批处理系统中,下列三个作业采用先来先服务调度算法和最高响应比优先算法进行调度,哪一种算法性能较好?
请完成下表:
作业
提交时间
运行时间
开始
时间
完成
时间
周转
时间
带权周
转时间
1
2
3
10∶00
10∶10
10∶25
2∶00
1∶00
0∶25
平均作业周转时间=
平均作业带权周转时间W=
答:
FIFO
作业
提交时间
运行时间
开始
时间
完成
时间
周转
时间
带权周
转时间
1
2
3
10∶00
10∶10
10∶25
2∶00
1∶00
0∶25
10:
00
12:
00
13:
00
12:
00
13:
00
13:
25
2
2:
50
3
120/120
145/60
180/25
平均作业周转时间=2.61
平均作业带权周转时间W=3.54
HRRF
作业
提交时间
运行时间
开始
时间
完成
时间
周转
时间
带权周
转时间
1
2
3
10∶00
10∶10
10∶25
2∶00
1∶00
0∶25
10:
00
12:
25
12:
00
12:
00
13:
25
12:
25
2
3:
15
2
120/120
195/60
120/25
平均作业周转时间=2.41
平均作业带权周转时间W=3.02
可见HRRF比FIFO要好。
15若有如表所示四个作业进入系统,分别计算在FCFS、SJF和HRRF算法下的平均周转时间与带权平均周转时间。
(时间以十进制表示)
答:
16Kleinrock提出一种动态优先权算法:
进程在就绪队列等待时,其优先权以速率α变化;当进程在处理器上运行,时其优先权以速率β变化。
给参数α、β赋以不同值可得到不同算法。
(1)若α>β>0是什么算法?
(2)若α<β<0是什么算法
答:
(1)是先进先出算法。
因为在就绪队列中的进程比在CPU上运行的进程的优先数提高得快,故进程切换时,先进入就绪队列的进程优先权就越高。
(2)是后进先出算法。
因为在就绪队列中的进程比在CPU上运行的进程的优先权下降得快,故后进入就绪队列的进程此先进入的进程的优先权高。
1717有一个四道作业的操作系统,若在一段时间内先后到达6个作业,它们的提交和估计运行时间由下表给出:
系统采用SJF调度算法,作业被调度进入系统后中途不会退出,但作业运行时可被更短作业抢占。
(1)分别给出6个作业的执行时间序列、即开始执行时间、作业完成时间、作业周转时间。
(2)计算平均作业周转时间。
答:
执行次序提交时间执行时间开始时间完成时间周转时间
J18:
00608:
009:
0060
J58:
3559:
009:
0530
J68:
40109:
059:
1535
J38:
25209:
159:
3570
J48:
30259:
3510:
0090
J28:
203510:
0010:
35135
作业平均周转时间T=(60+30+35+70+90+135)/6=70
注意,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:
3040分钟30K3
B8:
5025分钟120K1
C9:
0035分钟100K2
D9:
0520分钟20K3
E9:
1010分钟60K1
现求:
(1)FIFO算法选中作业执行的次序及作业平均周转时间?
(2)SJF算法选中作业执行的次序及作业平均周转时间?
答:
(1)FIFO算法选中作业执行的次序为:
A、B、D、C和E。
作业平均周转时间为63分钟。
(2)SJF算法选中作业执行的次序为:
A、B、D、E和C。
作业平均周转时间为58分钟。
21上题中,若允许移动已在主存中的作业,其他条件不变,现求:
(1)FIFO算法选中作业执行的次序及作业平均周转时间?
(2)SJF算法选中作业执行的次序及作业平均周转时间?
答:
(1)FIFO算法选中作业执行的次序为:
A、B、D、E和C。
作业平均周转时间为58分钟。
(2)SJF算法选中作业执行的次序为:
A、B、E、D和C。
作业平均周转时间为56分钟。
22设计一个进程定时唤醒队列和定时唤醒处理程序:
(1)说明一个等待唤醒进程入队的过程。
(2)说明时钟中断时,定时唤醒处理程序的处理过程。
(3)现有进程P1要求20秒后运行,经过40秒后再次运行;P2要求25秒后运行;P3要求35秒后运行,经过35秒后再次运行;P4要求60秒后运行。
试建立相应的进程定时唤醒队列。
答:
组织如下的定时唤醒队列。
(1)当一个需定时唤醒的进程要入队时,根据它要唤醒的时间,被扦入队列的适当位置,注意,唤醒时间按增量方式存放。
(2)每当时钟中断时,时钟中断例程判别把队列中的第一个进程的时间量减1,直到该值为时唤醒进程工作。
同时队列中下一个进程成为队列头。
23一个实时系统有4个周期性事件,周期分别为50、100、300和250ms。
若假设其处理分别需要35、20、10和xms,则该系统可调度允许的x值最大为多少?
答:
实时任务可调度应满足:
35/50+20/100+10/300+x/250<1
x<250(1-28/30)=250×0.067=16.75ms