《操作系统第三版习题答案资料》由会员分享,可在线阅读,更多相关《操作系统第三版习题答案资料(59页珍藏版)》请在金锄头文库上搜索。
1、操作系统教程(第三版) 作者:孙钟秀 部分课后习题答案 操作系统教程(第三版) 作者:孙钟秀 部分课后习题答案 第一章 操作系统概论 二、应用题 1、有一台计算机,具有 1MB 内存,操作系统占用 200KB,每个用户占用 200KB。如 果用户进程等待 I/O 的时间为 80%, 若增加 1MB 内存, 则 CPU 的利用率提高多少? 解:每个进程等待的百分比率为 p,则 n 个进程同时等待的概率为 pn,当 n 个进程同时 等待 I/O 期间 CPU 是空闲的,故 CPU 的利用率是 1-pn 除去操作系统占用的内存,剩余内存能容纳 4 个用户进程,由于每个用户进程等待 I/O 的时间为
2、80,故 CPU 的利用率为 1-(80%)4=59% 若再增加 1M 内存,内存就能容纳 9 个用户进程了,CPU 的利用率为 1-(80%)9=87% 利用率提高为 (87%)/(59%)=147% 14710047 增加 1M 内存 CPU 利用率 47。 2、设一计算机系统有输入机一台、打印机两台,现有二道程序同时投入运行,且程序 A 先 开始运行,程序 B 后运行。 程序 A 的运行轨迹为:计算 50ms,打印信息 100ms,再计算 50ms ,打印信息 100ms ,结 束。程序 B 运行的轨迹为:计算 50ms,输入数据 80ms,再计算 100ms,结束。 要求: (1) 用
3、图画出这二道程序并发执行时的工作情况。 (2) 说明在二道程序运行时,CPU 有无空闲等待?若有,在哪段时间内等待?为什么会 空闲等待? (3) 程序 A、B 运行时有无等待现象?在什么时候会发生等待现象? 答:(1)工作情况如图。 (2) CPU 有空闲等待,它发生在 100ms150ms 时间段内,此时间段内程序 A 与程序 B 都在进行 I/O 操作。 (3) 程序 A 无等待现象,程序 B 在 0ms50ms 时间段与 180ms200ms 时间段内有等 待现象。 100 ms50 ms 计算 100 ms 打印 50 ms 计算 打印 50 ms 80 ms 计算 输入 100 ms
4、 计算 50 ms 等待 20 ms 等待 050 100 150180 200 300 ms 程序 A 程序 B 时间 如果将上题的轨迹更改为如下,情况又如何呢?即 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序 A 先 开始运行,程序 B 后开始运行。 程序 A 的轨迹为:计算 50ms、输入 80ms、再计算 100ms,结束; 程序 B 的运行轨迹为:计算 50ms、打印 100ms、再计算 50ms、打印 100ms,结束。 问题: (1) 画出两道程序运行的时间关系图; (2) 两道程序运行时,CPU 有无空闲等待?若有,在哪段时间等待? (3) 程序 A、
5、B 有无等待 CPU 的情况?若有,在哪段时间等待? 解答:(1) 两道程序运行的时间关系图: (2) CPU 有空闲等待,它发生在 100ms130ms 时间段内,此时间段内程序 A 与程序 B 工作情况的另一种描述形式如下: 程序A 程序 B 输入 程序 A 打印 计算 程序 A 程序 B 打印机 输入设备 50 100 150180200 300 ms 时间 计算 计算 打印 输入 计算 程序A程序 B程序 B CPU 250 50 计算 程序 A 程序 B 打印机 输入设备 100 130 200230 380 ms 时间 计算 计算 输入 打印 计算 程序A 程序 B 程序 B CP
6、U 280 输入 程序A 打印 程序 B 打印 打印 都在进行 I/O 操作。 (3) 程序 A 无等待现象,程序 B 在 0ms50ms 时间段与 200ms230ms 时间段内有等待 现象。 3、设三道程序,按照 A、B、C 优先次序运行,其内部计算和 I/O 操作时间由图给出。 A B C C11=30msC21=60msC31=20ms | | | I12=40msI22=30msI32=40ms | | | C13=10msC23=10msC33=20ms 试画出按多道运行的时间关系图(忽略调度执行时间)。完成三道程序共花多少时间?比 单道程序节省了多少时间?若处理器调度程序每次运行
7、程序的转换时间花 1ms,试画出 各程序状态转换的时间关系图。 解答:完成三道程序抢占式花费时间是 190 ms,非抢占花费时间是 180 ms,单道花费 时间是 260 ms,抢占式比单道节省时间为 70 ms。 单道程序运行时间:260ms A:30+40+10=80 ms B:60+30+10=100 ms C:20+40+20=80 ms 4、在单 CPU 和两台 I/O(I1 和 I2)设备的多道程序设计环境下,同时投入三个作业运行。 它们的执行轨迹如下: Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)、I2(20ms) Job2:I1(20ms
8、)、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,JOB2,JOB3 从投入到完成分别所需时间为 110,90,110。 (2)每个作业从投入到完成 CPU 的利用率是 72.7。 (3)I1 的利用
9、率是 72.7,I2 的利用率是 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,但是不抢占 I1 和 I2。试求: (1)每个作业从投入到完成分别需要多少时间。 (2
10、)从投入到完成 CPU 的利用率。 (3) I/O 设备的利用率。 答:(1)JOB1,JOB2,JOB3 从投入到完成分别所需时间为 80,90,90ms。 (2)每个作业从投入到完成 CPU 的利用率是 77.8。 (3)I1 的利用率是 77.8,I2 的利用率是 77.8。 6、若内存中存在 3 道程序 A、B、C,它们按照 A、B、C 的优先次序运行。各程序的 计算轨迹为: A:计算(20ms)、I/O(30ms)、计算(10ms) B:计算(40ms) 、I/O(20ms)、计算(10ms) C:计算(10ms)、I/O(30ms)、计算(20ms) 如果三道程序都使用相同的设备进
11、行 I/O(即程序用串行方式使用设备,调度开销忽略不 计)。试分别画出单道和多道运行的时间关系图。两种情况下,CPU 的平均利用率各为 多少? 答:单道:总运行时间是 190ms,CPU 的利用率是 110/19061.3。 多道:多道的总运行时间 140ms,CPU 的利用率是 110/14078.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
12、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 平均率? 答:最早结束的是 B,最晚的是 C, A 的运行时间是 250ms, B 的运行时间是 220ms, C 的运行时间是 310ms, CPU 的利用率是 190/31061.3。 8、若
13、两个程序,A 程序按顺序使用:(CPU)10s,(设备甲)5s,(CPU)10s,(设备乙)10s, (CPU)10s。B 程序按顺序使用:(设备甲)10s,(CPU)10s,(设备乙)5s,(CPU)5s,(设备 乙)10s。在顺序环境下先执行 A,在执行 B,求出总的 CPU 利用率为多少? 答:程序 A 的执行了 40 秒,其中 CPU 使用了 25 秒,B 程序执行 40 秒,其中 CPU 使 用了 15 秒,而程序共使用了 80 秒,CPU 花 40 秒,CPU 的利用率是 40/80=50%。 9、在某计算机系统中,时钟中断处理程序每次执行时间为 2ms(包括进程切换开销)。若 中
14、断频率为 60Hz,试问 CPU 用于时钟中断处理的时间比率为多少? 答:因为时钟中断频率是 60HZ,时钟周期是 1000ms/6050/3(ms) 在每一个时钟周期里,CPU 花 2ms 处理执行任务,所以 CPU 用于时钟中断的时间比例是 2/(50/3)=6/50=12%。 第二章 处理机管理 二、应用题 1、下列指令中,哪些只能在核心态运行? (1)读时钟日期;(2)访管指令;(3)设时钟日期;(4)加载 PSW;(5)置特殊寄存器;(6)改 变存储器映象图;(7)启动 I/O 指令。 答:可以在核心态下运行的是:(3)设时钟日期;(4)加载 PSW;(5)置特殊寄存器;(6) 改变
15、存储器映象图;(7)启动 I/O 指令。 2、假设有一种低级调度算法是让“最近使用处理器较少的进程”运行,试解释这种算 法对“I/O 繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。 答:因为 I/O 繁忙作业忙于 I/O,所以使用 CPU 较少,按照调度策略算法优先执行。一 个进程等待 CPU 时间够长,是最近最少使用 CPU 进程,被优先调度。 3、并发进程之间有什么样的相互制约关系?下列日常生活中的活动属于哪种制约关 系?(1)踢足球;(2)吃自助餐;(3)图书馆借书;(4)电视机生产流水线工序 答:并发进程之间的相互制约关系有:互斥和同步。 属于互斥关系的有:(1)踢足球;
16、(3)图书馆借书; 属于同步关系的有:(2)吃自助餐;(4)电视机生产流水线工序 5、若后备作业队列中等待运行的同时有三个作业 J1、J2 和 J3,已知它们各自的运行为 a、 b、 c, 且满足 a100,所以地址越界。 1952+421994。 12、某计算机系统提供 24 位的虚存空间,主存为 18 2 B,采用 分页式虚拟存储管理,页 面尺寸为 1KB。假定用户程序产生了虚拟地址 11123456(八进制),而该页面分得块 号为 100(八进制),说明该系统如何产生相应的物理地址及写出物理地址。 解:主存是 18 2 B,页为 1K,主存共有 8 2 256 个块,虚拟地址 11123456(八进制)转换成 2 进制为 001 001 001 010 011 100 101 110, 所以后 10 位是偏移位,用分得的块号替换虚拟地址的块号 001 000 000 1 100 101 110,转换成 8 进制就是 201456。 15、在一个分页存储管理