计算机操作系统编写_第1页
计算机操作系统编写_第2页
计算机操作系统编写_第3页
计算机操作系统编写_第4页
计算机操作系统编写_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三、内存管理 (一)内存管理基础1内存管理概念内存是指处理器可以直接存取指令和数据的存储器,内存和处理器都是计算机系统的一种重要资源。在多道程序设计技术出现以后,对存储管理提出了更高的要求。内存管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及从逻辑上扩充存储器。 在操作系统中,将一个用户的源程序变为一个可在内存中执行的进程,通常要经过以下几步:1)编译。由编译程序将用户源代码编译成若干个目标模块;2)链接。由链接程序将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的装入模块;3)装入。由装入程序将装入模块装入内存。(1)程序的

2、链接源程序经过编译后,可得到一组目标模块,这时需要利用系统中链接程序将这组目标模块链接在一起,形成装入模块。根据链接时间的不同,可以分成三种链接方式,即静态链接、装入时的动态链接和运行时的动态链接。1)静态链接。在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。静态链接方式需要解决两个问题:外部调用符号到相对地址的转换;相对地址到绝对地址的的转换;2)装入时的动态链接。在将目标模块装入内存时,采用边装入边链接的方式。该方式具有以下优点:便于目标模块的修改和更新;便于实现对目标模块的共享。3)运行时的动态链接。事先不对各个模块进行链接,而是在程序执行中当需要

3、该模块时,再将该模块调入内存,并进行链接。采用这种方式,凡在执行过程中没有用到的目标模块,都不会被调入内存,这样不仅可加快程序的装入过程,而且可以节省大量的内存空间。(2)程序的装入程序的装入方式有三种,它们分别是绝对装入方式、可重定位的装入方式以及动态装入方式,现介绍如下。1)绝对装入方式在编译时,如果知道程序将驻留在内存的什么位置,那么编译程序将产生包含有内存绝对地址(也称实际地址)的目标代码。这样装入程序就会按照目标代码中的地址,将程序和数据装入到内存的实际位置。程序中使用的绝对地址,既可以在编译或汇编时给出,也可由程序员直接赋予。但因为需要程序员熟悉当前内存的使用情况,所以要求较高。2

4、)可重定位的装入方式在多道程序的环境下,所得到的目标模块的起始地址通常是从0开始的,程序中的其它地址都是相对于起始地址进行计算的。此时应采用重定位装入方式,根据内存的当前情况,将装入模块装入到内存的适当位置。由于装入模块中的所有地址与实际装入内存的物理地址不同,所以需要进行地址变换(在原先相对地址的基础上加上内存装入位置的地址)。如下图所示 1000 2500 0Load 1,2500365110001000012500Load 1,2500365图3-1作业装入内存的情况通常,把在装入程序时对目标模块中的指令和数据的地址变换过程称为重定位。又因为地址变换是在装入时一次完成的,所以称为静态重定

5、位。3)动态运行时的装入方式动态运行时的装入程序,在把装入模块装入内存后,并不立即将其中的相对地址转换为绝对地址,而是把地址转换推迟到程序执行前再进行。因此,装入内存后的所有地址都仍是相对地址。 (3)逻辑地址与物理地址空间;由编译程序所产生的所有目标模块中,使用的都是相对地址,即其起始地址为0,每个模块中的地址都是相对于起始地址计算的。而物理地址是指内存中的实际的地址空间。(4)内存保护保证进入内存的各道作业都在自己的存储空间内运行,互不干扰。既要防止一道作业由于发生错误而破坏其他作业,也要防土破坏系统程序。这种保护一般由硬件和软件配合完成2交换与覆盖交换技术就是把暂时不用的某个程序及数据部

6、分(或全部)从内存移到外存中去,以便腾出必要的内存空间,或把指定的程序或数据从外存读到相应的内存中,并将控制权交给它,使其在系统上运行的一种内存扩充技术。覆盖技术,就是把一个大的程序划分为一系列覆盖,每个覆盖就是一个相对独立的程序单位,把程序执行时并不要求同时装入内存的覆盖组成一组,称为覆盖段,这个覆盖段分配到同一个存储区域,这个存储区域称为覆盖区,它与覆盖段一一对应。交换技术不要求程序员给出程序段之间的覆盖结构,而且交换主要是在进程或作业之间进行;而覆盖则主要在同一个作业或进程中进行。另外,覆盖只能覆盖与覆盖程序段无关的程序段。3连续分配管理方式 连续分配方式,是指为用户程序分配一个连续的内

