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答:采用短作业优先算法调度时,三个作业的总周转时间为:
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>0
可见,采用短作业优先算法调度才能获得最小平均作业周转时间。
1
《操作系统教程》(第三版)CH2应用题参考答案
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×S1’+1×S2 ’ +2×S3’ +„+(n-1) Sn’的值最大,也就是说,此时T值最小。所以,按短作业优先调度算法调度时,使得平均作业周转时间最短。 7 假定执行表中所列作业,作业号即为到达顺序,依次在时刻0按次序1、2、3、4、
5进入单处理器系统。
1) 分别用先来先服务调度算法、时间片轮转算法、短作业优先算法及非强占优先权调度算法算出各作业的执行先后次序(注意优先权高的数值小); 2) 计算每种情况下作业的平均周转时间和平均带权周转时间。
作业号 执行时间 优先权 1 2 3 4 5 答:
(1) 采用FCFS算法调度作业,运作情况:
执行次序 执行时间 等待时间 开始时间 完成时间 周转时间 带权周转时间 1 10 0 0 10 10 1 2 1 10 10 11 11 11 3 2 11 11 13 13 6.5 4 1 13 13 14 14 14 5 5 14 14 19 19 3.8 作业平均周转时间 T=(10+11+13+14+19)/5=13.4 作业平均带权周转时间 W=(1+11+6.5+14+3.8)/5=7.26 10 1 2 1 5 3 1 3 4 2
(2) 采用RR算法调度作业,若令时间片长=1,各作业执行情况为:1、2、3、4、5、
1、3、5、1、5、1、5、1、5、1、1、1、1、1。
2
《操作系统教程》(第三版)CH2应用题参考答案
作业 执行时间 提交时间 完成时间 周转时间 带权周转时间
(3) 采用SJF算法调度作业,运作情况:
1 10 0 19 19 1.9 2 1 0 2 2 2 3 2 0 7 7 3.5 4 1 0 4 4 4 5 5 0 14 14 2.8 作业平均周转时间 T=(19+2+7+4+14)/5=9.2 作业平均带权周转时间 W=(1.9+2+3.5+4+2.8)/5=2.84
(4) 采用非剥夺优先权算法调度作业,运作情况:
执行次序 执行时间 等待时间 开始时间 完成时间 周转时间 带权周转时间 2 1 0 0 1 1 1 4 1 1 1 2 2 2 3 2 2 2 4 4 2 5 5 4 4 9 9 1.8 1 10 9 9 19 19 1.9 作业平均周转时间 T=(1+2+4+9+19)/5=7 作业平均带权周转时间 W=(1+2+2+1.8+1.9)/5=1.74 8
执行次序 优先数 执行时间 等待时间 周转时间 带权周转时间 2 1 1 0 1 1 5 2 5 1 6 1.2 1 3 10 6 16 1.6 3 3 2 16 18 9 4 4 1 18 19 19 作业平均周转时间 T=(1+6+16+18+19)/5=12 作业平均带权周转时间 W=(1+1.2+1.6+9+19)/5=6.36 对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T。一次进程切换的系统开销时间为S。若采用时间片长度为Q的时向片轮转法,对下列各种情况算出CPU利用率。
1)Q=∞ 2)Q>T 3)S<Q<T 4=Q=S 5=Q接近于0 答:
1)Q=∞ CPU利用率=T/(T+S) 2)Q>T CPU利用率=T/(T+S)
3
《操作系统教程》(第三版)CH2应用题参考答案
3)T>Q>S CPU利用率=Q/(Q+S)
4) Q=S CPU利用率=50% 5) Q→0 CPU利用率→0
9
有5个待运行的作业,各自预计运行时间分别是:9、6、3、5和x,采用哪种运行次序使得平均响应时间最短?
答:按照最短作业优先的算法可以使平均响应时间最短。X取值不定,按照以下情况讨论:
1) x≤3 次序为:x,3,5,6,9 2) 3 分钟;各自的优先级分别被规定为1、2、3、4和5,这里5为最高级。对于1)时间片轮转算法、2)优先数法、3)短作业优先算法、4)先来先服务调度算法(按到达次序C、D、B、E、A),在忽略进程切换时间的前提下,计算出平均作业周转时间。(对1)每个作业获得相同的2分钟长的时间片;对2)到4)采用单道运行,直到结束。) 答: (1)FCFS调度算法 执行次序 执行时间 等待时间 周转时间 带权周转时间 C 6 0 6 1 D 8 6 14 1.75 B 4 14 18 4.5 E 10 18 28 2.8 A 2 28 30 15 作业平均周转时间 T=(6+14+18+28+30)/5=19.2 作业平均带权周转时间 W=(1+1.75+4.5+2.8+15)/5=5.01 (2)优先级调度算法 执行次序 执行时间 等待时间 周转时间 带权周转时间 E 10 0 10 1 D 8 10 18 2.25 C 6 18 24 4 B 4 24 28 7 A 2 28 30 15 作业平均周转时间 T=(10+18+24+28+30)/5=22 作业平均带权周转时间 W=(1+2.25+4+7+15)/5=5.85 4 《操作系统教程》(第三版)CH2应用题参考答案 (3)时间片轮转法 按次序A B C D E B C D EC D E D E E轮转执行。 作业 执行时间 等待时间 周转时间 带权周转时间 A 2 0 2 1 B 4 8 12 3 C 6 14 20 3.33 D 8 18 26 3.25 E 10 20 30 3 作业平均周转时间 T=(2+12+20+26+30)/5=18 作业平均带权周转时间 W=(1+3+3.33+3.25+3)/5=2.71 (4)SJF调度算法 作业 执行时间 等待时间 周转时间 带权周转时间 A 2 0 2 1 B 4 2 6 1.5 C 6 6 12 2 D 8 12 20 2.5 E 10 20 30 3 作业平均周转时间 T=(2+6+12+20+30)/5=14 作业平均带权周转时间 W=(1+1.5+2+2.5+3)/5=2 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调度算法 执行次序 执行时间 等待时间 周转时间 带权周转时间 A 10 0 10 1 B 6 10 16 2.66 C 2 16 18 9 D 4 18 22 5.5 E 8 22 30 3.75 作业平均周转时间 T=(10+16+18+22+30)/5=19.2 作业平均带权周转时间 W=(1+2.66+9+5.5+3.75)/5=4.38 5 《操作系统教程》(第三版)CH2应用题参考答案 (2)优先级调度算法 执行次序 执行时间 等待时间 周转时间 带权周转时间 B 6 0 6 1 E 8 6 14 1.75 A 10 14 24 2.4 C 2 24 26 13 D 4 26 30 7.5 作业平均周转时间 T=(6+14+24+26+30)/5=20 作业平均带权周转时间 W=(1+1.75+2.4+13+7.5)/5=5.13 (3)时间片轮转法 按次序A B C D E A B D E A B E A E A轮转执行。 作业 执行时间 等待时间 周转时间 带权周转时间 A 10 20 30 3 B 6 16 22 3.66 C 2 4 6 3 D 4 12 16 4 E 8 20 28 3.5 作业平均周转时间 T=(30+22+6+16+28)/5=20.4 作业平均带权周转时间 W=(3+3.66+3+4+3.5)/5=3.43 12 (1)假定一个处理器正在执行两道作业,一道以计算为主,另一道以输入输出为主,你将怎样赋予它们占有处理器的优先级?为什么? (2)假定一个处理器正在执行三道作业,一道以计算为主,第二道以输入输出为主,第三道为计算与输入输出均匀。应该如何赋予它们占有处理器的优先级使得系统效率较高? 答:处理器调度算法会考虑以下因素:作业响应时间要求;让CPU尽量和外围设备并行工作;限制一个计算进程长时间霸占处理器。因而,(1)I/O为主作业优先级高。(2) 输入输出为主作业优先级最高,输入输出均匀的作业其次,而计算为主作业的优先级最低。 13 请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息? 请描述用硬件完成进程切换的工作过程。 答:该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的PCB的指针。当系统中发生了一个事件,如I/O结束事件,CPU便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB中保护起来,然后,CPU转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作。 6 《操作系统教程》(第三版)CH2应用题参考答案 14 单道批处理系统中,下列三个作业采用先来先服务调度算法和最高响应比优先算法进行调度,哪一种算法性能较好?请完成下表: 作业 1 2 3 提交时间 运行时间 开始 时间 完成 时间 周转 时间 带权周 转时间 10∶00 2∶00 10∶10 1∶00 10∶25 0∶25 平均作业周转时间= 平均作业带权周转时间W= 答: FIFO 作业 提交时间 运行时间 开始 时间 10:00 12:00 13:00 完成 时间 12:00 13:00 13:25 周转 时间 2 2:50 3 带权周 转时间 120/120 145/60 180/25 1 10∶00 2∶00 2 10∶10 1∶00 3 10∶25 0∶25 平均作业周转时间=2.61 平均作业带权周转时间W=3.54 HRRF 作业 提交时间 运行时间 开始 时间 10:00 12:25 12:00 完成 时间 12:00 13:25 12:25 周转 时间 2 3:15 2 带权周 转时间 120/120 195/60 120/25 1 10∶00 2∶00 2 10∶10 1∶00 3 10∶25 0∶25 平均作业周转时间=2.41 平均作业带权周转时间W=3.02 可见HRRF比FIFO要好。 15 若有如表所示四个作业进入系统,分别计算在FCFS、SJF和HRRF算法下的平均 周转时间与带权平均周转时间。(时间以十进制表示) 作业 提交时间(时) 估计运行时间(小时) 开始执行时间(时) 1 8.00 2.00 8.00 2 8.50 0.50 7 10.30 3 9.00 0.10 10.00 4 9.50 0.20 10.10 《操作系统教程》(第三版)CH2应用题参考答案 答: FCFS SJF HRRF 作业 开始 完成 周转 开始 完成 周转 开始 完成 周转 时间 时间 时间 时间 时间 时间 时间 时间 时间 1 8.00 10.00 2.00 8.00 10.00 2.00 8.00 10.00 2.00 2 10.00 10.50 2.00 10.30 10.80 2.30 10.10 10.60 2.10 3 10.50 10.60 1.60 10.00 10.10 1.10 10.00 10.10 1.10 4 10.60 10.80 1.30 10.10 10.30 0.80 10.60 10.80 1.30 平均周 T=1.725 T=1.55 T=1.625 转时间= 带权平均 W=6.875 W=5.15 W=5.675 周转时间= 16 Kleinrock提出一种动态优先权算法:进程在就绪队列等待时,其优先权以速率α变化; 当进程在处理器上运行,时其优先权以速率β变化。给参数α、β赋以不同值可得到不同算法。(1)若α>β>0是什么算法?(2) 若α<β<0是什么算法 (1) 是先进先出算法。因为在就绪队列中的进程比在CPU上运行的进程的优先数提高得快,故进程切换时,先进入就绪队列的进程优先权就越高。 是后进先出算法。因为在就绪队列中的进程比在CPU上运行的进程的优先权下降得快,故后进入就绪队列的进程此先进入的进程的优先权高。 答: (2) 17 17 有一个四道作业的操作系统,若在一段时间内先后到达6个作业,它们的提交和估计运行时间由下表给出: 作业 提交时间 估计运行时间(分钟) 1 8:00 60 2 8:20 35 3 8:25 20 4 8:30 25 8 5 8:35 5 6 8:40 10 《操作系统教程》(第三版)CH2应用题参考答案 系统采用SJF调度算法,作业被调度进入系统后中途不会退出,但作业运行时可被更短作业抢占。(1)分别给出6个作业的执行时间序列、即开始执行时间、作业完成时间、作业周转时间。(2)计算平均作业周转时间。 答: 执行次序 提交时间 执行时间 开始时间 完成时间 周转时间 J1 8:00 60 8:00 9:00 60 J5 8:35 5 9:00 9:05 30 J6 8:40 10 9:05 9:15 35 J3 8:25 20 9:15 9:35 70 J4 8:30 25 9:35 10:00 90 J2 8:20 35 10:00 10:35 135 作业平均周转时间T=(60+30+35+70+90+135)/6=70 注意,J1被调度运行后,直到它执行结束,才会引出作业调度程序工作。所以,J2至J6虽在J1执行期间进入,但未被调度,均在等待。当J1撤离后,作业调度程序工作,按SJF算法,显然有执行次序:J5、J6、J3、J4、和J2。 18 有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程 调度采用以优先数为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。 作业名 到达时间 估计运行时间 优先数 A 10:00 40分 5 B 10:20 30分 3 C 10:30 50分 4 D 10:50 20分 6 (1)列出所有作业进入内存时间及结束时间。 (2)计算平均周转时间。 答: 每个作业运行将经过两个阶段:作业调度(SJF算法)和进程调度(优先数抢占式)。另外,批处理最多容纳2道作业,更多的作业将在后备队列等待。 时间(分钟) 10:00 10:20 10:30 10:50 11:10 12:00 12:20 A B A C D 进程就绪队列 9 A D D C 《操作系统教程》(第三版)CH2应用题参考答案 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运行结束。 作业 进入内存时间 运行结束时间 A 10:00 11:10 B 10:20 10;50 C 11:10 12:00 D 10:50 12:20 各作业周转时间为:作业A 70,作业B 30,作业C 90,作业D 90。平均作业周转时间为70分钟。 19 某多道程序设计系统供用户使用的主存为100K,磁带机2台,打印机1台。采用 可变分区内存管理,采用静态方式分配外围设备,忽略用户作业I/O时间。现有作业序列如下: 作业号 进入输入井时间 运行时间 主存需求量 磁带需求 打印机需求 1 8:00 25分钟 15K 1 1 2 8:20 10分钟 30K 0 1 3 8:20 20分钟 60K 1 0 4 8:30 20分钟 20K 1 0 5 8:35 15分钟 10K 1 1 作业调度采用FCFS策略,优先分配主存低地址区且不准移动已在主存的作业,在主 存中的各作业平分CPU时间。现求:(1)作业被调度的先后次序?(2)全部作业运行结束的时间?(3)作业平均周转时间为多少?(4)最大作业周转时间为多少? 答:(1)作业调度选择的作业次序为:作业1、作业3、作业4、作业2和作业5。 10 《操作系统教程》(第三版)CH2应用题参考答案 (2)全部作业运行结束的时间9:30。 (3)周转时间:作业1为30分钟、作业2为55分钟、作业3为40分钟、作业4为 40分钟和作业5为55分钟。 (4)平均作业周转时间=44分钟。 (5) )最大作业周转时间为55分钟。 20 某多道程序设计系统采用可变分区内存管理,供用户使用的主存为200K,磁带机 5台。采用静态方式分配外围设备,且不能移动在主存中的作业,忽略用户作业I/O时间。现有作业序列如下: 作业号 进入输入井时间 运行时间 主存需求量 磁带需求 A 8:30 40分钟 30K 3 B 8:50 25分钟 120K 1 C 9:00 35分钟 100K 2 D 9:05 20分钟 20K 3 E 9:10 10分钟 60K 1 现求:(1)FIFO算法选中作业执行的次序及作业平均周转时间?(2)SJF算法选中作业执 行的次序及作业平均周转时间? 答: (1) FIFO算法选中作业执行的次序为:A、B、D、C和E。作业平均周转时间为63分钟。 (2) SJF算法选中作业执行的次序为:A、B、D、E和C。作业平均周转时间为58分钟。 11 因篇幅问题不能全部显示,请点此查看更多更全内容