这是因为它的分母较小,只要稍加等待,整个比值就会很快上升。另一方面,长作业的分母 虽然很大,但随着它等待时间的增加,比值也会逐渐上升,从而获得较高的响应比。根据这 种分析。可见“响应比高者优先”的作业调度算法。 既照顾到了短作业的利益,也照顾到 长作业的利益,是对先来先服务以及短作业优先这两种调度算法的一种折中。 10.短作业优先调度算法总能得到最小的平均周转时间吗?为什么? 答:短作业优先调度算法只有在所有作业同时到达后备作业队列时,才能得到最小的平 均周转时间。如果各作业不是同时到达,这个结论是不成立的。可以用反例说明,例如,教 材上 举有如下例子 :考虑有5个作业A到E,运行时间分别是2、 :到达时间分 别是0、0、3、3、3。按照短作业优先的原则,最初只有A和B可以参与迹择,因为其他3 个还没有到达。于是,运行顺序应该是A、B、C、D、E。它们每个的周转时间分别是2、6 4、5、6,平均周转时间是4.6。但如果按照顺序B、C、D、E、A来调度,它们每一个的周 转时间成为9、4、2、3、4。平均周转时间是44。结果比短作业优先调度算法好。之所以 会这样,就是因为这5个作业并没有同时到达 11.什么是 系统进程 什么是“用户进程”?它们有何区别 答:在多道程序设计系统中,既运行着操作系统程序,又运行着用户程序,因此整个系 统中存在者两类进程,一类是系统进程,一类是用户进程。操作系统中用于管理系统资源的 那些并发程序,形成了一个个系统进程,它们提供系统的服务,分配系统的资源:可以并发 执行的用户程序段,形成了一个个用户进程,它们是操作系统的服务对象,是系统资源的实 际的享用者。 可以看出 这是两类不同性质的进程 主要区别如 (1)系统进程之间的相互关系由操作系统负责协调,以便有利于增加系统的并行性,提 高资源的整体利用率:用户进程之间的相互关系要由用户自己(在程序中)安排。不过,操 作系统会向用户提供一定的协调手段(以命令的形式)。 2)系统讲程直接管理有关的软、硬件源的活动:用户进程不得插手济源管理。在需 要使用某种资源时。 必须向系统提出申请, 由系统统一调度与分配 (3)系统进程与用户进程都需要使用系统中的各种资源,它们都是资源分配与运行调度 的独立单位,但系统进程的使用级别,应该高于用户进程。也就是说,在双方出现竞争时, 系统进程有优先获得资源、优先得以运行的权利。只有这样,才能保证计算机系统高效、有 宰的工作 12给定个作业、 Jn,它们各自的运行时间为t t。,日满是关系 t1≤t≤ ≤,假定这些作业同时到达系统,并在CPU 上按单道方式运行。试问 (1)采用何种调度算法,能使平均周转时间为最小? (2)给出这批作业最短平均周转时间的计算式。 答:(1)采用短作业优先调度算法。 (2)这批作业最短平均周转时间的计算式为: T-[T+T T/t+t+te)H(trt+地) 13.进程调度程序应该具有哪几个方面的主要功能? 答:(1)记录系统中所有进程的有关情况,比如进程的当前状态、优先数等。 (2)确定分配处理机的算法,这是它的一项主要工作。 (3)完成处理机的分配。要注意,在操作系统中,是进程调度程序实施处理机的具体 分配的 (4)完成处理机的回收。 四、计算 -6-
- 6 - 这是因为它的分母较小,只要稍加等待,整个比值就会很快上升。另一方面,长作业的分母 虽然很大,但随着它等待时间的增加,比值也会逐渐上升,从而获得较高的响应比。根据这 种分析,可见“响应比高者优先”的作业调度算法,既照顾到了短作业的利益,也照顾到了 长作业的利益,是对先来先服务以及短作业优先这两种调度算法的一种折中。 10.短作业优先调度算法总能得到最小的平均周转时间吗?为什么? 答:短作业优先调度算法只有在所有作业同时到达后备作业队列时,才能得到最小的平 均周转时间。如果各作业不是同时到达,这个结论是不成立的。可以用反例说明,例如,教 材上举有如下例子:考虑有 5 个作业 A 到 E,运行时间分别是 2、4、1、1、1;到达时间分 别是 0、0、3、3、3。按照短作业优先的原则,最初只有 A 和 B 可以参与选择,因为其他 3 个还没有到达。于是,运行顺序应该是 A、B、C、D、E。它们每个的周转时间分别是 2、6、 4、5、6,平均周转时间是 4.6。但如果按照顺序 B、C、D、E、A 来调度,它们每一个的周 转时间成为 9、4、2、3、4,平均周转时间是 4.4。结果比短作业优先调度算法好。之所以 会这样,就是因为这 5 个作业并没有同时到达。 11. 什么是“系统进程”、什么是“用户进程”?它们有何区别? 答:在多道程序设计系统中,既运行着操作系统程序,又运行着用户程序,因此整个系 统中存在着两类进程,一类是系统进程,一类是用户进程。操作系统中用于管理系统资源的 那些并发程序,形成了一个个系统进程,它们提供系统的服务,分配系统的资源;可以并发 执行的用户程序段,形成了一个个用户进程,它们是操作系统的服务对象,是系统资源的实 际的享用者。可以看出,这是两类不同性质的进程,主要区别如下。 (1)系统进程之间的相互关系由操作系统负责协调,以便有利于增加系统的并行性,提 高资源的整体利用率;用户进程之间的相互关系要由用户自己(在程序中)安排。不过,操 作系统会向用户提供一定的协调手段(以命令的形式)。 (2)系统进程直接管理有关的软、硬件资源的活动;用户进程不得插手资源管理。在需 要使用某种资源时,必须向系统提出申请,由系统统一调度与分配。 (3)系统进程与用户进程都需要使用系统中的各种资源,它们都是资源分配与运行调度 的独立单位,但系统进程的使用级别,应该高于用户进程。也就是说,在双方出现竞争时, 系统进程有优先获得资源、优先得以运行的权利。只有这样,才能保证计算机系统高效、有 序的工作。 12. 给定 n 个作业 J1、J2、……Jn,它们各自的运行时间为 t1、t2、……tn,且满足关系: t1≤t2≤……≤tn,假定这些作业同时到达系统,并在 CPU 上按单道方式运行。试问: (1)采用何种调度算法,能使平均周转时间为最小? (2)给出这批作业最短平均周转时间的计算式。 答:(1)采用短作业优先调度算法。 (2)这批作业最短平均周转时间的计算式为: T=[T1+T2+…+Tn]/n=[t1+(t1+t2)+(t1+t2+t3)+…+(t1+t2+…tn-1+tn)]/n 13.进程调度程序应该具有哪几个方面的主要功能? 答:(1)记录系统中所有进程的有关情况,比如进程的当前状态、优先数等。 (2)确定分配处理机的算法,这是它的一项主要工作。 (3)完成处理机的分配。要注意,在操作系统中,是进程调度程序实施处理机的具体 分配的。 (4)完成处理机的回收。 四、计算
1.有三个作业: 作业 到达时间 所需CPU时间 1 0.0 8 2 4 3 1.0 分别采用先来先服务和短作业优先作业调度算法。试问它们的平均周转时间各是什么?你是 否还可以给出 一种更好的调度算法,使其平均周转时间优于这两种调度算法 解:(1)采用先来先服务作业调度算法时的实施过程如下。 作业 到达时间 所需CPU时间 开始时间 完成时间 周转时间 0.0 8 0.0 8.0 80 2 0.4 4 8.0 12.0 11.6 3 1.0 1 12.0 13.0 12.0 这时,作业的调度顺序是1→2→3。其平均周转时间为: (8+116+12)/3=10.53 (2)采用短作业优先作业调度算法时的实施过程如下。 作业 到达时间 所蛋CPU时间 开始时间 完成时间 周转时间 1 0.0 8 0.0 8.0 8.0 1.0 80 9.0 80 2 04 9.0 13.0 126 这里要注意,在作业1运行完毕进行作业调度时,作业2和3都已经到达。由于是实行短作 业优先作业调度算法,因此先调度作业3运行,最后调度作业2运行。所以,这时的作业调 度顺序是1一3→2。其平均周转时间为: (8+8+126)/3=953 (3)还可以有更好的作业调度算法,使其平均周转时间优于这两种调度算法。例如,如 果知道在作业1后面会来两个短作业 那么作业1到达后,先不投入运行。而是等所有作业 到齐后,再按照短作业优先作业调度算法进行调度,具体实施过程如下。 作业 到达时间 所需CPU时间 开始时间 完成时间 周转时向 3 1.0 1.0 20 1.0 2 0.4 4 2.0 6.0 5.6 0.0 8 6.0 14.0 14.0 这时的作业调度顺序是3一2一1。其平均周转时间为: (1+56+14)13=687 2.设有一组作业,它们的到达时间和所需CPU时间如下所示 .7
- 7 - 1.有三个作业: 作 业 到达时间 所需 CPU 时间 1 0.0 8 2 0.4 4 3 1.0 1 分别采用先来先服务和短作业优先作业调度算法。试问它们的平均周转时间各是什么?你是 否还可以给出一种更好的调度算法,使其平均周转时间优于这两种调度算法? 解:(1)采用先来先服务作业调度算法时的实施过程如下。 作 业 到达时间 所需 CPU 时间 开始时间 完成时间 周转时间 1 0.0 8 0.0 8.0 8.0 2 0.4 4 8.0 12.0 11.6 3 1.0 1 12.0 13.0 12.0 这时,作业的调度顺序是 1→2→3。其平均周转时间为: (8 + 11.6 + 12)/ 3 = 10.53 (2)采用短作业优先作业调度算法时的实施过程如下。 作 业 到达时间 所需 CPU 时间 开始时间 完成时间 周转时间 1 0.0 8 0.0 8.0 8.0 3 1.0 1 8.0 9.0 8.0 2 0.4 4 9.0 13.0 12.6 这里要注意,在作业 1 运行完毕进行作业调度时,作业 2 和 3 都已经到达。由于是实行短作 业优先作业调度算法,因此先调度作业 3 运行,最后调度作业 2 运行。所以,这时的作业调 度顺序是 1→3→2。其平均周转时间为: (8 + 8 + 12.6)/ 3 = 9.53 (3)还可以有更好的作业调度算法,使其平均周转时间优于这两种调度算法。例如,如 果知道在作业 1 后面会来两个短作业,那么作业 1 到达后,先不投入运行。而是等所有作业 到齐后,再按照短作业优先作业调度算法进行调度,具体实施过程如下。 作 业 到达时间 所需 CPU 时间 开始时间 完成时间 周转时间 3 1.0 1 1.0 2.0 1.0 2 0.4 4 2.0 6.0 5.6 1 0.0 8 6.0 14.0 14.0 这时的作业调度顺序是 3→2→1。其平均周转时间为: (1 + 5.6 + 14)/ 3 = 6.87 2.设有一组作业,它们的到达时间和所需 CPU 时间如下所示
作业号 到达时问 所需CPU时间 9.00 70分钟 2 940 30分钟 3 950 10分钟 4 10:10 5分钟 分别采用先来先服务和短作业优先作业调度算法。试问它们的调度顺序、作业周转时间以及 平均困转时间各是什么? 解:(1)采用先来先服务作业调度算法时的实施过程如下。 作业号到达时间 所需CPU时间开始时间 完成时间 周转时间 900 70分钟 900 10:10 70分钟 2 940 30分钟 10:10 1040 60分钟 3 9:50 10分钟 10:40 10:50 60分钟 4 10:10 5分钟10:50 1055 45分钟 这时,作业的调度顺序是1一2→3一4。其平均周转时间为: (70+60+60+45)/4=5875 (2)采用短作业优先作业调度算法时的实施过程如下。 作业号 到达时间 所需CPU时间开始时间完成时间 周转时间 1 90 70分钟 900 1010 70分钟 10:10 5分钟 10.10 1015 5分钟 950 10分钟 10:15 1025 35分钟 940 30分钟 1025 1055 75分钟 这时,作业的调度顺序是1→4一3一2。其平均周转时间为: (70+5+35+75)/4=46.25 3.某系统有三个作业: 作业号 到达时间 所需CPU时间 1 88 1.5 2 9.0 0.4 3 9.5 1.0 系统确定在它们全部到达后,开始采用响应比高者优先调度算法,并忽略系统调度时间。 试问对它们的调度顺序是什么?各自的周转时间是多少? 解:三个作业是在9.5时全部到达的。这时它们各自的响应比如下: 作业1的响应比=(9.5-8.8)/1.5=0.46 -8-
- 8 - 作业号 到达时间 所需 CPU 时间 1 9:00 70 分钟 2 9:40 30 分钟 3 9:50 10 分钟 4 10:10 5 分钟 分别采用先来先服务和短作业优先作业调度算法。试问它们的调度顺序、作业周转时间以及 平均周转时间各是什么? 解:(1)采用先来先服务作业调度算法时的实施过程如下。 作业号 到达时间 所需 CPU 时间 开始时间 完成时间 周转时间 1 9:00 70 分钟 9:00 10:10 70 分钟 2 9:40 30 分钟 10:10 10:40 60 分钟 3 9:50 10 分钟 10:40 10:50 60 分钟 4 10:10 5 分钟 10:50 10:55 45 分钟 这时,作业的调度顺序是 1→2→3→4。其平均周转时间为: (70 + 60 + 60 + 45)/ 4 = 58.75 (2)采用短作业优先作业调度算法时的实施过程如下。 作业号 到达时间 所需 CPU 时间 开始时间 完成时间 周转时间 1 9:00 70 分钟 9:00 10:10 70 分钟 4 10:10 5 分钟 10:10 10:15 5 分钟 3 9:50 10 分钟 10:15 10:25 35 分钟 2 9:40 30 分钟 10:25 10:55 75 分钟 这时,作业的调度顺序是 1→4→3→2。其平均周转时间为: (70 + 5 + 35 + 75)/ 4 = 46.25 3.某系统有三个作业: 作业号 到达时间 所需 CPU 时间 1 8.8 1.5 2 9.0 0.4 3 9.5 1.0 系统确定在它们全部到达后,开始采用响应比高者优先调度算法,并忽略系统调度时间。 试问对它们的调度顺序是什么?各自的周转时间是多少? 解:三个作业是在 9.5 时全部到达的。这时它们各自的响应比如下: 作业 1 的响应比 =(9.5 – 8.8)/ 1.5 = 0.46
作业2的响应比=(9.5-9.0)10.4=125 作业3的响应比=(g5-g5)/10=0 因此,最先应该调度作业2运行,因为亡的响应比最高。它运行了0,4后完成,这时的时间 是9.9。再计算作业1和3此时的响应比: 作业1的响应比=(9.9-8.8)11.5=0.73 作业3的白应比=(99-95)/10=040 因此,第二个应该调度作业1运行,因为它的响应出最高。它运行了15后完成,这时的时 间是114。第三个调度的是作业3,它运行了1.0后完成,这时的时间是12.4。整个实施过 程如下。 作业号 到达时间 所需CPU时间 开始时间 完成时间 周转时间 2 9.0 0.4 95 9.9 0.9 88 1.5 9.9 11.4 2.6 3 9.5 1.0 11.4 12.4 2.9 作业的调度顺序是2→1→3。各自的周转时间为:作业1为0.9:作业2为2.6:作业3 为2.9。 第3章习题答案 一、填空 1.将作业相对地址空间的相对地址转换成内存中的绝对地址的过程称为地址重定位 2.使用覆盖与对换技术的主要目的是提高内存的利用率 3.存储管理中,对存储空间的浪费是以内部碎片和外部碎片两种形式表现出 来的。 4.地址重定位可分为静态重定位和动态重定位两种方式。 5.在可变分区存储管理中采用最佳适应算法时,最好按尺寸法来组织空闲分区 链表。 6.在分页式存储管理的页表里,主要应该包含页号和块号两个信息 7.静态重定位在程序装入时进行,动态重定位在程序执行时进行。 8.在分页式存储管理中,如果页面置换算法选择不当,则会使系统出现抖动现象。 9.在请求分页式存储管理中采用先进先出(F0)页面淘汰算法时,增加分配给作业 的块数时,缺页中断的次数有可能会增加。 10.在请求分页式存储管理中,页面淘汰是由于缺页引起的 二、选择 1.虚拟存储器的最大容量是由B决定的。 A.内、外存容量之和 B.计算机系统的地址结构 C.作业的相对地址空间 D.作业的绝对地址空间 2.采用先进先出页面淘汰算法的系统中,一进程在内存占3块(开始为空),页面访问 序列为1、2、3、4、1、2、5、1、2、3、4、5、6。运行时会产生D次缺页中断 .9-
- 9 - 作业 2 的响应比 =(9.5 – 9.0)/ 0.4 = 1.25 作业 3 的响应比 =(9.5 – 9.5)/ 1.0 = 0 因此,最先应该调度作业 2 运行,因为它的响应比最高。它运行了 0.4 后完成,这时的时间 是 9.9。再计算作业 1 和 3 此时的响应比: 作业 1 的响应比 =(9.9 – 8.8)/ 1.5 = 0.73 作业 3 的响应比 =(9.9 – 9.5)/ 1.0 = 0.40 因此,第二个应该调度作业 1 运行,因为它的响应比最高。它运行了 1.5 后完成,这时的时 间是 11.4。第三个调度的是作业 3,它运行了 1.0 后完成,这时的时间是 12.4。整个实施过 程如下。 作业号 到达时间 所需 CPU 时间 开始时间 完成时间 周转时间 2 9.0 0.4 9.5 9.9 0.9 1 8.8 1.5 9.9 11.4 2.6 3 9.5 1.0 11.4 12.4 2.9 作业的调度顺序是 2→1→3。各自的周转时间为:作业 1 为 0.9;作业 2 为 2.6;作业 3 为 2.9。 第 3 章习题答案 一、填空 1.将作业相对地址空间的相对地址转换成内存中的绝对地址的过程称为 地址重定位 。 2.使用覆盖与对换技术的主要目的是 提高内存的利用率 。 3.存储管理中,对存储空间的浪费是以 内部碎片 和 外部碎片 两种形式表现出 来的。 4.地址重定位可分为 静态重定位 和 动态重定位 两种方式。 5.在可变分区存储管理中采用最佳适应算法时,最好按 尺寸 法来组织空闲分区 链表。 6.在分页式存储管理的页表里,主要应该包含 页号 和 块号 两个信息。 7.静态重定位在程序 装入 时进行,动态重定位在程序 执行 时进行。 8.在分页式存储管理中,如果页面置换算法选择不当,则会使系统出现 抖动 现象。 9.在请求分页式存储管理中采用先进先出(FIFO)页面淘汰算法时,增加分配给作业 的块数时, 缺页中断 的次数有可能会增加。 10.在请求分页式存储管理中,页面淘汰是由于 缺页 引起的。 二、选择 1.虚拟存储器的最大容量是由 B 决定的。 A.内、外存容量之和 B.计算机系统的地址结构 C.作业的相对地址空间 D.作业的绝对地址空间 2.采用先进先出页面淘汰算法的系统中,一进程在内存占 3 块(开始为空),页面访问 序列为 1、2、3、4、1、2、5、1、2、3、4、5、6。运行时会产生 D 次缺页中断
A7 R 8 C.9 D.10 从图中的“缺页计数”栏里可以看出应该选择D。 页而走向+ 1234125123456 23423553446 3个内存块+ 123412225334 ①Q②②④110@②5⑤3 缺项计数+√√√√√√√√√√ 3.系统出现“抖动”现象的主要原因是由于A引起的。 A,置换算法选择不当 B.交换的信息量太大 C.内存容量不足 D.采用页式存储管理策略 4.实现虚拟存储器的目的是D A.进行存储保扩 B.允许程序浮动 C.允许程序移动 D.扩充主存容量 5.作业在执行中发生了缺页中断,那么经中断处理后,应返回执行B指令。 A.被中断的前一条 B.被中断的那条 C.被中断的后一条 D.程序第一条 6.在实行分页式存储管理系统中,分页是由D完成的 A,军序 B.用户 C.操作员 D.系统 7.下面的A页面淘汰算法有时会产生异常现象。 A.先进先出 B.最近最少使用C最不经常使用 D.最佳 8,在一个分页式存储管理系统中,页表的内容为: 号 块号 2 2 7 若页的大小为4KB,则地址转换机构将相对地址0转换成的物理地址是A。 A.8192 B.4096 C.2048 D.1024 注意,相对地址0肯定是第0页的第0个字节。查页表可知第0页存放在内存的第2 块。现在块的尺寸是4KB,因此第2块的起始地址为8192。故相对地址0所对应的绝对地 址(即物理地址)是8192 9 下面所列的存储管理方案中, A实行的不是动态重定位 A.固定分☒ B.可变分区 C.分页式 D.请求分页式 10.在下面所列的诸因素中,不对缺页中断次数产生影响的是C。 A,内存分块的尺寸 B.程序编制的质量 C.作业等待的时间 D.分配给作业的内存块数 1.在分段式存储管理中,是由用户实施分段的。因此B, A段内和各段间的地址都是连续的 B.段内的地址是连续的,各段间的地址可以不连续 C.段内的地址可以不连续,但段间的地址是连续的 D.段内的地址和各段间的地址都是不连续的 12. 个分段式存储管理系统,地址用24位表示,其中8位表示段号。那么每段的最大 -10
- 10 - A.7 B.8 C.9 D.10 从图中的“缺页计数”栏里可以看出应该选择 D。 1 2 3 4 1 2 5 1 2 3 4 5 6 1 2 3 4 1 2 5 5 5 3 4 4 6 1 2 3 4 1 2 2 2 5 3 3 4 1 2 3 4 1 1 3 √ √ √ √ √ √ √ √ √ 页面走向→ 3 个内存块→ 缺页计数→ 1 2 5 5 √ 3.系统出现“抖动”现象的主要原因是由于 A 引起的。 A.置换算法选择不当 B.交换的信息量太大 C.内存容量不足 D.采用页式存储管理策略 4.实现虚拟存储器的目的是 D 。 A.进行存储保护 B.允许程序浮动 C.允许程序移动 D.扩充主存容量 5.作业在执行中发生了缺页中断,那么经中断处理后,应返回执行 B 指令。 A.被中断的前一条 B.被中断的那条 C.被中断的后一条 D.程序第一条 6.在实行分页式存储管理系统中,分页是由 D 完成的。 A.程序员 B.用户 C.操作员 D.系统 7.下面的 A 页面淘汰算法有时会产生异常现象。 A.先进先出 B.最近最少使用 C.最不经常使用 D.最佳 8.在一个分页式存储管理系统中,页表的内容为: 若页的大小为 4KB,则地址转换机构将相对地址 0 转换成的物理地址是 A 。 A.8192 B.4096 C.2048 D.1024 注意,相对地址 0 肯定是第 0 页的第 0 个字节。查页表可知第 0 页存放在内存的第 2 块。现在块的尺寸是 4KB,因此第 2 块的起始地址为 8192。故相对地址 0 所对应的绝对地 址(即物理地址)是 8192。 9.下面所列的存储管理方案中, A 实行的不是动态重定位。 A.固定分区 B.可变分区 C.分页式 D.请求分页式 10.在下面所列的诸因素中,不对缺页中断次数产生影响的是 C 。 A.内存分块的尺寸 B.程序编制的质量 C.作业等待的时间 D.分配给作业的内存块数 11.在分段式存储管理中,是由用户实施分段的。因此 B 。 A.段内和各段间的地址都是连续的 B.段内的地址是连续的,各段间的地址可以不连续 C.段内的地址可以不连续,但段间的地址是连续的 D.段内的地址和各段间的地址都是不连续的 12.一个分段式存储管理系统,地址用 24 位表示,其中 8 位表示段号。那么每段的最大 页号 块号 0 2 1 1 2 7