7、存空间。可分为单一连续分配方式和分区分配方式两大类。 (1)单一连续分配这是一种最简单的存储管理方式,只能用于单用户、单任务的操作系统。采用该方式时,可把内存分为系统区和用户区两部分,系统区位于内存的低址部分,供OS使用;用户区是除系统区以外的全部内存空间,是供用户程序使用的部分。单一连续分配方式的主要特点是管理简单,只需要很少的软件和硬仍支持。且便于用户了解和使用。但采用这种存储分配方式,内存中只能装入一道作业运行,从而导致各类资源的利用率都不高。(2)分区分配分区式分配是能满足多道程序设计需要的一种最简单的存储管理技术。通常,按照分区的划分方式,它又可分为固定分区分配、动态分区分配以及可重

8、定位的分区分配等三种方式。1)固定分区分配固定式分区法是一种最简单的可运行多道程序的存储管理方式。它将用户的内存空间划分为若干个固定大小的区域,在每个分区中只装入一道作业,这样,用户空间被划分为几个分区,便允许有几道作业并发运行。当有一个空闲分区时,便可以再从外存的后备作业队列中选择个适当大小的作业装入该分区,当该作业结束时,又可再从后备作业队列中找出另一作业调入该分区。可用下述两种方法将内存的用户空间划分为若干个固定大小的分区:a)分区大小相等,就是使所有的内存分区大小相等。其缺点是缺乏灵活性,即当程序太小时,会造成内存空间的浪费;当程序太大时,一个分区又不足以装入该程序,致使该程序无法运行

9、。尽管如此,这种划分方式仍被用于利用一台计算机去控制多个相同对象的场合,因为这些对象所需的内存空间是大小相等的。例如,炉温群控系统,就是利用一台计算机去控制多台相同的冶炼炉。 b)分区大小不等。为了克服分区大小相等而缺乏灵活性的这个缺点,把内存区划分成含有多个较小的分区、适量的中等分区及少量的大分区。这样,便可根据程序的大小为之分配适当的分区。2)动态分区分配动态分区分配是在作业装入和处理过程中建立的分区,要求分区的容量能正好适应作业的大小。在作业进入系统前,根据作业的大小来申请所需存储容量,然后由系统实施分配。为了实现分区分配,系统中必须设置相应的数据结构,常用的有两种形式:空闲分区表和空闲

10、分区链。为把一个新作业装入内存,须按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。目前常用的有以下三种分配算法。a)首次适应算法。以空闲分区链作为数据结构,在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。如果从链首直至链尾都不能找到满足要求的分区,则此次内存分配失败。b)循环首次适应算法。该算法是由首次适应算法演变而成的。在为进程分配内存空间时,不再是每次都从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找。这种分配方式的优点是,使得内存中的空闲分区分布的更均匀

11、,减少查找空闲分区的开销。c)最佳适应算法。该算法要求将所有的空闲分区按其容量从小到大的顺序形成一个空闲分区链,这样,从链首开始查找时,第一次找到的合适分区,就是既能满足要求又是最小的空闲分区。3)可重定位分区分配在连续分配方式中,必须把一个作业装入连续的内存空间,时间长了,内存中会出现很多内存碎片,而重定位式分区分配是解决碎片问题的简单而有效的办法。共基本思想是移动内存中的所有作业使之成为一个连续区域,继而留下一个较大的空白内存区。这种过程我们称之为“拼接”或“紧凑”。由于经过紧凑后的某些用户程序在内存中的位置发生了变化,所以还需要对程序和数据的地址进行修改,这叫做重定位。4非连续分配管理方

12、式 连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但需要为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。 (1)分页管理方式所谓分页管理方式,是允许将一个进程直接分散地装入到许多不相邻接的分区中,分配的基本单位是页。1)页面与页表页面。分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面,并为各页加以编号。相应地,把内存空间也分成与页面相同大小的若干个存储块,称为(物理)块。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块

13、中。一个页的地址分成两部分:页号和位移量,如下图31页号P位移量W12110 页表。在分页系统中,为了能在内存中找到每个页面所对应的物理块。系统又为每个进程建立了一张页面映像表,简称页表。在进程地址空间内的所有页,依次在页表中有页表项,其中记录了相应页在内存中对应的物理号。如图3-2所示0页1页3页2页4页用户程序页表页号块号021326401324内存567图3-2 页表的作用2)地址变换机构为了能将用户地址空间中的逻辑地址变换为内存空间个的物理地址,在系统中必须设置地址变换机构。由于页内地址和物理地址是一一对应的,因此,地址变换任务就是借助于页表来完成的。基本地址变换。在系统中只设置一个页

