操作系统习题解答(张尧学) 联系客服

发布时间 : 星期二 文章操作系统习题解答(张尧学)更新完毕开始阅读cec4b20fe87101f69e31958c

end 第四章 1.什么是分级调度?分时系统中有作业调度的概念吗?如果没有,为什么? P86

答:处理机调度问题实际上也是处理机的分配问题。显然只有那些参与竞争处理及所必需的资源都已得到满足的进程才能享有竞争处理机的资格。这时它们处于内存就绪状态。这些必需的资源包括内存、外设及有关数据结构等。从而,在进程有资格竞争处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定的选择顺序和策略从输入井中选择出几个处于后备状态的作业,为它们分配资源和创建进程,使它们获得竞争处理机的资格。

另外,由于处于执行状态下的作业一般包括多个进程,而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于后备状态的作业外,还存在处于就绪状态而等待得到内存的作业。我们需要有一定的方法和策略为这部分作业分配空间。因此处理机调度需要分级。

一般来说,处理机调度可分为4级:

(1) 作业调度: 又称宏观调度,或高级调度。

(2) 交换调度:又称中级调度。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或处于内存就绪状态或等待状态的进程交换到外存交换区。交换调度主要涉及到内存管理与扩充。

(3) 进程调度:又称微观调度或低级调度。其主要任务是按照某种策略和方法选取一个处于就绪状态的进程占用处理机。在确立了占用处理机的进程之后,系统必须进行进程上下文切换以建立与占用处理机进程相适应的执行环境。

(4) 线程调度:进程中相关堆栈和控制表等的调度。

2.试述作业调度的主要功能。 P88

答: 作业调度的主要功能是: (1)记录系统中各作业的状况。

(2)按一定的原则对外存输入井上的大量后备作业进行选择。

(3)给选出的作业分配内存、输入输出设备等必要的资源,并建立相应进程,使该作业的相关进程获得竞争处理机的权利。

(4)当作业执行完毕时,还负责回收系统资源。 3.作业调度的性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度策略的优劣吗?

答:调度的性能评价标准:

(1)对所有作业应该是公平合理的; (2)应使设备有高的利用率; (3)每天执行尽可能多的作业; (4)有快的响应时间。

不能。对于批处理系统,由于主要用于计算,因而对于作业的周转时间要求较高。从而作业的平均周转时间或平均带权周转时间被用来衡量调度程序的优劣。但对于分时系统来说,平均响应时间又被用来衡量调度策略的优劣。对于分时系统,除了要保证系统吞吐量大、资源利用率高之外,还应保证用户能够容忍

的响应时间。因此,在分时系统中,仅仅用周转时间或带权周转时间来衡量调度性能是不够的。

对于实时系统,衡量调度算法优劣的主要标志则是满足用户要求的时限时间。

4.进程调度的功能有哪些? P91 答:进程调度的功能有:

(1)记录和保存系统中所有进程的执行情况; (2)选择占有处理机的进程; (3)进行进程上下文切换。

5.进程调度的时机有哪几种? P92 答:进程调度的时机有:

(1)正在执行的进程执行完毕。这时如果不选择新的就绪进程执行,将浪费处理机资源。

