1.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:页号物理块号051102437计算逻辑地址0A5C(H)所对应的物理地址(要求写出分析过程)。解:逻辑地址0A5C(H)所对应的物理地址是125C(H)。分析页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。逻辑地址0A5C(H)所对应的二进制表示形式是:000101001011100,根据上面的分析,下划线部分为页内地址,编码“00010”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:0100,拼接块内地址1001011100,得01001001011100,即125C(H)。(1分),得01001001011100(1分),即125C(H)(1分)。2、设某程序大小为460字,并且他有下面的存储访问序列:10、11、104、170、73、309、185、245、246、434、458、364设页面大小是100字,请给出该访问序列的页面走向,又设该程序基本可能用内存是200字,采用先进先出置换算法(FIFO),求出其缺页率。如果采用最佳置换算法(OPT),其缺页中断率又是多少?(注:缺页率=缺页次数/访问页面总数)、现有一个作业,在段式存储管理的系统中已为其主存分配,建立的段表内容如下:段号主存起始地址段长度012040176030248020337020计算逻辑地址(2,15),(0,60),(3,18)的绝对地址是多少?注:括号中第一个元素为段号,第二个元素为段内地址。解:段式存储管理的地址转换过程为:(1)根据逻辑地址中的段号查段表的相应栏目;(2)根据段内地址段长度,检查地址是否越界;(3)若不越界,则绝对地址=该段的主存起始地址+段内地址。逻辑地址(2,15)查段表得段长度为20,段内地址1520,地址不越界,段号2查表得段首地址为480,于是绝对地址为480+15=495。逻辑地址(0,60)查段表得段长度为40,段内地址6040,地址越界,系统发出“地址越界”中断。逻辑地址(3,18)查段表得段长度为20,段内地址1820,地址不越界,段号3查表得段首地址为370,于是绝对地址=370+18=388。考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问:(1)逻辑地址需要多少位表示?(二进制)(2)绝对地址需要多少位表示?(二进制)解:因为页面数为8=23,故需要3位二进制数表示。每页有1024个字节,1024=210,于是页内地址需要10位二进制数表示。32个物理块,需要5位二进制数表示(32=25)。(1)页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示。(2)页的绝对地址由块号和页内地址的拼接,所以需要5+10=15位二进制数表示。在分时系统中,可将进程不需要或暂时不需要的部分移到外存,让出内存空间以调入其他所需数据,称为()A、兑换技术B、虚拟技术C、物理扩充D、覆盖技术9、在页式虚拟存储管理系统中,LRU算法是指()A、以后再也不用的缺页先淘汰B、最早进入内存的页先淘汰C、近期被访问次数最少的页先淘汰D、近期最长时间以来没有被访问的页先淘汰在分页存储管理系统中,从页号到物理块号的地址映射是通过()实现的。A.段表B.页表C.PCBD.JCB虚拟存储管理策略可以()。A·扩大物理内存容量B.扩大物理外存容量C·扩大逻辑内存容量D.扩大逻辑外存容量在页式存储管理系统中,整个系统的页表个数是()。A.1个B.2个C.与页面数相同D.与主存中的进程数相同8.C9.D把逻辑地址转变为内存物理地址的过程称作()。A.重定位B.连接C.编译D.运行页面抖动于什么有关?好的页面置换算法能够适当降低页面置换的频率,减少缺页率,尽量避免系统抖动。此外一般来说,随着可用内存数的增加,缺页数也将减少虚拟存储器有哪些基本特征?答:虚拟存储器的基本特征是:虚拟扩充、部分装入、离散分配、多次对换。请求分页技术与简单分页技术之间的根本区别是什么?请求分页技术与简单分页技术之间的根本区别是:请求分页提供虚拟存储器,而简单分页系统并未提供虚拟存储器。虚拟存储管理虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。虚拟存储技术允许把大的逻辑地址空间映射到较小的物理内存上,这样就提高了多道程序并发执行的程度,增加了CPU的利用率。虚拟存储器的特性包括:虚拟扩充、部分装入、离散分配和多次对换等。使用虚拟存储技术的页式管理为请求分页式存储管理。它是根据实际程序执行的顺序,动态申请存储块。并不是把所有页面都放入内存。对一个程序的第一次访问将产生缺页中断,转入操作系统进行相应处理。操作系统依据页表确定页面在外存上的位置,然后找一个空闲块,把该页面从外存上读到内存块中。同时,修改页表有关项目,以反映这种变化,产生缺页中断的那条指令被重新启动执行。这种方式允许一个程序即使它的整个存储映像并没有同时在内存中,也能正确运行。只要缺页率足够低,其性能还是很好的。请求分页可用来减少分配给一个进程的块数,这就允许更多进程同时执行,而且允许程序所需内存量超出可用内存总量。虚拟存储器(VirtualMemory)是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。虚拟存储器的基本特征:虚拟扩充、部分装入、离散分配、多次对换。此外,虚拟存储器的容量不是无限大的,它主要受到地址的字长和外存容量的限制常用页面置换算法当总内存的需求量超出实际内存量时,为释放内存块给新的页面,需要进行页面置换。有各种页面置换算法可供使用。先进先出法(FIFO)是最容易实现的,但性能不是很好。最佳置换法(OPT)需要未来知识,仅有理论价值。最近最少使用置换法(LRU)是OPT的近似算法,但实现时要有硬件的支持和软件开销。最近未使用置换法(NUR)是LRU的近似算法。置换算法的好坏直接影响系统的性能。好的页面置换算法能够适当降低页面更换频率(减少缺页率),尽量避免系统“抖动”。存储管理内存管理要解决的问题有:内存的分配与释放、内存扩充、地址变换、内存的保护与共享、内外存之间数据交换的控制等问题;掌握常用的内存管理方法,重点是分区存储管理和请求页式存储管理、动态分区的分配算法和请求淘汰换页算法。1、存储管理的任务是什么(1)方便用户,使用户减少甚至摆脱对存储器使用的管理;(2)提高内存资源的利用率,关键是实现资源共享。2、存储管理的功能是什么(1)内存区域的分配和管理:通过建表、查表、改表和回收登录内存使用情况。系统或用户申请内存时按选定的分配算法确定分区等。(2)内存的扩充技术:使用虚拟存储或自动覆盖技术提供比实际内存更大的空间;(3)内存储的保护技术:各道作业、任务或进程在自己所属区域中运行,不破坏别的作业或不被“别人”破坏,更不要破坏整个系统工作。3、逻辑(相对)地址与物理(绝对)地址逻辑地址:程序中按逻辑顺序编排的代码及数据的地址称为逻辑地址。物理地址:程序中按代码及数据在内存中实际存储位置的地址成为物理地址。4、重定位(relocation)将逻辑地址转化为物理地址的过程称为重定位。一般由操作系统的链接过程完成。分为静态和动态两种。静态链接是在链接装入时一次集中完成,动态是在指令执行中先访问内存后再重定位,一般由硬件完成地址转换。重定位原理图见图。编译装入重定位源程序(符号指令和数据说明)名空间目标程序逻辑地址空间主存物理地址空间5、虚拟地址和虚拟存储器编译链接程序把用户源程序编译后链接到一个以0地址为始地址的线性或多维虚地址空间。每个指令或数据单元都在这个虚地址空间中有确定的地址,我们把这个地址称为虚拟地址(virtualaddress)。我们把由进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器(virtualmemorystore)。6、虚拟存储的制约因素(1)虚存容量不是无限的,极端情况受计算机内、外存总和的限制;(2)虚存容量还受计算机总线长度和地址结构的限制;(3)速度和容量的“时空”矛盾,虚存容量的“扩大”是以牺牲CPU工作时间以及内、外存的交换时间为代价的。7、分区存储管理技术的基本原理基本原理是给每一个内存中的进程划分一块适当大小的存储区,以连续存储各进程的程序和数据,使个程序得以并发执行。按分区的时机,分区管理可以分为固定分区和动态分区两种方法。8、*固定分区分配的原理及数据结构(1)固定分区分配(fixed-sizepartition)是在处理作业前,内存事先划分为若干个大小不等或相等的区域,一旦划分好则固定不变,每个作业占一个分区,作业是连续存放的。分区的划分可以由操作系统或系统管理员决定。(2)系统对内存的管理和控制通过数据结构—分区说明表进行,分区说明表说明各分区号、分区大小、起始地址和是否是空闲区(分区状态)。内存的分配释放、存储保护以及地址变换都通过分区说明表进行。分区说明表的结构如图分区号大小始址状态19KB20KB已分配225KB29KB可用340KB54KB可用4162KB94KB可用(a)分区说明表操作系统进程A(9K)进程B(25K)进程C(40K)进程D(94K)020K29K54K94K256K(b)内存空间固定分区分配例图(3)固定分区方法的优缺点固定分配的优点是分配回收方便,适用于用户不多的小型系统;缺点是内存使用不充分,每一分区剩余部分无法利用。9.动态分区的原理动态分区法在作业执行前并不建立分区,而是在处理作业的过程中按需要建立分区,而且其大小可随作业或进程对内存的要求而改变。这就改变了固定分区中小作业占据大分区的浪费现象,从而提高了系统的利用率。10、动态分区的数据结构动态分区采用三张表对内存管理,分别为已分配区域说明表、未分配区域说明表(可用表)和资源请求表。相互的关系如图4-3。分区号大小始址状态110KB20KB已使用2------340KB70KB已使用4------(a)已分配区域说明表分区号大小始址状态1---------240KB30KB可用3------4146KB110KB可用(b)未分配区说明表020KB30KB70KB110KB256KB(c)主存空间11、动态分区的分配算法OS作业1(10KB)40KB作业2(40KB)146KB(1)首次适应法(first-fit)要求把内存中的可用分区单独组成可用分区表或可用分区自由链,按起始地址递增的次序排列。查找的方法是每次按递增的次序向后找,一旦找到大于或等于所要求内存长度的分区,则结束查找,从找到的分区中划分所要求的内存长度分配给用户,把剩余的部分进行合并(如果有相邻的空白区存在的话),并修改可用区中的相应表项。(2)循环适应法(circulation-fit)系统记住上一次分配区地址,每重新分配一次时,都在当前之后寻找,其目的是回收空白区。即内存所有的线性空间可能轮流使用到。分配的时间会快一些,“碎片”也可能会小一些。(3)最佳适应法(best-fit)最佳适应法要求按空白区的大小,从小到大次序组成空白区表或自由链。寻找的方法是找到第一个满足要求的空白区时停止查找,如果该空白区大于请求表中的请求长度,则将剩余空白区留在可用表中(如果相邻有空白区,则与之合并),然后修改相关表的表项。(4)最坏适应法(worset-fit)最坏适应法要求按空白区大小,从大到小递减顺序组成空白区可用表或自由链.寻找的方法是当用户作业或进程申请一个空白区时,选择能满足要求的最大空白区分配,先检查空白区可用表或自由链的第一个空闲区的大小是否大于或等于所要求的内存长度,若