14、表寄存器,用来存放页表在内存中的始址和页表的长度。当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将地址分为页号和页内地址两部分,再以页号为索引去检索页表。在检索前先将页号与页表长度相比较,判断是否有效。然后将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,进而得到该页的物理块号。3)具有快表的地址变换机构为了提高地址变换速度,可在地址变换结构中,增设一个具有并行查寻能力的特殊高速缓冲寄存器,称为快表。地址转换方式变为,将逻辑地址先在快表中查询转换,如失败,再访问内存中的页表。访问结束后,将该表项存入快表,以备下次查询。4)两级页表和多级页表现代的大多数计算机系统

15、,都支持非常大的逻辑地址空间(232一264)。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。解决的方法有二级页表和多级页表。对于要求连续的内存空间存放页表的问题,可利用将页表进行分页,并离散地相各个页而分别存放在不同的物理块中的办法来加以解决,同样也要为离散分配的页表再建立一张页表,称为外层页表,在每个页表项中记录了页表页面的物理块号。为了地址变换实现上的方便起见,在地址变换机构中同样需要增设一个外层页表寄存器,用于存放外层页表的始址,并利用逻辑地址中的外层页号,作为外层页表的索引,从中找到指向页表分页的地址。多级页表如果对外层页表再进行分页,并设置更高的页表来记录外层页表分页的

16、存储情况。就构成了三级或多级页表。 (2)分段管理方式所谓分段管理方式,是允许将一个进程直接分散地装入到许多不相邻接的分区中,分配的基本单位是段。 1)分段系统的基本原理分段。在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。每段可用一个段号来代替段名,都是从0开始编址,并采用一段连续的地址空间。分段系统的的地址具有如下结构:31段号段内地址16150图3-3分段地址结构段表。像分页系统那样,在系统中为每个进程建立一张段映射表,简称“段表”。每个段在表中占用一个表项,其中记录了该段在内存中的起始地址和段的长度。段号=1段号=3段号=2作业空间段表段长基址30k25

17、k20k40k130k80K内存空间30k20k15k图3-4利用段实现地址映射030k015k020k4080120150地址变换机构。为了实现从进程的逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段表始址和段表长度。在进行地址交换时,系统将逻辑地址中的段号与段表长度进行比较。若段号大于段表长度,表示段号太大,访问越界,于是产生越界中断信号;若末越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段内存的起始地址,然后,再检查段内地址是否超过该段的段长。若超过,同样发出越界中断信号;若未越界,则将该段的基址与段内地址相加,即可得到要访问的内存物理地址。

18、(3)段页式管理方式分页与分段存储管理方式各有优缺点,所以将二者结合起来形成段页式存储系统,它既可以具有分段系统的便于实现、分段可共享、易于保护、可动态链接等优点,又可以像分页系统那样很好的解决内存的外部碎片问题。基本原理。段页式系统先将用户程序分成若干个段,再把每个段分成若干个页,并为每个段取一个段名。如图3-4所示。0k4k8k12k主程序段0k4k8k数据段段号(S)段内页号(P)段内地址(W)图3-5 作业地址空间和地址结构 地址变换过程。在段页式系统中,为了便于实现地址变换,须设置一个段表寄存器,其中存放段表始址和段长。进行地址转换时,首先利用段号S,将它与段长TL进行比较。若S&l

19、t;TL,表示未越界,于是利用段表始址和段号求出该段所对应的段表项在段表中的位置,从中得到该段的页表地址,并利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再利用块号b和页内地址来构成物理地址。(二)虚拟内存管理1虚拟内存基本概念 基于局部性原形,应用程序在运行之前,没有必要全部装入内存,仅需将那些当前需要运行的部分页面或段先装入内存便可运行,其余部分暂留在磁盘上。运行时,如其所要访问的页(段)已调入内存,便可继续执行下去;如未调入内存(称为缺页或缺段),此时程序利用操作系统所提供的请求调页(段)功能,将它们调入内存,以便进程能继续执行下去。如果此时内存已满,

