《操作系统教程》(第三版)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-(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计算 A计算 B计算 处理器
B输入 输入机
A打印 A打印 打印机
计算 打印 计算 打印 程序A
计算 输入 计算 程序B
时间(ms)
0 50 100 150 180 200 250 300
(1) 两道程序运行期间,CPU存在空闲等待,时间为100至150ms之间(见图中有色部分)。
(2) 程序A无等待现象,但程序B有等待。程序B有等待时间段为180ms至200ms间(见图中有色部
分)。
3 设有三道程序,按A、B、C优先次序运行,其内部计算和I/O操作时间由图给出。
A C11=30ms
∣ I12=40ms
∣ C13=10ms
B C21=60ms
∣ I22=30ms ∣ C23=10ms
1
C C31=20ms
∣ I32=40ms ∣ C33=20ms
《操作系统教程》(第三版)CH1应用题参考答案
试画出按多道运行的时间关系图(忽略调度执行时间)。完成三道程序共花多少时间?比单道运
行节省了多少时间?若处理器调度程序每次进行程序转换化时1ms,试画出各程序状态转换的时间关系图。 答:
1) 忽略调度执行时间,多道运行方式(抢占式):
时间 0 3 7 8 10 12 13 14 17 19 单位10 ms
I/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 ms
I/O I12 I22 I32 CPU C11 C21 C13 C31 C23 C33
非抢占式共用去180ms,单道完成需要260ms, 节省80ms。 2) 调度执行时间1ms,多道运行方式(抢占式):
时间 0 303132 71727374 8485 105107 127 136137 147 177178 198 单位1ms
I/O I12 I22 I32 CPU C11 C21 C13 C21 C31 C23 C33 OS
调度执行时间1ms,多道运行方式(非抢占式):
时间 0 303132 7172 939495 105106 124125127129 139 168169 189 单位1ms
I/O I12 I22 I32
CPU C11 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)每个作业从投入到完成分别所需的时间。(2) 从投入到完成CPU的利用率。(3)I/O设备利用率。
答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):
2
《操作系统教程》(第三版)CH1应用题参考答案
CPU Job3 Job2 Job1 Job2 Job3 Job1 Job3 I1 Job2 Job1 Job3 Job3 Job1 Job2 Job1 I2 Job1 I2 CPU I1 CPU I2 Job2 I1 CPU CPU I2 Job3 CPU CPU I1 CPU I1 时间 (ms) 0 10 20 30 40 50 60 70 80 90 100 110 (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)设备的多道程序设计环境下,同时投入三个作业运行。它们的执行轨迹
如下:
Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms) Job2:I1(20ms)、CPU(20ms)、I2(40ms) Job3:CPU(30ms)、I1(20ms)
如果CPU、I1和I2都能并行工作,优先级从高到低为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU。试求:(1)每个作业从投入到完成分别所需的时间。(2) 每个作业投入到完成CPU的利用率。(3)I/O设备利用率。
答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):
CPU I1 I2 Job1 Job2 Job3 时间(ms) Job3 Job2 Job1 I2 I1 CPU Job2 Job1 Job2 Job3 Job1 Job3 Job1 Job2 CPU CPU I1 CPU I2 CPU CPU I1 0 10 20 30 40 50 60 70 80 90 Job1从投入到运行完成需80ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需90ms。 (1) CPU空闲时间段为:60ms至70ms,80ms至90ms。所以CPU利用率为(90-20)/90=77.78%。 (2) 设备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)
3
《操作系统教程》(第三版)CH1应用题参考答案
B:计算(40)、I/O(20)、计算(10)
C:计算(10)、I/O(30)、计算(20)
如果三道程序都使用相同设备进行I/O(即程序用串行方式使用设备,调度开销忽略不计)。试分别画出单道和多道运行的时间关系图。两种情况下,CPU的平均利用率各为多少?
答:分别画出单道和多道运行的时间图
I/O A B C CPU A A B B C C 时间 (ms) 0 20 40 50 60 80 100 120 140 160 180 190 (1) 单道运行时间关系图
单道总运行时间为190ms。CPU利用率为(190-80)/190=57.9% (1) 单道运行时间关系图
I/O A B C CPU A B A B C B C 时间 (ms) 0 20 40 50 60 80 100 120 140 多道总运行时间为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 70 (ms) CPU I/O1 CPU I/O2
如果三道程序同时并发执行,调度开销忽略不计,但优先级高的程序可中断优先级低的程序,优先级与I/O设备无关。试画出多道运行的时间关系图,并问最早与最迟结束的程序是哪个?每道程序执行到结束分别用了多少时间?计算三个程序全部运算结束时的CPU利用率? 答:画出三个作业并发执行的时间图: CPU I01 I02 A B C B A B A B C A B C A C A C A B cpu A B C 4 I02 cpu I01 cpu cpu I02 I01 cpu I01 cpu I01 cpu I02