《操作系统____课后答案(1).》由会员分享,可在线阅读,更多相关《操作系统____课后答案(1).(43页珍藏版)》请在金锄头文库上搜索。
1、操作系统教程(第三版)CH1应用题参考答案CH1 应用题参考答案1 有一台计算机,具有1MB内存,操作系统占用200KB,每个用户进程各占200KB。如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少?答:设每个进程等待I/O的百分比为P,则n个进程同时等待I/O的概率是Pn ,当n个进程同时等待I/O期间CPU是空闲的,故CPU的利用率为1-Pn 。由题意可知,除去操作系统,内存还能容纳4个用户进程,由于每个用户进程等待I/O的时间为80%,故: CPU利用率=1-(80%)4 =0.59若再增加1MB内存,系统中可同时运行9个用户进程,此时: CPU利用率=1
2、-(80%)9 =0.87故增加1MB内存使CPU的利用率提高了47%: 87%59%=147% 147%-100%=47%2 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始做,程序B后开始运行。程序A的运行轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。程序B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。试说明(1)两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?(2)程序A、B有无等待CPU的情况?若有,指出发生等待的时刻。答:画出两道程序并发执行图如下:处理器输入机打印机程序A程序B
3、A计算B计算计算计算时间(ms)0 50 100 150 180 200 250 300打印计算打印输入计算A打印A打印B输入A计算B计算一(1) 两道程序运行期间,CPU存在空闲等待,时间为100至150ms之间(见图中有色部分)。(2) 程序A无等待现象,但程序B有等待。程序B有等待时间段为180ms至200ms间(见图中有色部分)。3 设有三道程序,按A、B、C优先次序运行,其内部计算和I/O操作时间由图给出。ABCC1130msC21=60msC31=20msI1240msI22=30msI32=40msC1310msC23=10msC33=20ms试画出按多道运行的时间关系图(忽略调
4、度执行时间)。完成三道程序共花多少时间?比单道运行节省了多少时间?若处理器调度程序每次进行程序转换化时1ms,试画出各程序状态转换的时间关系图。答:1) 忽略调度执行时间,多道运行方式(抢占式):时间 0 3 7 8 10 12 13 14 17 19 单位10 msI/O I12 I22 I32 CPU C11 C21 C13 C21 C31 C23 C33 抢占式共用去190ms,单道完成需要260ms, 节省70ms。 忽略调度执行时间,多道运行方式(非抢占式):时间 0 3 7 9 10 12 13 14 16 18 单位10 msI/O I12 I22 I32 CPU C11 C21
5、 C13 C31 C23 C33 非抢占式共用去180ms,单道完成需要260ms, 节省80ms。2) 调度执行时间1ms,多道运行方式(抢占式):时间 0 303132 71727374 8485 105107 127 136137 147 177178 198 单位1msI/O I12 I22 I32 CPU C11 C21 C13 C21 C31 C23 C33 OS 调度执行时间1ms,多道运行方式(非抢占式):时间 0 303132 7172 939495 105106 124125127129 139 168169 189 单位1msI/O I12 I22 I32 CPU C11
6、 C21 C21 C13 C31 C31 C23 C33 OS 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)每个作业从投入到完
7、成分别所需的时间。(2) 从投入到完成CPU的利用率。(3)I/O设备利用率。答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):CPUI1I2Job1Job2Job3时间(ms)CPU CPU0 10 20 30 40 50 60 70 80 90 100 110CPU I1I1 I1CPUCPU I2 I2CPU I1CPU I2 Job1 Job2 Job3Job2Job1Job2Job3Job1Job3 Job2Job1 Job1Job3Job3(1) Job1从投入到运行完成需110ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需110ms。(2) CP
8、U空闲时间段为: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)设备的多道程序设计环境下,同时投入三个作业运行。它们的执行轨迹如下:Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)Job2:I1(20ms)、CPU(20ms)、I
9、2(40ms)Job3:CPU(30ms)、I1(20ms)如果CPU、I1和I2都能并行工作,优先级从高到低为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU。试求:(1)每个作业从投入到完成分别所需的时间。(2) 每个作业投入到完成CPU的利用率。(3)I/O设备利用率。答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):CPUI1I2Job1Job2Job3时间(ms)CPU CPU0 10 20 30 40 50 60 70 80 90 I1 I1CPUCPU I2 I2CPU I1CPU Job1 Job2 Job3Job2Job1Job2Job3
10、Job1 Job2 Job1Job3(1) Job1从投入到运行完成需80ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需90ms。(2) CPU空闲时间段为:60ms至70ms,80ms至90ms。所以CPU利用率为(90-20)/90=77.78%。(3) 设备I1空闲时间段为:20ms至40ms,故I1的利用率为(90-20)/90=77.78%。设备I2空闲时间段为:30ms至50ms,故I2的利用率为(90-20)/90=77.78%。6 若内存中有3道程序A、B、C,它们按A、B、C优先次序运行。各程序的计算轨迹为:A:计算(20)、I/O(30)、计算(10)
11、 B:计算(40)、I/O(20)、计算(10)C:计算(10)、I/O(30)、计算(20)如果三道程序都使用相同设备进行I/O(即程序用串行方式使用设备,调度开销忽略不计)。试分别画出单道和多道运行的时间关系图。两种情况下,CPU的平均利用率各为多少?答:分别画出单道和多道运行的时间图0 20 40 50 60 80 100 120 140 160 180 190I/OCPU时间(ms)AAABBB C CC(1) 单道运行时间关系图单道总运行时间为190ms。CPU利用率为(190-80)/190=57.9%(1) 单道运行时间关系图I/OCPU时间(ms)AAAB C0 20 40 50 60 80 100 120 140 BBCCB多道总运行时间为140ms。CPU利用率为(140-30)/140=78.6%7 若内存中有3道程序A、B、C,优先级从高到低为A、B和C,它们单独运行时的CPU和I/O占用时间为:程序A: 60 20 30 10 40 20 20 (ms) I/O2 CPU I/O1 CPU I/O1 CPU I/O1程序B: 30 40 70 30 30 (ms) I/O1 CPU I/O2 CPU I/O2程序C: 40 60 30