20、无法再装入新的页(段),则还须利用页(段)的置换功能,将内存中暂时不用的页(段)调至硬盘上,腾出足够的内存空间后,再将要访问的页(段)调入内存,使程序继续执行下去。这样,使可使一个大的用户程序能在较小的内存空间中运行,也可在内存中同时装入更多的进程使它们并发执行。从用户角度看,该系统所具有的内存空间 ,将比实际内存容量大得多,所以把这样的存储器系统称为虚拟存储器。2请求分页管理方式。在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。(1)硬件支持。主要的硬件支持有: 1)请求分页的页表机制。它是在纯分页的页表机制上增加若干项形成的数据结构。其基本作用是将程序地址中的逻

21、辑地址转换成内存中的物理地址。如图3-4所示页号物理块号状态位访问字段修改位外存地址图3-6扩充后的页表项2)缺页中断机构。即每当用户程序要访问的页面尚未调入内存时,就产生缺页中断,请求操作系统根据该页在外存的地址把它调入内存。缺页中断是一个比较特殊的中断,它与一般的中断相比,有着明显的区别,主要表现如下:在指令的执行期间产生和处理缺页中断;一条指令可以产生多个缺页中断。3)地址变换机构。它同样是从分页地址变换机构的基础上发展形成的。(2)实现请求分页的软件。这里包括有用于实现请求调页的软件和实现页面置换的软件。它们在硬件的支持下将程序运行时所需的页面调入内存,再将内存中暂时不用的页面从内存置

22、换到磁盘上。3页面置换算法页面置换算法是用来选择换出页面的算法。页面置换算法的优劣直接影响到系统的效率。(1)最置换佳算法最佳算法是从内存中选择永远不再需要的页面或在最长的时间以后才需要访问的页面予以淘汰。实际上,这种算法无法实现,因为页面访问的未来顺序是很难精确预测的。但可以利用该算法评价其他算法的优劣。(2)先进先出算法(FIFO)先进先出算法总是选择在内存中驻留时间最长的页面予以沏汰,即先进入内存的页面先推出内存。这种方法的出发点是最早调入主存的页面,其不再使用的可能计会大一些。该算法对只有按线性顺序访问的程序比较合适,而对其他情况则效率不高。(3)最近最久未使用算法(LRU)该算法选择

23、最近一段时间内最长时间没有被访问过的页面予以淘汰。这种算法的主要出发点是,如果某个页由被访问过了,则它可能马上还要被访问到,或者反过来说,如果某页面很长时间未被访问,则它在最近一段时间也不会被访问。(4)时钟置换算法。也称为最近末使用算法,它是LRU和FIFO的折衷。该算法要求为每页设置个访问位,并将内存中的所有页链接成一个循环队列。当某页被访问时,系统将其访问位设置为l。置换时采用一个指针,从当前的指针位置开始在、按序检查各页,若访问位为0则选择该页换出,若访问位为1则将其设置为0,最后指针停留在被置换页的下页上。4页面分配策略1)固定分配局部置换。采用这种策略时,为每一个进程分配固定数量的

24、物理块,在进程的整个运行期间进程拥有的物理块数不再改变。如果进程在运行中出现缺页,则只能从该进程的几个页面中选择一页换出,然后再调入该页,以保证分配给该进程的内存空间量不变。2)可变分配全局置换。采用这种策略时,先为系统中的每一个进程分配一定数量的物理块,操作系统本身也保持一个空闲物理块队列。当某个进程发生缺页时,由系统从空闲物理块队列小取出一个物理块分配给该进程,并将缺页装入其中。这样,凡产生缺页的进程都获得新的物理块。3)可变分配局部置换。采用这种策略时,为每一个进程分配一定数量的物理块,当某个进程发生缺页时,只允许从该进程的页面今选出一页换出,这样就不会影响其他进程的运行。如果某个进程在

25、运行过程中频繁地发生缺页中断,则系统再为该进程分配若干个物理块,直到进程的缺页率降低到到适当程度为;反之,若一个进程在运行过程中的缺页率特别低则系统可适当减少分配给该进程的物理块数。5抖动抖动现象。刚被淘汰出内存的页面,过后不久又要访问它,需要再次将其调入,而该页调入内存后不久又再次被淘汰出内存,然后又要访问它。如此反复,使得系统把大部分时间用在了页面的调进换出上,而几乎不能完成任何有效的工作,这种现象被称为抖动。工作集。指在某段时间间隔里,进程实际要访问的页面集合。虽然只要装入少数几页就可以启动程序运行,但为使程序能有效地运行,较少地产生缺页,就必须使程序的工作集全部在内存中,然而,由于我们