(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。 (3)执行中进程调用了P原语操作,从而因资源不足而被阻塞:或调用了V原语操作激活了等待资源的进程队列。

(4)执行中进程提出I/O请求后被阻塞。 (5)在分时系统中时间片已经用完。

(6)在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而调度选择一新的用户进程执行。

(7)在CPU执行方式是可剥夺时,还有:就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进 程调度。

6.假设有4道作业,它们的提交时间及执行时间由下表给出:

作业号 提交时刻(时) 执行时间(小时) 1 10:00 2 2 10:20 1 3 10:40 0.5 4 10:50 0.3 计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。

答: (1)先来先服务调度: 调度顺序: 1、2、3、4 1 Ts1:10:00 Te1:12:00 Tr1:2 Tw1: 0 2 Ts2:10:20 Te2:13:00 Tr2:1 Tw2: 1.7 3 Ts3:10:40 Te3:13:30 Tr3: 0.5 Tw3:2.3 4 Ts4:10:50 Te4:13:50 Tr4: 0.3 Tw4:2.7

T=0.25*(2+2.7+2.8+3)=2.625(h)

W=0.25*(4+0+1.7/1+2.3/0.5+2.7/0.3)=4.825

(2)最短作业优先调度:

调度顺序: 4、3、2、1

1 Ts4: 10:50 Te4:11:10 Tr4:0.3 Tw4:0 2 Ts3:10:40 Te3:11:40 Tr3: 0.5 Tw3:0.5 3 Ts2;10:20 Te2:12:40 Tr2: 1 Tw2: 1.3 4 Ts1:10:00 Te1: 14:40 Tr1:2 Tw1:2.7 T:0.25*(0.3+1+2.3+4.7)= 2.075(h) W: 0.25*(4+0+1+1.3+2.7/2)=1.9125

以上是4个作业提交完后的调度情况(提交过程中运行其它作业)。如果边提交边调度,又如何? 第五章

1.存储管理的主要功能是什么? P109 5.1节 答:存储管理的主要功能包括以下几点:

(1)在硬件的支持下完成统一管理内存和外存之间数据和程序段自动交换的虚拟存储。

(2)将多个虚存的一维线性空间或多维线性空间变换到内存的唯一的一维物理线性地址。

(3)控制内外存之间的数据传输。 (4)实现内存的分配和回收。

(5)实现内存信息的共享与保护。

2. 什么是虚拟存储器?其特点是什么? P110

答:由进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。虚拟存储器不考虑物理存储器的大小和信息存放的实际位置,只规定每个进程中相互关联信息的相对位置。每个进程都拥有自己的虚拟存储器,且虚拟存储器的容量是由计算机的地址结构和寻址方式来确定。

实现虚拟存储器要求有相应的地址变换机构,以便把指令的虚拟地址变换为实际物理地址;另外,由于内存空间较小,进程只有部分内容存放于内存中,待执行时根据需要再调入内存。

3.实现地址重定位的方法有哪几类? P111

答:实现地址重定位的方法有两种:静态地址重定位和动态地址重定位。

(1) 静态地址重定位是在虚空间程序执行之前由装配程序完成地址映射工作。静态重定位的优点是不需要硬件支持,但是用静态地址重定位方法进行地址变换无法实现虚拟存储器。静 态重定位的另一个缺点是必须占用连续的内存空间和难以做到程序和数据的共享。

(2)动态地址重定位是在程序执行过程中,在CPU访问内存之前由硬件地址变换机构将要访问的程序或数据地址转换成内存地址。动态地址重定位的主要优点有:

① 可以对内存进行非连续分配。

② 动态重定位提供了实现虚拟存储器的基础。 ③ 动态重定位有利于程序段的共享。

4.常用的内存信息保护方法有哪几种?它们各自的特点是什么? P113

答:常用的内存保护方法有硬件法、软件法和软硬件结合保护法三种。

上下界保护法是一种常用的硬件保护法。上下界存储保护技术要求为每个进程设置对上下界寄存器。上下界寄存器中装有被保护程序和数据段的起始地址和终止地址。在程序执行过程 中,在对内存进行访问操作时首先进行访问地址合法性检查,即检查经过重定位之后的内存地址是否在上、下界寄存器所规定的范围之内。若在规定的范围之内,则访问是合法的;否则是非法的,并产生访问越界中断。

保护键法也是一种常用的软件存储保护法。保护键法为每—个被保护存储块分配一个单独的保护键。在程序状态字中则设置相应的保护键开关字段,对不同的进程赋予不同的开关代码 以和被保护的存储块中的保护键匹配。保护键可以设置成对读写同时保护的或只对读写进行单项保护的。如果开关字段与保护键匹配或存储块未受到保护,则访问该存储块是允许的,否则将产生访问出错中断。

另外一种常用的硬软件内存保护方式是:界限存储器与CPU的用户态,核心态相结合的保护方式。在这种保护方式下,用户态进程只能访问那些在界限寄存器所规定范围内的内存部分,而核心态进程则可以访问整个内存地址空间。 6.动态分区式管理的常用内存分配算法有哪几种?比较它们各自的优缺点。 P118 答:动态分区式管理的常用内存分配算法有最先适应法(FF)、最佳适应法(BF)和最坏适应法(WF)。

优缺点比较:

① 从搜索速度上看最先适应法最佳,最佳适应法和最坏适应法都要求把不同大小的空闲区按大小进行排队。

② 从回收过程来看,最先适应法也是最佳,因为最佳适应法和最坏适应法都必须重新调整空闲区的位置。

③ 最佳适应法找到的空闲区是最佳的,但是会造成内存碎片较多,影响了内存利用率,而最坏适应法的内存碎片最少,但是对内存的请求较多的进程有可能分配失败。

总之,三种算法各有所长,针对不同的请求队列,它们的效率和功能是不一样的。

8.简述什么是覆盖?什么是交换?覆盖和交换的区别是什么? P121

答:将程序划分为若干个功能上相对独立的程序段,按照程序的逻辑结构让那些不会同时执行的程序段共享同一块内存区的内存扩充技术就是覆盖。交换是指先将内存某部分的程序或数据写入外存交换区,再从外存交换区中调入指定的程序或数据到内存中来,并让其执行的一种内存扩充技术。与覆盖技术相比,交换不要求程序员给出程序段之间的覆盖结构,而且,交换主要是在进程或作业之间进行,而覆盖则主要在同一个作业或同一个进程内进行。另外,覆盖只能覆盖那些与覆盖程序段无关的程序段。

9.什么是页式管理?静态页式管理可以实现虚存吗? P123

答:页式管理就是把各进程的虚拟空间划分为若干长度相等的页,把指令按页面大小划分后存放在内存中执行或只在内存中存放那些经常被执行或即将被执行的页,而那些不被经常执行以及在近期内不可能被执行的页则存放于外存中,按一定规则调入的一种内存管理方式。