四、 第四章
- 为什么要配置层次式存储器?建立层次存储器结构主要为了缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾,另一方面又要解决主存储器容量小,存不下更多的程序和数据的难题,当前计算机系统中,广泛采用了多级结构的存储器系统。它的应用是建立在程序运行的局部性原理之上的。
- 为什么要引入动态重定位?为了方便对内存进行紧凑,使若干程序从内存某处移至另一处时,不需要对程序进行任何修改。实现方法:为使地址的转换不会影响到指令的执行速度,必须有硬件地址变换机构的支持,在系统中设置一个重定位寄存器,用他来存放程序在内存中的起始地址,在执行时,真正访问的是相对地址与重定位寄存器中的地址相加而形成的。
- 什么是基于顺序搜索的动态分析算法?他可以分为哪几种?指的是依次搜索空闲分区链上的空闲分区,去寻找一个其大小能满足要求的分区。主要包含以下四种:
(1)首次适应算法(FF):FF要求空闲分区链以地址递增的顺序链接,从链首开始查找,直至找到第一个满足要求的分区,然后按照作业的大小,从该分区中划出一片内存空间。若从链首到链尾都找不到一个空闲分区,则分配失败。
(2)循环首次适应算法(NF):为避免低址部分留下许多小的空闲分区,以及减少查找可用空闲分区的开销,NF在查找时不再每次都从链首开始,而是从上一次找到的空闲分区的下一个空闲分区开始。为实现此算法,应该设置一起始查找指针,用于指示下一次起始查找的位置。该算法能使内存中的空闲分区分布的更加均匀,从而减少了查找空闲分区的开销,但这样会缺乏大的空闲分区。
(3)最佳适应算法(BF):所谓最佳是指,每次分配内存时,总是把能满足要求,又是最小的空闲分区分配给作业。为加速查找,该算法要求将空闲分区按从小到大的顺序排列。孤立的看,最佳适应算法似乎是最佳的,然而宏观上却不一定。因为每次分配后所切割下来的剩余部分总是最小的,这样会在存储器中留下许多难以利用的碎片。
(4)最坏适应算法(WF):与BF算法相比,其策略正好相反,在扫描整个空闲分区时,总是挑选一个最大的空闲分区,从中切割一块空间分配给作业,这样可避免小碎片的产生。 - 什么是基于所应搜索的动态分区分配算法?基于顺序搜索的动态分区分配算法,比较适用于不太大的系统。当系统很大时,系统中的内存分区可能会很多,相应的空闲分区链就可能很长,这时采用顺序搜索分区方法可能会很慢。为了提高搜索空闲分区的速度,在大、中型系统中往往会采用基于索引搜索的动态分区分配算法。它分为三种:①快速适应算法②伙伴系统③哈希算法。
- 分区存储管理中常用那些策略?连续分配管理方式和非连续分配管理方式
- 为什么引入对换,对换有哪几种类型?在内存中的某些进程由于某事件尚未发生而被阻塞运行,但他却占用了大量的内存空间,甚至有时可能出现在内存中所有进程都被阻塞。对换是指把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到内存上,以腾出足够的内存空间,再把已具备运行条件的进程或者进程所需要的程序和数据换入内存。
对换有两种类型:整体对换和页面对换。 - 基于离散分配所用的基本类型不同,可以把离散分配分为哪几种?分页存储管理方式、分段存储管理方式、段页式存储管理方式。
- 什么是页面,什么是物理块,页面的大小怎么确定?将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。 物理块是记录介质上的存储数据的物理区域。因此,页面的大小应选得适中,通常页面的大小是2的幂。
- 什么是页表?页表的作用是什么?在分页系统中,允许将进程的各个页离散地存储在内存的任一物理块中,为保证进程仍然能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表。
页表的作用是实现从页号到物理块号的地址映射。 - 为了实现分页存储管理需要哪些硬件支持?基本的地址变换机构,具有快表的地址变换机构
- 在分页系统中是如何实现地址变换的?利用地址变换机构实现从逻辑地址到物理地址的转变换,通过页表来实现从页号到物理块号的变换,将逻辑地址中的页号转换为内存中的物理块号。
- 具有快表时是如何实现地址变换的?在CPU给出有效地址后,由地址变换机构自动地将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号进行比较,若其中有与此所对应的物理块号,便表示索要访问的页表项在快表中。于是,可直接从快表中独处改也所对应的物理块号,并送到物理地址寄存器中。如在快表中未找到对应的页表项,则还需再访问内存中的页表,找到后,把从页表项中独处的物理块号送往地址寄存器;同时,再将此页表项存入快表的一个寄存器单元中,亦即,重新修改快表。但如果联想寄存器已满,则OS必须找到一个老的且已被认为是不再需要的页表项,将它换出。
- 详细说明引入分段存储管理是为了满足用户那几点需要?方便编程、信息共享、信息保护、动态增长、动态链接。
- 分页和分段存储管理有何区别?
(1)页是信息的物理单位,分页是为了实现离散分配方式,以削减内存的外部零头,提高内存的利用率。段则是信息的逻辑单位,它含有一组相对完整的信息。
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机械硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对原程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。
五、 第五章 - 什么是程序运行时的时间局限性和空间局限性?
时间局限性:如果程序中的某条指令被执行,则不久之后该指令可能再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作。
空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围之内,其典型情况便是程序的顺序执行。 - 虚拟存储器有哪些特征?其中最本质的特征是什么?
多次性、对换性、虚拟性。虚拟性。 - 实现虚拟存储器需要哪些硬件支持?
分页请求系统:请求分页的页表机制、缺页中断机构、地址变换机构。
请求分段系统:请求分段的段表机制、缺段中断机构、地址变换机构。 - 缺页中断机构和一般的中断有什么不同:(1)在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完后,才检查是否有中断请求到达。然而,缺页中断是在指令执行期间,若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,一边能及时将所缺之页面调入内存。(2)一条指令在执行期间可能产生多次缺页中断。
- 试说明请求分页系统中的地址变换过程。在进行地址变换时,首先检索快表,试图从中找出所要访问的页。若找到,便修改页表项中的访问位。对于写指令,还需将修改位置成“1”,表示该页再调入内存后已被修改。然后利用页表项中给出的物理块号和页内地址形成物理地址。地址变换过程到此结束。
- 在请求分页系统中,常采用哪几种页面置换算法?最佳置换算法和先进先出置换算法,最近最久未使用(LRU)置换算法,Clock置换算法,最少使用置换算法,页面缓冲算法等。
- 实现最近最久未使用LRU算法所需的硬件支持是什么?需要寄存器和栈等硬件支持。寄存器用于记录某进程在内存中各页的使用情况,栈用于保存当前使用的各个页面的页面号。
- 影响页面换进换出效率的若干因素是什么?(1)页面置换算法:影响页面换进换出效率最重要的因素,直接影响进程在运行过程中的缺页率,影响页面换进换出的开销。
(2)写回磁盘的频率:如果是采取每个页面换出时,就将它写回磁盘的策略,这意味着每换出一个页面,便需要启动一次磁盘。
但如果在系统中建立了一个已修好换出页面链表,对每一个要被换出的页面(已修改),系统可暂不把它们写回磁盘,而是将它们挂在已修改换出页面链表上,仅当被换出页面数目达到一定值时,再将它们一起写回到磁盘上,这样就显著地减少了磁盘I/O的操作次数。
(3)读入内存的频率:在设置了已修改换出页面链表后,在该链表上就暂时有一批装有数据的页面,如果需要再次访问这些页面时,就不需从外存上调入,而直接从已修改换出页面链表获取,这样也可以减少将页面从磁盘读入内存的频率,减少页面换进的开销。或者说,只需花费很小的开销,便可使这些页面,又回到该进程的驻留集中。 - 什么是抖动?产生抖动的原因是什么?抖动就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,使得系统把大部分时间用在了页面的调进换出上,而几乎不能完成任何有效的的工作,我们称这种现象为“抖动”。
产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于“抖动”状态。 - 何谓工作集?它是基于什么原理确定的?工作集(或驻留集)是指在某时间间隔内,进程要访问的页面集合。经常被使用的页面需要在工作集中,而长期不被使用的页面要从工作集中被丢弃。为了防止系统出现抖动现象,需要选择合适的工作集大小。
工作集模型的原理是:
让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。如果所有工作集之和增加以至于超过了可用物理块的总数,那么操作系统会暂停一个进程,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象。正确选择工作集大小,对存储器的利用率和系统吞吐量的提高,都将产生重要影响。 - 当前可以利用哪几种方法来防止“抖动”?(1)采取局部置换策略(2)把工作集算法融入到处理机调度中(3)利用“L=S”准则调节缺页率(4)选择暂停的进程
- 为了实现请求分段式存储管理,应在系统中增加配置哪些硬件结构?请求分段的段表机制、缺段中断机制和地址变换机构。
- 如何实现共享分段的分配和回收?
①共享段的分配:在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,当又有其它进程需要调用该共享段时,无须再为该段分配内存。
②共享段的回收:当共享此段的某进程不再需要该段时,若无其他进程使用该段,则由系统回收该共享段的物理内存,否则只是取消调用者进程在共享段表中的有关记录。
六、 第六章 - 试说明I/O系统的基本功能。
隐藏物理设备的细节、与设备的无关性、提高处理机和I/O设备的利用率、对I/O设备进行控制、确保对设备的正确共享、错误处理 - 简要说明I/O软件的4个层次的基本功能。
中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后恢复现场,并返回到被中断的进程
设备驱动程序:与硬件直接有关,用来具体实现系统对设备发出的操作指令,驱动I/O设备工作
设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护,以及设备分配与释放等。
用户层I/O软件:用于实现用户与I/O设备交互 - I/O系统接口与软件/硬件(RW/HW)接口分别是什么接口?
I/O系统接口是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命令,以方便高层对设备的使用;
软件/硬件(RW/HW)接口的上面是中断处理程序和用于不同设备的设备驱动程序,它的下面是各种设备的控制器。 - 与设备无关性的基本含义是什么?为什么要设置该层?
为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称设备无关性。
基本含义:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备两概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。 - 试说明设备控制器的组成
设置控制器与处理机的接口;设备控制器与设备的接口;I/O逻辑。 - 什么是内存映像I/O?它是如何实现的?
驱动程序将抽象I/O命令转换出的一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些命令,具体实施对I/O设备的控制。
利用特定的I/O指令、内存映像I/O。 - 为什么说中断是OS赖以生存的基础?
中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。
另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU和I/O设备并执行,也必需有中断的支持。中断处理程序是整个I/O系统中最低的一层。 - 简要说明中断处理程序对中断进行处理的几个步骤。
1、测定是否有未响应的中断信号
2、保护被中断进程的CPU环境
3、转入相应的设备处理程序
4、中断处理
5、恢复CPU的现场并退出中断 - 简要说明设备驱动程序的处理过程可分为哪几步。
(1)将抽象要求转换为具体要求;
(2)对服务请求进行校验;
(3)检查设备的状态;
(4)传送必要的参数。
(5)启动I/O设备 - 有哪几种I/O控制方式?各适用于何种场合?
程序I/O方式:适用于早期的计算机系统中,并且是无中断的计算机系统;
中断驱动I/O控制方式:普遍用于现代的计算机系统中;
DMA I/O控制方式:适用于I/O设备为块设备时在和主机进行数据交换的一种I/O控制方式;
I/O通道控制方式:当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式,但此时要求系统必须配置相应的通道及通道控制器。 - 何谓设备虚拟?实现设备虚拟式所依赖的关键技术是什么?
通过虚拟技术可将一台独占设备变换成若干台逻辑设备,供若干个用户(进程)同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。其实现所依赖的关键技术是SPOOLING技术。 - 引入缓冲的主要原因是什么?
缓和CPU与I/0设备之间速度不匹配的矛盾;减少对CPU的中断频率:放宽对中断响应时间的限制:解决数据力度不匹配的问题;提高CPU和I/0设备之间的并行性。 - 在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
在单缓冲情况下,设备的输入操作和CPU的处理操作可以并行 - 为什么在双缓冲情况下,系统对一块数据的处理时间为max(C,T)?
在双缓冲区中,不仅设备的输入操作和CPU的处理操作可以并行,设备的输入操作和数据的传送操作也可以并行 - 磁盘访问时间由哪几部分组成?每部分时间应如何计算?
磁盘访问时间由寻道时间Ts、旋转延迟时间Tr、传输时间Tt三部分组成。 - 目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?
先来先服务、最短寻道时优先级扫描等算法。
(1)先来先服务算法优先考虑进程请求访问磁盘的先后次序;
(2)最短寻道时间优先算法优先考虑要求访问的磁道与当前磁头所在磁道距离是否最近:
(3)扫描算法考虑欲访问的磁道与当前磁道间的距离,更优先考虑磁头当前的移动方向。