26、无法预知程序在不同时刻将访问哪些页面,因而只能像置换算法那样,利用程序过去某段时间内的行为,作为程序在将来某段时间内行为的近似。具体的说,便是把某进程在时间t的工作集记为w(t,),把变量称为工作集窗口尺寸。6请求分段管理方式这是在分段系统的基础上,增加了请求调段从分段置换功能后,所形成的段式虚拟存储系统。它允许只装入若干段(而非所杏的段)的用户程序和数据,即可启动运行。以后再通过调段功能和段的置换功能,将暂不运行的段调出,同时调入即将运行的段。置换是以段为单位进行的。为了实现请求分段,系统同样需要必要的破件支持。一般需要下列支持: 1)请求分段的段表机制。这是在纯分段的段表机制基础上增加若干

27、项而形成的。如图3-5所示段名段长段的基址存在位P增补位存取方式访问方式修改位图3-7 扩充后的段表项2)缺段中断机构。每当用户程序所要访问的段尚末调入内存时,产生一个缺段中断,请求操作系统将所缺的段调入内存。3)地址变换机构。请求分段系统的地址变换机构是在分段系统地址交换机构的基础上形成的。因为被访问的段并非全在内存,因而在地址变换时,如果发现所要访问的段不在内存时,必须先将所缺的段调入内存,并修改段表之后,才能再利用段表进行地址变换,为此,变换机制增加某些功能。如缺段中断的请求及处理等。7请求段页式管理方式 目前,有不少虚拟存储器是建立在段页式系统基础上的,通过增加请求页和页面置换功能而形

28、成了段页式虚拟存储器系统,而且把实现虚拟存储器所需支持的硬件集成在处理器芯片上。试题一、 单项选择题:140题,每小题2分,共80分。在每小题给出的四个选项中,请选出一项最符合题目要求的。1将作业地址空间中的逻辑地址转换为内存中的物理地址的过程称为 ( )。 A重定位 B逻辑变换 C地址转换 D进程创建2虚存的基础是( )。 A局部性理论 B程序执行时对内存访问不均匀 C指令局部性 D变量的连续访问3实现虚拟存储器的目的是 ( )。 A实现存储保护 B实现信息共享 C扩充辅存容量 D扩充主存容量4在地址映射方式中,静态重定位具有的特点是( )。 A可以把一个作业分配在一个不连续的存储区域中 B

29、可以实现不同作业主存信息的共享 C地址的变换通常是在装入时一次完成的 D很容易实现主存的扩充5在地址映射方式中,动态重定位具有的特点是( )。 A很难实现主存的扩充,可采用覆盖技术来实现 B地址在执行过程中是可以改变的 C很难实现不同作业主存信息的共享 D非常简单,任何计算机,任何操作系统都可以实现6可重定位内存分区分配目的为( )。 A解决碎片问题 B便于多作业共享内存 C回收空白区方便 D摆脱用户干预7实现虚存最主要的技术是( )。 A整体覆盖 B整体对换 C部分对换 D多道程序设计8动态重定位是在作业的( )中进行的。 A编译过程 B装入过程 C修改过程 D执行过程9在下面关于虚拟存储器

30、的叙述中,正确的是( )。 A要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存 B要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存 C要求程序运行前不必全部装入内存且在运行过程中必须一直驻留在内存 D要求程序运行前必须全部装入内存且在运行过程中不必一直驻留在内存10虚存的可行性的基础是( )。 A程序执行的离散性 B程序执行的顺序性 C程序执行的局部性 D程序执行的并发性11在存储管理中,采用覆盖与交换技术的目的是( )。 A减少程序占用的主存空间 B物理上扩充主存容量 C提高CPU效率 D代码在主存中共享12在内存分配的“最佳适应法”中,空闲块是按( )。 A始地址从

31、小到大排序 B始地址从大到小排序 C块的大小从小到大排序 D块的大小从大到小排序13下面最有可能使得地址空间成为大的空闲区的分配算法是( )。 A首次适应算法 B最佳适应法 C最坏适应法 D循环首次适应法14首次适应算法的空闲区是( )。 A按地址递增顺序连在一起 B始端指针指向最大空闲区 C按大小递增顺序连在一起 D寻找从最大空闲区开始15在可变分区存储管理中的拼接技术可以( )。 A集中空闲区 B增加主存容量 C缩短访问周期 D加速地址转换16在回收内存时可能出现下述情况:释放区只与插入点前一空闲分区F1相邻接,此时应( )。 A唤醒为回收区建立一分区表项,填上分区的大小和站址 B以F1分

