存储管理习题整理DOC.docx
《存储管理习题整理DOC.docx》由会员分享,可在线阅读,更多相关《存储管理习题整理DOC.docx(24页珍藏版)》请在冰豆网上搜索。
![存储管理习题整理DOC.docx](https://file1.bdocx.com/fileroot1/2023-2/13/8028ea66-f2a4-43d8-94ba-e7b2cf394e89/8028ea66-f2a4-43d8-94ba-e7b2cf394e891.gif)
存储管理习题整理DOC
1.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。
假定某时刻
一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号
物理块号
0
5
1
10
2
4
3
7
计算逻辑地址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),其缺页中断率又是多少?
(注:
缺页率=缺页次数/访问页面总数)
、现有一个作业,在段式存储管理的系统中已为其主存分配,建立的段表内容如下:
段号
主存起始地址
段长度
0
120
40
1
760
30
2
480
20
3
370
20
计算逻辑地址(2,15),(0,60),(3,18)的绝对地址是多少?
注:
括号中第一个元素为段号,第二个元素为段内地址。
解:
段式存储管理的地址转换过程为:
(1)根据逻辑地址中的段号查段表的相应栏目;
(2)根据段内地址<段长度,检查地址是否越界;(3)若不越界,则绝对地址=该段的主存起始地址+段内地址。
逻辑地址(2,15)查段表得段长度为20,段内地址15<20,地址不越界,段号2查表得段首地址为480,于是绝对地址为480+15=495。
逻辑地址(0,60)查段表得段长度为40,段内地址60>40,地址越界,系统发出“地址越界”中断。
逻辑地址(3,18)查段表得段长度为20,段内地址18<20,地址不越界,段号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)系统对内存的管理和控制通过数据结构—分区说明表进行,分区说明表说明各分区号、分区大小、起始地址和是否是空闲区(分区状态)。
内存的分配释放、存储保护以及地址变换都通过分区说明表进行。
分区说明表的结构如图
分区号
大小
始址
状态
1
9KB
20KB
已分配
2
25KB
29KB
可用
3
40KB
54KB
可用
4
162KB
94KB
可用
(a)分区说明表
操作系统
进程A(9K)
进程B(25K)
进程C(40K)
进程D(94K)
020K29K54K94K256K
(b)内存空间
固定分区分配例图
(3)固定分区方法的优缺点
固定分配的优点是分配回收方便,适用于用户不多的小型系统;缺点是内存使用不充分,每一分区剩余部分无法利用。
9.动态分区的原理
动态分区法在作业执行前并不建立分区,而是在处理作业的过程中按需要建立分区,而且其大小可随作业或进程对内存的要求而改变。
这就改变了固定分区中小作业占据大分区的浪费现象,从而提高了系统的利用率。
10、动态分区的数据结构
动态分区采用三张表对内存管理,分别为已分配区域说明表、未分配区域说明表(可用表)和资源请求表。
相互的关系如图4-3。
分区号
大小
始址
状态
1
10KB
20KB
已使用
2
---
---
3
40KB
70KB
已使用
4
---
---
(a)已分配区域说明表
分区号
大小
始址
状态
1
---
---
---
2
40KB
30KB
可用
3
---
---
4
146KB
110KB
可用
(b)未分配区说明表
0
20KB
30KB
70KB
110KB
256KB
(c)主存空间
11、动态分区的分配算法
(1)首次适应法(first-fit)
要求把内存中的可用分区单独组成可用分区表或可用分区自由链,按起始地址递增的次序排列。
查找的方法是每次按递增的次序向后找,一旦找到大于或等于所要求内存长度的分区,则结束查找,从找到的分区中划分所要求的内存长度分配给用户,把剩余的部分进行合并(如果有相邻的空白区存在的话),并修改可用区中的相应表项。
(2)循环适应法(circulation-fit)
系统记住上一次分配区地址,每重新分配一次时,都在当前之后寻找,其目的是回收空白区。
即内存所有的线性空间可能轮流使用到。
分配的时间会快一些,“碎片”也可能会小一些。
(3)最佳适应法(best-fit)
最佳适应法要求按空白区的大小,从小到大次序组成空白区表或自由链。
寻找的方法是找到第一个满足要求的空白区时停止查找,如果该空白区大于请求表中的请求长度,则将剩余空白区留在可用表中(如果相邻有空白区,则与之合并),然后修改相关表的表项。
(4)最坏适应法(worset-fit)
最坏适应法要求按空白区大小,从大到小递减顺序组成空白区可用表或自由链.寻找的方法是当用户作业或进程申请一个空白区时,选择能满足要求的最大空白区分配,先检查空白区可用表或自由链的第一个空闲区的大小是否大于或等于所要求的内存长度,若满足,则分配相应的存储空间给用户,然后修改和调整空闲区可用表或自由链,否则分配失败。
12、可重定位分区分配
可重定位分区分配(re-locatablepartition)即一旦出现分散的空白区,就将空白区集中,把已分配的分区移动紧靠一端,空白区集中在另一端。
有硬件和软件两种方法。
其目的是解决“碎片问题,但以牺牲系统的效率为代价。
13、多重分区分配
多重分区分配是以程序分段为基础来实现的。
它将程序分成若干段,如主程序、子程序和数据段等,然后以段为单位进行分区分配。
这些段在逻辑上是连续的,但在存放在内存分区中去时却无需连续,只要有足够的保护措施就可以了。
其优点是便于多个作业共享内存,缺点是存储分散,管理复杂。
14、内存扩充技术
在分区分配存储管理中常用的两种内存扩充技术有覆盖与交换技术。
覆盖技术主要用于早期的操作系统中。
(1)交换(swap)
交换技术是先在硬盘上开辟一个交换区,将内存某部分的程序或数据写入外存交换区,再从外存交换区调入指定的程序或数据到内存中来,并让其执行的一种内存扩充技术。
一般包括换入和换出两个过程。
(2)覆盖(overlay)
覆盖由操作系统或编译程序提供用户覆盖机构。
覆盖机构将整个作业分为常驻和覆盖两部分。
因为一般用户程序由主程序和若干个子程序组成,而子程序是不会同时调用工作的,用户只要最大的子程序作为覆盖区告诉系统,各个子程序都有足够的空间工作,因此,其它子程序就不需要事先占用内存。
11、内存保护技术
内存保护技术(protection)要保护系统工作区和用户工作区,特别是如何防止系统区被破坏。
(1)存储保护键
系统为每个分区设一保护键,在程序状态字中也设同样的保护键字段,访问内存时检查键的配对情况,如果不对则产生保护性中断。
(2)界限寄存器
由硬件实现,起重定位寄存器的作用。
采用基址寄存器(存放作业的起始地址)和限长寄存器(存放作业的长度)或采用上界寄存器(存放作业的最高地址)和下界积存器(存放作业在内存中的最低地址)。
系统调用作业工作时查内存分配表,查到分配的分区基址,计算出绝对地址,执行一条有关地址的指令,继续访问或产生越界中断处理。
16、请求页式存储管理的实现原理
(1)划分实页
将物理内存划分成位置固定、大小相同的“块”(实页面)。
其特
继续访问或产生越界中断处理。
(2)划分虚页
将用户逻辑地址空间也分成同样大小的页面,成为虚拟空间的虚
页面。
(3)建立页表
建立页表,有时称为页面表或页面映射表(PMT)。
每个作业一张,按虚页号进行登记,其基本的内容有特征位(表示该页是否在内存、实页号以及对应外存的地址,见下表
页表
虚拟分页
基址寄存器
物理地址
分页工作图
(4)地址变换
将虚页面的逻辑地址转化为实页面的物理地址,在程序执行时改变为物理地址,属于作业的动态重定位,一般由地址转换机构(硬件)完成。
17、请求淘汰换页算法
(1)先进先出算法(firstinputfirstoutput,FIFO)
先进入内存的页面先淘汰。
实现是在页表中登记进入的次序,并将各个已分配的页面按分配时间顺序连接起来,组成FIFO队列。
优点是实现简单,缺点是遇到常用的页效率低下,并可能产生Belady现象(所谓Belady现象是指分配的页面数增多,缺也次数反而增加的现象)。
(2)循环检测法
让循环多的页面留驻内存,计算机采用记录页面住留内存期间对该页的访问时间,t为该页上一次访问时间,T为该页第二次访问时间,选用相对时间(t-T)最大的淘汰。
优点是适合循环多的大程序;缺点是系统开销大。
(3)最近最少使用页面先淘汰(leastrecentlyuseed,LRU)
该算法的基本思想是:
当要淘汰某页时,选择离当时时间最近的一段时间内最久没有使用过的页面先淘汰。
该算法的出发点是,如果某页被访问了,则可能它马上还要被访问,或者反过来说,如果某页面很长时间未被访问,则它在最近一段时间也不会被访问。
LRU的实现是一件十分困难的事情,我们一般采用它的近似算法。
(4)最不经常使用的页面先淘汰(leastfrequentused,LFU)
该算法在需要淘汰某一页时,首先淘汰到当前时间为止,被访问次数最少的那一页。
这只要在页表中给每一页增设一个访问计数器即可实现。
每当该页被访问时,访问计数器加1,而发生一次缺页中断时,则淘汰计数值最小的那一页,并将所有的计数器清零。
(5)最近没有使用的页面先淘汰(notusedrecently,NUR)
它是上述算法的一种简化,利用在页表中设置一个访问位即可实现,当某页被访问时,访问位置“1”,否则访问位置“0”当需要淘汰一页时,从那些访问位为“0”的页中选一页进行淘汰。
系统周期性地对所有访问位清零。
(6)随机数淘汰页面算法(randomreplacementalgorithm)
在系统设计人员无法确定那些页的访问概率较低时,随机地选择某个用户的页面进行淘汰也是一种方法。
(7)最优淘汰算法(optimalreplacementalgorithm,OPT)
它是一种理想的淘汰算法,系统预测作业今后要访问的页面,淘汰页是将来不被访问的页面或者最长时间后才能被访问的页面。
这种算法是无法实现的,因为它要求必须预先知道每个进程的访问串。
18、页式存储管理的优缺点
优点
(1)虚存量大,适合多道程序运行,用户不必担心内存不够的调度操作。
动态页式管理提供了内存与外存统一管理的虚存实现方式;
(2)内存利用率高,不常用的页面尽量不留在内存;
(3)不要求作业连续存放,有效地解决了内存碎片问题。
缺点
(1)要进行页面中断,缺页中断等处理,系统开销较大;
(2)有可能产生“抖动”现象;
(3)地址变换机构复杂,一般采用硬件实现,增加了机器成本。
19、段式存储管理的基本思想
页式存储管理由于页的划分固定,每页的内容无完整的意义,因此页式存储管理在不同作业或进程之间共享公用子程序和数据段变得非常困难,由此提出了段式存储管理的概念。
段式存储管理的基本思想是:
把程序按内容或过程(函数)关系分成段,每段有自己的名字。
一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。
段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟存储地址转化为内存中的实际地址。
和页式管理一样,段式管理也采用只把那些经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放在外存,待需要时自动调入内存的方法实现二维虚拟存储器。
20、段式与页式的比较
见表
段式
页式
分段由用户设计自己划分,每段对应的程序模块,有完整的逻辑意义
段面是信息的逻辑单位
便于段的共享,执行时按需动态链接装入
段长不等,可动态装入,有利于新数据的增长
二维地址空间:
段名、段中地址;段号、段内单元号
管理形式上象页式,但概念不同
分页用户看不见,由操作系统为内存管理划分
页面是信息的物理单位
页一般不能共享
页面大小相同,位置不能动态增加
一维地址空间
往往需要多次缺页中断才能把所需的信息完整地调入内存
段式与页式存储管理比较
二、习题(教材提供)
1、存储管理的主要功能是什么?
2、解释下列与存储管理有关的名词:
(1)地址空间与存储空间
(2)逻辑地址与物理地址
(3)虚地址与实地址
(4)地址再定位
(5)虚拟存储器
3、什么是请求页式管理?
能满足用户哪些需要?
4、简述什么是内存的覆盖和交换技术?
两者有什么区别?
5、分页式和分段式内存管理有什么区别?
怎样才能实现共享和保护?
存储管理的主要功能是什么?
答案:
1、答:
存储管理的主要功能是解决多道作业的主存空间的分配问题。
主要包括:
(1)内存区域的分配和管理:
设计内存的分配结构和调入策略,保证分配和回收。
(2)内存的扩充技术:
使用虚拟存储或自动覆盖技术提供比实际内存更大的空间。
(3)内存的共享和保护技术。
除了被允许共享的部分之外,作业之间不能产生干扰和破坏,须对内存中的数据实施保护。
2、解释下列与存储管理有关的名词:
地址空间与存储空间
答:
目标程序所在的空间称为地址空间,即程序员用来访问信息所用的一系列地址单元的集合;存储空间是指主存中一系列存储信息的物理单元的集合。
逻辑地址与物理地址
答:
在具有地址变换机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同。
逻辑地址是指用户程序经编译后,每个目标模块以0为基地址进行的顺序编址。
逻辑地址又称相对地址。
物理地址是指内存中各物理存储单元的地址从统一的基地址进行的顺序编址。
物理地址又称绝对地址,它是数据在内存中的实际存储地址。
虚地址与实地址
答:
虚地址同逻辑地址,实地址同物理地址。
地址重定位
答:
重定位是把逻辑地址转变为内存的物理地址的过程。
根据重定位时机的不同,又分为静态重定位(装入内存时重定位)和动态重定位(程序执行时重定位)。
虚拟存储器
答:
虚拟存储器是一种存储管理技术,用以完成用小的内存实现在大的虚空间中程序的运行工作。
它是由操作系统提供的一个假想的特大存储器。
但是虚拟存储器的容量并不是无限的,它由计算机的地址结构长度所确定,另外虚存容量的扩大是以牺牲CPU工作时间以及内、外存交换时间为代价的。
3、答:
请求页式管理的基本原理是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。
页式系统的逻辑地址分为页号和页内位移量。
页表包括页号和块号数据项,它们一一对应。
根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就形成存储空间的物理地址。
每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。
此外,页表中还包括特征位(指示该页面是否在内存中)、外存地址、修改位(该页的内容在内存中是否修改过)等。
页式存储管理在动态地址转换过程中需要确定某一页是否已经调入主存。
若调入主存,则可直接将虚地址转换为实地址,如果该页未调入主存,则产生缺页中断,以装入所需的页。
页式存储管理将不常用的页面调出内存,使内存的利用率高;虚拟的容量大,用户不必担心内存不够;不要求作业连续存放,有效地解决了“碎片”问题。
4、答:
在多道系统中,对换是指系统把内存中暂时不能运行的某部分作业写入外存交换区,腾出空间,把外存交换区中具备运行条件的指定作业调入内存。
对换是以时间