32、区的表项作为新表项且不做任何改变 C以F1分区的表项作为新表项,修改新表项的大小 D以F1分区的表项作为新表项,同时修改新表项的大小和始址17在几种基本的放置策略中,空白区是按大小递增的顺序链接在一起的是( )策略。 A首次匹配 B最佳匹配 C最坏匹配 D以上三者18在以下存贮管理方案中,不适用于多道程序设计系统的是( ) 。 A单用户连续分配 B固定式分区分配 C可变式分区分配 D页式存贮管理19在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是( ) 。 A无上邻空闲区,也无下邻空闲区 B有上邻空闲区,但无下邻空闲区

33、 C有下邻空闲区,但无上邻空闲区 D有上邻空闲区,也有下邻空闲区20分区管理要求对每一个作业都分配( )的内存单元。 A地址连续 B若干地址不连续 C若干连续的帧 D若干不连续的帧21分区管理和分页管理的主要区别是( )。 A分区管理中的块比分页管理中的页要小 B分页管理有地址映射而分区管理没有 C分页管理有存储保护而分区管理没有 D分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。22在下列有关请求分页管理的叙述中,正确的是( )。 A程序和数据是在开始执行前一次性装入的 B产生缺页中段一定要淘汰一个页面 C一个被淘汰的页面一定要写回外存 D在页表中要有“状态位”和“修改位”等信

34、息23在请求分页系统中,页表中的访问字段是供( )参考的。 A页面置换 B内存分配 C页面换出 D页面调入24在请求分页存储管理中,若采用FIFO页面淘汰算法,则当进程分配到的页面数增加时,缺页中断的次数( )。 A减少 B增加 C无影响 D可能增加也可能减少 25下面哪种内存管理方法不能实现虚存( )? A动态页式管理 B静态页式管理 C分段存储管理 D段页式存储管理26在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1,2,3,4,1,2,5,1,2,3,4,5,6时,将产生( )次缺页中断? A7 B8 C9 D1027解决碎片问题,以

35、及使程序可浮动的最好的办法是采用( )技术。 A静态重定位 B动态重定位 C内存静态分配 D内存动态分配28页式虚拟存储管理的主要特点是( )。 A不要求将作业装入到主存的连续区域 B不要求将作业同时全部装入到主存的连续区域 C不要求进行缺页中断处理 D不要求进行页面置换29三种类型存储器的管理策略中,对页式系统或非页式系统没有多大区别的是( )。 A放置策略 B调入策略 C淘汰策略 D都一样30对于分页系统与分段系统,下列说法正确的是( )。 A两者都采用离散分配方式 B分页的目的是为了能更好地满足用户的需要 C段的大小固定且由系统确定 D分页的作业地址空间是二维的31能够装入内存任何位置的

36、代码程序必须是( ) A可重入的 B可重定位 C可动态链接 D可静态链接32虚存管理和实存管理的主要区别是( ) A虚存区分逻辑地址和物理地址,实存不分; B实存要求程序在内存必须连续,虚存不需要连续的内存; C实存要求程序必须全部装入内存才开始运行,虚存允许程序在执行的过程中逐步装入; D虚存以逻辑地址执行程序,实存以物理地址执行程序33程序动态链接的时刻是( ) A编译时 B装入时 C调用时 D紧凑时34下面哪种内存管理方法有利于程序的动态链接?( ) A分段存储管理 B分页存储管理 C可变分区分配 D固定分区分配35采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每

37、段的最大长度是( ) A32K B64K C128K D256K36如果一个程序为多个进程所共享,那么该程序的代码在执行的过程中不能被修改,即程序应该是( ) A可执行码 B可重入码 C可改变码 D可再现码37某段表的内容如下图所示,现执行某条指令Load 1, 2/154,逻辑地址2/154(其中段号为2,段内地址为154),它对应的物理地址为( ) A120K+2 B480K154 C30K+154 D2480K38分页系统中的页面是为( ) A用户所感知的 B操作系统所感知的 C编译系统所感知的 D连接装配程序所感知的39MSDOS的存贮管理采用了() A段式存贮管理 B段页式存贮管理

38、C单用户连续存贮管理 D固定式分区存贮管理40在页式系统中,页表应包含() A保护码 B页长 C修改位 D页帧号二、 综合应用题1某一存储管理系统采用可变分区分配方案,设当前内存的空白区表如下表所示。空白区号起始地址空白区容量状态15KB100KB可用2120KB20KB可用3310KB256KB可用41024KB48KB可用现有四个作业J1,J2,J3,J4,它们分别需要内存20KB、42KB、120KB、130KB的空间,若采用最先适应算法,以怎样的次序可将这四个作业都装入主存,并给出装入后的空白区表。2(10分)假定某页式管理系统,主存为64KB,分成16块,块号为0,1,2,3,4,1

39、5。设某作业有4页,其页号为0,1,2,3,被分别装入主存的2,4,1,6块。试问: (1)该作业的总长度是多少字节?(按十进制) (2)写出该作业每一页在主存中的起始地址。(3)若有多个逻辑地址0,100、l,50、2,0、3,60,试计算出相应的内存地址。(方括号内的第一个元素为页号,第二个元素为页内位移)3若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,3000,5012转化为相应的物理地址(注:此处块号即为页面号)。页号块号012323164在某段式存储管理系统中,有一作业的段表如下表所示,求逻辑地址0,50,1,60,2,9

40、0,3,20对应的主存地址(按十进制)(其中方括号中的第一个元素为段号,第二个元素为段内位移)段号段长主存起始地址状态01506000150850021201000013 1005假定某操作系统存储器采用页式存储管理,页的大小为64字节,并假定某一进程的代码段的长度为702个宇节,页表如图(a)所示。该进程在联想存储器中的页表如图b所示。页号页帧号0F01F12F23F34F45bF56F67F78F89F910F10页号页帧号0F01F12F23F34F4 a 现进程有如下的访问序列:其逻辑地址为八进制的105,217,567, 1120,2500。试问给定的这些地址能否进行转换?若能,请说

41、明地址转换过程及相应的物理地址。若不能,则说明理由。6有一计算机系统,内存容量为512K,辅存容量为2G,逻辑地址形式如下:段号段内地址29 20 19 0求其虚拟存储器的实际容量?7某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。试问:(1)逻辑地址的有效位是多少?(2)物理地址需要多少位?(3)假定某时刻系统用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5C和093C变换为物理地址。8(10分)在一个请求分页系统中,假如系统分配给一个作业的物理块数为3,并且此作业的页面执行顺序为2,3,2,1,5,2,4,5,3,2,5,2。试用FIFO和LR

42、U两种算法分别计算出程序访问过程中所发生的缺页次数。9某请求页式存储管理,允许用户编程空间为32个页面(每页1kB),主存为 16 kB。如有一用户程序有 10页长,且某时刻该用户页面映射表如图所示。页号物理块号081724310 如果分别遇有对以下三个虚地址:0AC5H、1AC5H、3AC5H处的操作,试计算并说明存储管理系统将做如何处理。10某请求页式管理系统,用户编程空间有40个页面,每个200H个字节,假定某时刻用户页表中虚页号和物理块号对照表如下表1所示表1 虚页号和物理块号对应表虚页号09131720物理块号52081436求虚地址1A3CH、123CH分别对应的物理地址。11在分

43、页存储管理系统中,存取一次内存的时间是8us,查询一次快表的时间是1us,缺页中断的时间是20us,假设页表的查询与快表的查询同时进行 。当查询页表时,如果该页在内存但快表中没有页表项,系统将自动把该页页表项送入快表。(1) 求对某一数据进行一次次存取可能需要的时间?(2) 现连续对同一页面上的数据进行4次连续读取,求每次读取数据可能需要的时间?12考虑一个有快表的请求分页系统,设快表的读写周期为1us,内存的存取周期为2us,内外存之间传送一个页面的平均时间为5ms,快表的命中率为80%,页面失效率为10,求内存的有效存取时间。13考虑一个请求分页系统,测得如下的时间利用率;CPU:20,分

44、页磁盘:97.7,其他外设5。下列措施中哪个(些)可改善CPU的利用率?说明理由。(1)更换速度更快的CPU;(2)更换更大客量的分页磁盘;(3)增加内存中的用户进程数;(4)挂起内存中某个些)用户进程;(5)采用更快的I/O设备。答案 一、选择题题号12345678910答案AADCBACDBC题号11121314151617181920答案ACAAADAADA题号21222324252627282930答案DDADBDBBBA题号31323334353637383940答案BCCABBBCCC二综合应用题1某一存储管理系统采用可变分区分配方案,设当前内存的空白区表如下表所示。空白区号起始地

45、址空白区容量状态15KB100KB可用2120KB20KB可用3310KB256KB可用41024KB48KB可用现有四个作业J1,J2,J3,J4,它们分别需要内存20KB、42KB、120KB、130KB的空间,若采用最先适应算法,以怎样的次序可将这四个作业都装入主存,并给出装入后的空白区表。解答: 最先适应算法即首次适应算法,它要求空闲分区(即空白区)按地址递增的次序排列,在进行内存分配时,总是从空闲分区表首开始顺序查找,直到找到第一个能满足其大小要求的空闲分区为止。然后,再按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分区表中。为描述方便起见,假设将空闲

46、分区的低地址端分配给作业。 按J1,J2,J3,J4顺序这四个作业装入主存。其装入过程如下:(1)在装入J1时,J1申请20KB,选中1号空白区,分配后1号空白区还剩80KB,J1装入后的空白区表如表1所示。表1 空白区表空白区号起始地址空白区容量状态125KB80KB可用2120KB20KB可用3310KB256KB可用41024KB48KB可用(2)在装入J2时,J2申请42KB,选中1号空白区,分配后1号空白区还剩38KB,J2装入后的空白区表如表2所示。表2 空白区表空白区号起始地址空白区容量状态167KB38KB可用2120KB20KB可用3310KB256KB可用41024KB48

47、KB可用(3)在装入J3时,J3申请120KB,选中3号空白区,分配后3号空白区还剩136KB,J3装入后的空白区表如表3所示。表3 空白区表空白区号起始地址空白区容量状态15KB48KB可用2120KB20KB可用3430KB136KB可用41024KB48KB可用(4)在装入J4时,J4申请130KB,选中3号空白区,分配后3号空白区还剩6KB,J4装入后的空白区表如表4所示。表4 空白区表空白区号起始地址空白区容量状态15KB48KB可用2120KB20KB可用3560KB6KB可用41024KB48KB可用2(10分)假定某页式管理系统,主存为64KB,分成16块,块号为0,1,2,3

48、,4,15。设某作业有4页,其页号为0,1,2,3,被分别装入主存的2,4,1,6块。试问: (1)该作业的总长度是多少字节?(按十进制) (2)写出该作业每一页在主存中的起始地址。(3)若有多个逻辑地址0,100、l,50、2,0、3,60,试计算出相应的内存地址。(方括号内的第一个元素为页号,第二个元素为页内位移)解答:(1)每块的长度为64KB/164KB在页式存储管理系统中,页与块大小相等,因此作业总长度为4KB*4=16KB=16384B。(2)因为页号为0、1、2、3的页分别装入主存入2、4、1、6块中,所以该作业每一页在主存中的起始地址如下:第0页在主存中的起始地址:4KB*2=

49、8KB=8192B第1页在主存中的起始地址:4KB*4=16KB=16384B第2页在主存中的起始地址:4KB*1=4KB=4096B第3页在主存中的起始地址:4KB*6=24KB=24576B(3)内存地址=块地址+页内地址,地址变换如下:逻辑地址0,100的内存地址为:4KB*2+100=8292B逻辑地址1,50的内存地址为:4KB*4+50=16434B逻辑地址2,0的内存地址为:4KB*1+0=4096B逻辑地址3,60的内存地址为:4KB*6+6024636B3若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,3000,50

50、12转化为相应的物理地址(注:此处块号即为页面号)。页号块号01232316解答:本题中,为了描述方便,设页号为P,页内位移为W,逻辑地址为A,内存地址为M,页面大小为L,则P=int(A/L)W=A mod L另外因为页面大小与物理块的大小相等,所以物理块的大小也为1024B(1)对于逻辑地址1011P=int(1011/1024)=0W=1011 mod 1024=1011A=1101=(0,1101)查页表第0页在第2块,所以物理地址为M=1024*2+1011= 3059。(2)对于逻辑地址为2148P=2148/1024=2W=2148 mod 1024=100A=2148=(2,100)查页表第2页在第1块,所以物理地址为M=1024*1+100=1124。(3)对于逻辑地址为3000P=3000/1024=2W=3000 mod 1024=952A=3000=(2,952)查页表第2页在第1块,所以物理地址为M=1024*1+952=19

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论