操作系统复习-存储管理

操作系统复习-存储管理
操作系统复习-存储管理

3.1 内存管理基础

内存管理的主要任务是:为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及从逻辑上扩充存储器。内存管理包括:内存分配,内存保护,地址映射,内存扩充。

---------------------------------------------------------------------------------------------

应用程序的处理一般过程:由相应的语言处理程序将源程序模块对应转换成目标模块->由链接程序将所有相关的目标模块链接到一起,整合成一个可执行程序->由装入程序将程序装入内存后予以执行。

重定位的概念:

由于编译程序无法确定目标代码在执行时所对应的地址单元,故一般从0号单元开始为其编址。这样的地址称为相对地址、程序地址或虚拟地址。因此当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成内存地址,这个过程称为地址重定位。

重定位分为静态重定位和动态重定位两种,静态重定位在装入时将所有相对地址转换成绝对地址,这种装入方式要求作业在装入时就必须分配其要求的所有空间,整个运行过程中不能在内存中移动,也不能申请新空间;动态重定位是装入时不地址转换,在执行过程中由硬件的地址转换机构转换成绝对地址,这种装入方式可以将程序分配到不连续的存储区中,不必装入所有代码就可以运行,但是需要硬件支持。

在重定位中通常设置一个重定位寄存器,里面放的是程序的基址,物理地址=基址+相对地址程序链接的方式:

静态链接:在运行前链接

装入时动态链接:边装入边链接

运行时动态链接:运行到需要处才链接,便于修改和更新,便于实现共享

程序装入的方式:

绝对装入方式:在编译时就知道程序要驻留的内存地址(和静态重定位完全不是一回事)可重定位装入方式:有静态重定位和动态重定位两种

其他方式:和分页和分段相结合

---------------------------------------------------------------------------------------------

交换和覆盖的目的都是扩充逻辑内存

交换技术:把暂时不用的某个程序及数据部分(或全部)从内存中移到外存,或吧指定的程序或数据从外存读到内存。交换技术打破了一个程序一旦进入主存便一直运行到结束的限制。

覆盖技术:(定义略)覆盖技术要求程序员实现把一个程序划分成不同的程序段,并规定好它们的覆盖结构。打破了一个进程必须在全部信息都装入内存后才可运行的限制。

---------------------------------------------------------------------------------------------

连续分配管理方式:

(1)单一连续分配:把内存空间分为系统区和用户区,每次只装入运行一个程序,存储器利用率极低。

(2)固定分区分配:将内存用户空间划分为若干个固定大小的区域,每个分区只装一道作业,分区大小可以相等也可以不等

优点:可用于多道程序系统最简单的存储分配

缺点:空间利用率较低

(3)动态内存分配:又称可变内存分配,其做法是在作业进入内存时,根据作业的大小动态的建立分区

优点:实现了多道程序共享内存,管理方案相对简单,实现存储保护的手段相对简单缺点:系统中总有一部分空间得不到利用,无法实现多进程共享存储器的信息,无法实现主存的扩充

动态内存分配算法

首次适应算法:将空闲分区链以地址递增的次序连接,在分配内存时,从链首开始查找,知道找到一个大小合适的空间区间为止

由于首次适应算法每次都从低址开始找,这样容易造成内存各部分使用不均,所以又有了循环首次适应算法

循环首次适应算法:在分配内存空间时,从上次找到的空闲分区的下一个空闲分区开始查找

循环首次适应算法可以减少查找开销,但可能导致较大的空闲分区

最佳适应算法:空闲分区按容量从小到大排列,每次分配时都将能满足要求且最小的空闲分区分配给作业

最佳适应算法产生的碎片小但却多,这是优点也是缺点

最差适应算法:空闲分区按容量从大到小排列,每次分配时都将能满足要求且最大的空闲分区分配给作业

最差适应算法能使每次留下的空闲区较大,便于下次使用,但是大的空间区不易保留分区的回收:作业执行结束后要回收使用完毕的分区,系统根据回收分区的大小及首地址,在空闲分区表中检查是否有相邻的空闲区,如有则合并成一个大的空闲区,合并时可能出现的情况有三种:上邻接,下邻接和上下都邻接。

拼接(紧凑)技术:解决碎片问题的一种方法是采用拼接技术,所谓拼接是指将移动寄存器中所有已分配内存移到内存的一段,是原本分散的空闲区连成一个大的空闲区。拼接实际一般有两种:在某个分区回收时立刻拼接或在找不到合适的空闲区且空闲区的总容量可以满足作业要求时进行拼接。

存储保护:上下界寄存器法和基址限长寄存器法

---------------------------------------------------------------------------------------------

非连续内存分配管理方式

根据分区的大小固定和不固定又分为分页存储管理方式和分段存储管理方式,分页管理方式又分成基本分页存储管理方式和请求分页存储管理方式

基本分页存储管理方式:

实现思想:将作业分成若干个大小相等的区域,称为页,将内存也分成与页相等的区域,称为块。可以将作业中的任意一页放入内存中的任意一个空闲块中。在调度作业运行时,必须将它的所有页面一次调入内存,若内存中没有足够的物理块,则作业等待。

逻辑地址结构:前一部分是页号P,后一部分是页内偏移量W,如果逻辑空间时2^m,页面大小为2^n,则逻辑地址的前m-n为时页号,后n位是页内偏移量。

为便于在内存中找到进程中每个页面对应的物理块,系统为每个进程建立了一张页面映射表,简称页表,记录页面在内存中对应的物理块号,页表一般放在内存中。页表大小由机器的地址结构决定,一般在512B~8KB之间。

系统设置了一个页表寄存器(PTR),存放页表在内存中的起始地址F和页表的长度M,进程未执行时,页表的的起始地址和长度放在进程控制块中,当进程执行时,在将页表的起始地址和长度存入PTR中。

地址变换过程:假设页表起始地址为F,页表长度为M,页面大小为L,逻辑地址为A,要计算物理地址E:①计算页号P=(int)A/L,页内偏移量W=A%L。②比较页号和页表长度M,若P>=M,则产生越界中断。③在页表找到页号P对应的物理块号b=F[P]。④E=b*L+W

快表:由上面的地址变换过程可知,要想访问一个地址,只有要读取两次内存,这种方法比不用分页慢了一倍。为了加快内存存取速度,可以在高速缓存存储器中增加一个快表,快表中登记了一部分页号和块号的对应关系。根据程序执行局部性的特点,在一段时间内总是经常访问某些页,把这些页放入块表中可以有效提高执行速度

有无页表访问时间比较:设访问内存一次需要时间为t,查找快表一次需要时间e,命中率为a。如果没有快表,读取一个地址平均时间为2t,如果有快表,平均时间为ae+(a-1)(e+t)+t=2t+e-ta≈(2-a)t(一般e可忽略不计)

多级页表:当页表所占内存很大,无法用一个物理块装下时,就需要将页表分级。

基本分段存储管理方式:

在分页存储系统中,作业的地址空间是一维线性的,这破坏了程序内部天然的逻辑结构,造成共享、保护的困难。引入分段存储管理方式,按逻辑地址将作业分段,每段都有自己的名字,可以根据段名来访问相应的程序段和数据段

分段存储管理主要是为了满足用户和程序员的下述需要:1) 方便编程,2) 信息共享,3) 信息保护,4) 动态增长,5) 动态链接

段的共享与保护:分段的共享是通过两个作业的段表中相应表项指向被共享分段的同一个物理副本来实现的。在多道程序环境下,必须注意共享段的信息保护问题,当一个作业正从共享段读取数据时,必须防止另一个作业修改共享段的数据。在大多数实现共享的系统中,程序被分成代码区和数据区。不能修改的代码称为纯代码或可重入代码。这样的代码和不能修改的数据时可以共享的,而可修改的代码和数据则不能共享。

分段管理优缺点:优点:便于动态申请内存,管理和使用统一化,便于共享,便于动态链接;缺点:产生碎片

分页和分段的主要区别:(1) 页是信息的物理单位,段则是信息的逻辑单位; (2) 页的大小固定且由系统决定,而段的长度却不固定; (3) 分页的作业地址空间是一维的,即单一的线性地址空间,分段的作业地址空间则是二维的。

段页式存储管理:

基本思想:将作业分段,再将段分页

对主存储器的访问,是 B 。A.随存储器的管理方案不同而异 B.以字节或字为单位

B 存储管理方式提供一维地址结构。A.分段 B.分页 C.段页式

下列 C 存储管理方式能使存储碎片尽可能少,而且是内存利用率较高。A.固定分区 B.可变分区 C.分页管理 D.段页式管理

分页是由硬件完成的

---------------------------------------------------------------------------------------------

3.2 虚拟内存管理

由于常规存储器管理具有一次性(要求将作业全部装入内存才能运行)和驻留性(作业装入内存后,便一直驻留在内存中)的特点,难以满足作业有很大和有大量作业要求运行的情况。

虚拟存储管理是一种借助于外存空间,从而允许一个进程在其运行过程中部分装入内存的技术。

程序执行的局部性原理:在一较短的时间内,程序的执行仅局限于某个部分,相应的,它所访问的内存空间也局限于某个区域,这就是程序执行的局部性原理,可以分成空间局部性和时间局部性。

虚拟存储器的实质是让程序所在的地址空间与运行时用于存放程序的存储空间区分开,程序员可以在地址空间内编写程序,而完全不用考虑实际内存的大小。

实现虚拟存储技术的硬件支持:相当数量的外存,一定数量的内存,地址变换机构。

常用虚拟存储技术:请求分页存储管理,请求分段时存储管理,请求段页式存储管理

虚拟存储器特征:离散性,多次性,对换性,虚拟性

请求分页存储管理:

请求分页系统=基本分页系统+请求调页功能+页面置换功能

实现思想:在请求分页存储管理中,作业运行之前,只要求将当前需要的一部分页面装入内存,便可启动作业运行。在作业执行过程中,当所要访问的页面不在内存时在通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。因为在运行过程中必然出现要访问的页面不在内存中的情况,所以需要对页表项进行扩充。扩充后的各字段如下:

页号和物理块号:同基本分页管理

状态位P(中断位):表示页面是否在内存中

访问位A:用于记录页面在一段时间内被访问的次数,或最近已有多长时间未被访问,供置换算法参考

修改位M:用于表示页面调入内存后是否修改过。当内存在外存中有副本时,若页表未被修改,则将该页面换出时不需要将页面写入外存,以减少磁盘写的次数。

外存地址:指出页面在外存的存放地址

缺页中断:在请求分页系统中,每当要访问的页面不在内存中时,便产生一缺页中断。一条指令在执行期间,可能产生多次缺页中断

地址变换机构:当缺页中断产生后,系统将控制权转到缺页中断处理程序,缺页中断程序根据该页的外存地址将其调入内存,在调页过程中,如果内存有空闲空间,则缺页中断处理程序只需将缺页装入某个空闲块中,再修改对应页表项即可。如果内存无空闲块,则需要根据某种页面选择算法将某个页淘汰到外存,再把缺页写入内存。地址变换机构由硬件实现

页面置换算法

最佳置换算法(OPT):缺页率最低,但无法实现

先进先出算法(FIFO):(略)

最近最久未使用算法(LRU):选择最近一段时间内最长时间没有被访问过的页面予以淘汰。需要硬件支持

时钟置换算法(CLOCK):LRU的近似算法。CLOCK算法给每个页面设置一个访问位,标识该页最近有没有被访问过,再将内存中的所有页面通过一个指针连接成一个循环队列。当程序需要访问链表中的页面时,该页面的访问位被置为1,否则,若程序要访问的页面在链表中不存在时,那就需要淘汰一个内存中的页面,于是一个指针p就从上次被淘汰指针的下一个位置开始顺序的遍历这个循环列表,当指针p指向的页面访问位为1时,就重新将它置为0,当指针p所指的页面访问位为0时,就选择这一页面淘汰;因为链表是循环的,所以算法一定能终止。CLOCK算法比LRU要少很多硬件支持。

改进型CLOCK置换算法:首选最近为被访问过且未修改过的页面,即找那些访问位(A)和修改位(M)都是0的页面,过程如下:第一步:试着找一个A=0,M=0的页面,不修改访问位。第二步,如果第一步失败,则查找A=0,M=1的页面,并且把扫描过的页面A都置零。第三步,如果转了一圈还是没找到,就返回步骤一,必要时再转到步骤二,算法一定能终止。该算法可以减少I/O次数,但是可能需要经过几轮扫描。

最少使用置换算法(LFU)

页面缓冲算法(PBA)

页面分配策略:

固定分配局部置换:基于进程类型或程序员建议,为每个进程分配一定数目的物理块,在运行过程中不再改变。缺页时选一页换出。

可变分配全局置换:先为系统中每个进程分配一定数目物理块,OS自身保持一个空闲的物理块队列,在某进程发生缺页时,由系统从空闲的物理块队列中取出一个块分给进程,将所缺的页调入其中。

可变分配局部置换:先为系统中每个进程分配一定数目物理块,如果该进程频繁发生缺页中断,则系统再为进程分配物理块。

页面调入策略:

请求调页策略:每次调入一页

预调页策略:每次调入缺页与缺页响铃的几个页面,常用与程序的首次调入。

缺页率:

影响缺页率的因素:

页面置换算法

物理块数目:数目越多,缺页率越低

页面大小:页面大,缺页率低

程序特性

抖动现象:

当主存中调出一个页面后马上又要使用这个页面,系统不断产生缺页中断,这种现象称为抖动。抖动现象会使CPU的利用率降低和系统吞吐量降低。

预防抖动策略:

采用局部置换策略:只在自己的内存空间置换页面,不允许从其他进程获得物理块。即使有某个进程发生了抖动,也会导致其他页面发生抖动。

在CPU调度程序中引入工作集算法,在调度程序从外存上调入作业之前,还必须检查每个进程在内存中的驻留集是否足够大,足够大时才调入。

L=S准则:使产生缺页的平均时间L等于系统处理进程缺页的平均时间S,这使CPU利用的最好

挂起若干进程

Belady现象:

有时候缺页率可能会随着所分配的内存块增加而增加,这种现象称为Belady现象,FIFO可能出现Belady现象,而LRU和最佳置换永远不会

虚拟内存的基础是局部性原理

在虚拟内存管理中,地址变换机构将逻辑地址变换成物理地址,形成该逻辑地址的阶段是链接

实现虚拟内存最主要的技术是部分对换

虚拟内存的最大容量只受地址位数(计算机地址结构)的限制,其实际容量是由内存外存容量总和决定的

虚拟存储只能基于连续分配技术

缺页中断和一般中断的区别:

1.在指令执行期间产生和处理中断信号。通常CPU都是在一条指令执行完后去检查是否有中断请求到达。而缺页中断是在指令执行期间,发现要访问的指令或数据不再内存时产生并处理的

2.一条指令在执行期间可能产生多次缺页中段。

操作系统内存管理复习过程

操作系统内存管理

操作系统内存管理 1. 内存管理方法 内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 2.1 单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和 DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内

存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。 2.2 分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。 分区式存储管理引人了两个新的问题:内碎片和外碎片。 内碎片是占用分区内未被利用的空间,外碎片是占用分区之间难以利用的空闲分区(通常是小空闲分区)。 为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。

分区式存储管理常采用的一项技术就是内存紧缩(compaction)。 2.2.1 固定分区(nxedpartitioning)。 固定式分区的特点是把内存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。 优点:易于实现,开销小。 缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2.2.2动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎

存储管理习题整理(DOC)

1.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下: 计算逻辑地址0A5C(H)所对应的物理地址(要求写出分析过程)。 解: 逻辑地址0A5C(H)所对应的物理地址是125C(H)。 分析页式存储管理的逻辑地址分为两部分:页号和页内地址。 由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。 逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100 ,根据上面的分析,下划线部分为页内地址,编码“000 10”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。 (1分),得01 0010 0101 1100(1分),即125C(H)(1分)。 2、设某程序大小为460字,并且他有下面的存储访问序列: 10、11、104、170、73、309、185、245、246、434、458、364 设页面大小是100字,请给出该访问序列的页面走向,又设该程序基本可能用内存是200字,采用先进先出置换算法(FIFO),求出其缺页率。如果采用最佳置换算法(OPT),其缺页中断率又是多少?(注:缺页率=缺页次数/访问页面总数) 、现有一个作业,在段式存储管理的系统中已为其主存分配,建立的段表内容如下: 注:括号中第一个元素为段号,第二个元素为段内地址。 解:

第四章 操作系统存储管理(练习题)

第四章存储管理 1. C存储管理支持多道程序设计,算法简单,但存储碎片多。 A. 段式 B. 页式 C. 固定分区 D. 段页式 2.虚拟存储技术是 B 。 A. 补充内存物理空间的技术 B. 补充相对地址空间的技术 C. 扩充外存空间的技术 D. 扩充输入输出缓冲区的技术 3.虚拟内存的容量只受 D 的限制。 A. 物理内存的大小 B. 磁盘空间的大小 C. 数据存放的实际地址 D. 计算机地址位数 4.动态页式管理中的 C 是:当内存中没有空闲页时,如何将已占据的页释放。 A. 调入策略 B. 地址变换 C. 替换策略 D. 调度算法 5.多重分区管理要求对每一个作业都分配 B 的内存单元。 A. 地址连续 B. 若干地址不连续 C. 若干连续的帧 D. 若干不连续的帧 6.段页式管理每取一数据,要访问 C 次内存。 A. 1 B. 2 C. 3 D. 4 7.分段管理提供 B 维的地址结构。 A. 1 B. 2 C. 3 D. 4 8.系统抖动是指 B。 A. 使用计算机时,屏幕闪烁的现象 B. 刚被调出内存的页又立刻被调入所形成的频繁调入调出的现象 C. 系统盘不干净,操作系统不稳定的现象 D. 由于内存分配不当,造成内存不够的现象 9.在 A中,不可能产生系统抖动现象。 A. 静态分区管理 B. 请求分页式管理 C. 段式存储管理 D. 段页式存储管理 10.在分段管理中 A 。 A. 以段为单元分配,每段是一个连续存储区 B. 段与段之间必定不连续 C. 段与段之间必定连续 D. 每段是等长的 11.请求分页式管理常用的替换策略之一有 A 。 A. LRU B. BF C. SCBF D. FPF 12.可由CPU调用执行的程序所对应的地址空间为 D 。 A. 名称空间 B. 虚拟地址空间 C. 相对地址空间 D. 物理地址空间 13. C 存储管理方式提供二维地址结构。 A. 固定分区 B. 分页

计算机操作系统存储管理练习题

一、选择 1.分页存储管理的存储保护是通过( )完成的. A.页表(页表寄存器) B.快表 C.存储键 D.索引动态重定 2.把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。 A、加载 B、重定位 C、物理化 D、逻辑化 3.在可变分区存储管理中的紧凑技术可以---------------。 A.集中空闲区 B.增加主存容量 C.缩短访问时间 D.加速地址转换 4.在存储管理中,采用覆盖与交换技术的目的是( )。 A.减少程序占用的主存空间 B.物理上扩充主存容量 C.提高CPU效率 D.代码在主存中共享 5.存储管理方法中,( )中用户可采用覆盖技术。 A.单一连续区 B. 可变分区存储管理 C.段式存储管理 D. 段页式存储管理 6.把逻辑地址转换成物理地址称为()。 A.地址分配 B.地址映射 C.地址保护 D.地址越界 7.在内存分配的“最佳适应法”中,空闲块是按()。 A.始地址从小到大排序 B.始地址从大到小排序 C.块的大小从小到大排序 D.块的大小从大到小排序 8.下面最有可能使得高地址空间成为大的空闲区的分配算法是()。 A.首次适应法 B.最佳适应法 C.最坏适应法 D.循环首次适应法 9.那么虚拟存储器最大实际容量可能是( ) 。 A.1024K B.1024M C.10G D.10G+1M 10.用空白链记录内存空白块的主要缺点是()。 A.链指针占用了大量的空间 B.分配空间时可能需要一定的拉链时间 C.不好实现“首次适应法” D.不好实现“最佳适应法” 11.一般而言计算机中()容量(个数)最多. A.ROM B.RAM C.CPU D.虚拟存储器 12.分区管理和分页管理的主要区别是()。 A.分区管理中的块比分页管理中的页要小 B.分页管理有地址映射而分区管理没有 C.分页管理有存储保护而分区管理没有 D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。13.静态重定位的时机是()。 A.程序编译时 B.程序链接时 C.程序装入时 D.程序运行时 14.通常所说的“存储保护”的基本含义是() A.防止存储器硬件受损 B.防止程序在内存丢失 C.防止程序间相互越界访问 D.防止程序被人偷看 15.能够装入内存任何位置的代码程序必须是( )。 A.可重入的 B.可重定位

操作系统存储器管理习题

存储器管理 单项选择题 存储管理的目的是()。 A.方便用户 B.提高内存利用率 C.方便用户和提高内存利用率 D.增加内存实际容量 外存(如磁盘)上存放的程序和数据()。 A.可由CPU直接访问 B.必须在CPU访问之前移入内存 C.是必须由文件系统管理的 D.必须由进程调度程序管理 当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为()。 A.源程序 B.目标程序 C.可执行程序 D.非执行程序 4、可由CPU调用执行的程序所对应的地址空间为( D )。 A.符号名空间 B.虚拟地址空间 C.相对地址空间 D.物理地址空间 5、经过(),目标程序可以不经过任何改动而装入物理内存单元。 A.静态重定位 B.动态重定位 C.编译或汇编 D.存储扩充 6、若处理器有32位地址,则它的虚拟地址空间为()字节。 A.2GB B.4GB C.100KB D.640KB 7、分区管理要求对每一个作业都分配()的内存单元。 A.地址连续 B.若干地址不连续 C.若干连续的帧 D.若干不连续的帧 8、()是指将作业不需要或暂时不需要的部分移到外存,让出内存空间以调入其他所需数据。 A.覆盖技术 B.对换技术 C.虚拟技术 D.物理扩充 9、虚拟存储技术是()。 A.补充内存物理空间的技术 B.补充相对地址空间的技术 C.扩充外存空间的技术 D.扩充输入输出缓冲区的技术 10、虚拟存储技术与()不能配合使用。 A.分区管理 B.动态分页管理 C.段式管理 D.段页式管理 11、以下存储管理技术中,支持虚拟存储器的技术是()。 A.动态分区法 B.可重定位分区法 C.请求分页技术 D.对换技术 12、在请求页式存储管理中,若所需页面不在内存中,则会引起()。 A.输入输出中断 B. 时钟中断 C.越界中断 D. 缺页中断 13、在分段管理中,()。 以段为单位分配,每段是一个连续存储区 段与段之间必定不连续 段与段之间必定连续 每段是等长的 14、()存储管理方式提供一维地址结构。 A.固定分区 B.分段 C.分页 D.分段和段页式 15、分段管理提供()维的地址结构。 A.1 B.2 C.3 D.4 16、段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即()。 用分段方法来分配和管理物理存储空间,用分页方法来管理用户地址空间。 用分段方法来分配和管理用户地址空间,用分页方法来管理物理存储空间。 用分段方法来分配和管理主存空间,用分页方法来管理辅存空间。

操作系统习题答案

内存1通常情况下,在下列存储管理方式中,()支持多道程序设计、管理最简单,但存储碎片多;()使内存碎片尽可能少,而且使内存利用率最高。 Ⅰ.段式;Ⅱ.页式;Ⅲ.段页式;Ⅳ.固定分区;Ⅴ.可变分区 正确答案:Ⅳ;Ⅰ 2为使虚存系统有效地发挥其预期的作用,所运行的程序应具有的特性是()。正确答案:该程序应具有较好的局部性(Locality) 3提高内存利用率主要是通过内存分配功能实现的,内存分配的基本任务是为每道程序()。使每道程序能在不受干扰的环境下运行,主要是通过()功能实现的。Ⅰ.分配内存;Ⅱ.内存保护;Ⅲ.地址映射;Ⅳ.对换;Ⅴ.内存扩充;Ⅵ.逻辑地址到物理地址的变换;Ⅶ.内存到外存间交换;Ⅷ.允许用户程序的地址空间大于内存空间。 正确答案:Ⅰ;Ⅱ 4适合多道程序运行的存储管理中,存储保护是 正确答案:为了防止各道作业相互干扰 5下面哪种内存管理方法有利于程序的动态链接()? 正确答案:分段存储管理 6在请求分页系统的页表增加了若干项,其中状态位供()参考。 正确答案:程序访问 7从下面关于请求分段存储管理的叙述中,选出一条正确的叙述()。 正确答案:分段的尺寸受内存空间的限制,但作业总的尺寸不受内存空间的限制

8虚拟存储器的特征是基于()。 正确答案:局部性原理 9实现虚拟存储器最关键的技术是()。 正确答案:请求调页(段) 10“抖动”现象的发生是由()引起的。 正确答案:置换算法选择不当 11 在请求分页系统的页表增加了若干项,其中修改位供()参考。 正确答案:换出页面 12 虚拟存储器是正确答案:程序访问比内存更大的地址空间 13测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%。由此断定系统出现异常。此种情况下()能提高CPU的利用率。 正确答案:减少运行的进程数 14在请求调页系统中,若逻辑地址中的页号超过页表控制寄存器中的页表长度,则会引起()。 正确答案:越界中断 15 测得某个请求调页的计算机系统部分状态数据为:CPU利用率20%,用于对换空间的硬盘的利用率97.7%,其他设备的利用率5%。由此断定系统出现异常。此种情况下()能提高CPU的利用率。 正确答案:加内存条,增加物理空间容量 16 对外存对换区的管理应以()为主要目标,对外存文件区的管理应以()

存储管理练习题一带答案

. 存储管理练习题一一、单项选择题采用可重入程序是通过使用()的方法来改善响应时间的。1. B 改变时间片长短 A 减少用户数目 D 减少对换信息量 C 加快对换速度 (D可重入程序是指该程序被某进程调用,但还未结束,又被另一个进程调用。 可重入程序是通过减少对换信息量来改善系统响应时间的。 可重入程序主要通过共享来使用同一块存储空间的,或者通过动态链接的方式将所需的程序段映射到相关进程中去,其最大的优点是减少了对程序段的调入调出。由此来减少对换信息量。 ) 2.段式存储管理中,用于记录作业分段在主存中的起始地址和长度的是() A 基址寄存器和很长寄存器 B 段表 C 界限寄存器 D 上、下限寄存器 答案:B 3.固定分区存储管理中,CPU在执行作业的指令时,均会核对不等式()是否成立,若不成立,则产生地址越界中断事件,中止该指令的执行。 A 界限寄存器≤绝对地址≤最大地址 B 下限地址≤绝对地址<上限地址 C 基址寄存器内容≤绝对地址≤限长寄存器内容 D基址寄存器内容<绝对地址<限长寄存器内容 B答案:固定分区存储管理(适合多道程序设计) 1.分区的定义 固定分区存储管理是把主存储器中可分配的用户区域预先划分成若干个连续区,每一个连续区称为一个分区。 2.固定分区存储管理的特点 (1)分区大小固定 页脚 . (2)分区数目固定。 3.主存空间的分配与回收

存储管理设置“分区分配表”来说明各分区的分配和使用情况。表中指出各分区的起始地址和长度,并为每个分区设置一个标志位。标志位为“0”表示分区空间,非“0”表示分区已被占用。当有作业要装入分区,存储管理分配主存区域时,根据作业地址空间的长度与标志为“0”的分区的长度比较,当有分区长度 能容纳该作业时,则把作业装入该分区,且把作业名填到占用标志位上。否则,该作业暂时不能装入。作业运行结束后,根据作业名查分区分配表,把该分区的 占用标志置成“0”以示空闲。 4.地址转换和存储保护 因作业存放区域不会改变,可采用静态重定位方式把作业装入所在的分区号,且把该分区的下限地址和上限地址分别送入下限寄存器和上限寄存器中。处理器执行该作业的指令时必须核对:“下限地址≤绝对地址≤上限地址”如此等式不成立,产生“地址越界”中断事件。 5.为了提高主存空间的利用率,可以采用如下几种措施: (1)根据经常出现的作业的大小和数量来划分分区,尽可能使各个分区被充分利用。 (2)划分分区时按分区的大小顺序排列,低地址部分是较小的分区,高地址部分是较大的分区。 (3)按作业对主存空间的需求量排成多个作业队列,每个作业队列中的各作业 依次装入一个一个固定的分区中,每次装一个作业;不同作业队列中的作业分别依次装入不同的分区中;不同的分区中可同时装入作业;某作业队列为空时;页脚 . 该作业队列对应的分区也不用来装入其它作业队列中的作业,空闲的分区等到对应作业队列有作业时再被使用。

存储管理练习题一(带答案)

存储管理练习题一 一、单项选择题 1.采用可重入程序是通过使用()的法来改善响应时间的。 A 减少用户数目 B 改变时间片长短 C 加快对换速度 D 减少对换信息量 (D可重入程序是指该程序被某进程调用,但还未结束,又被另一个进程调用。 可重入程序是通过减少对换信息量来改善系统响应时间的。 可重入程序主要通过共享来使用同一块存储空间的,或者通过动态的式将所需的程序段映射到相关进程中去,其最大的优点是减少了对程序段的调入调出。由此来减少对换信息量。 ) 2.段式存储管理中,用于记录作业分段在主存中的起始地址和长度的是() A 基址寄存器和很长寄存器 B 段表 C 界限寄存器 D 上、下限寄存器 答案:B 3.固定分区存储管理中,CPU在执行作业的指令时,均会核对不等式()是否成立,若不成立,则产生地址越界中断事件,中止该指令的执行。 A 界限寄存器≤绝对地址≤最址 B 下限地址≤绝对地址<上限地址 C 基址寄存器容≤绝对地址≤限长寄存器容 D基址寄存器容<绝对地址<限长寄存器容 答案:B 固定分区存储管理(适合多道程序设计) 1.分区的定义 固定分区存储管理是把主存储器中可分配的用户区域预先划分成若干个连续区,每一个连续区称为一个分区。 2.固定分区存储管理的特点 (1)分区大小固定

(2)分区数目固定。 3.主存空间的分配与回收 存储管理设置“分区分配表”来说明各分区的分配和使用情况。表中指出各分区的起始地址和长度,并为每个分区设置一个标志位。标志位为“0”表示分区空间,非“0”表示分区已被占用。当有作业要装入分区,存储管理分配主存区域时,根据作业地址空间的长度与标志为“0”的分区的长度比较,当有分区长度能容纳该作业时,则把作业装入该分区,且把作业名填到占用标志位上。否则,该作业暂时不能装入。作业运行结束后,根据作业名查分区分配表,把该分区的占用标志置成“0”以示空闲。 4.地址转换和存储保护 因作业存放区域不会改变,可采用静态重定位式把作业装入所在的分区号,且把该分区的下限地址和上限地址分别送入下限寄存器和上限寄存器中。处理器执行该作业的指令时必须核对:“下限地址≤绝对地址≤上限地址”如此等式不成立,产生“地址越界”中断事件。 5.为了提高主存空间的利用率,可以采用如下几种措施: (1)根据经常出现的作业的大小和数量来划分分区,尽可能使各个分区被充分利用。 (2)划分分区时按分区的大小顺序排列,低地址部分是较小的分区,高地址部分是较大的分区。 (3)按作业对主存空间的需求量排成多个作业队列,每个作业队列中的各作业依次装入一个一个固定的分区中,每次装一个作业;不同作业队列中的作业分别依次装入不同的分区中;不同的分区中可同时装入作业;某作业队列为空时;

操作系统第九章习题,存储管理

第九章习题 1.在一个请求分页虚拟存储管理系统中,一个作业共有5页,执行时其访问 页面次序为: (1) 1、4、3、1、2、5、1、4、2、1、4、5。 (2) 3、2、1、4、4、5、5、3、4、3、2、1、5。 若分配给该作业三个页框,分别采用FIFO和LRU面替换算法,求出各自的缺页中断次数和缺页中断率。 答:(1) 采用FIFO为9次,9/12=75%。采用LRU为8次,8/12=67%。 (2) 采用FIFO和LRU均为9次,9/13=69%。 2.一个32位地址的计算机系统使用二级页表,虚地址被分为9位顶级页表, 11位二级页表和偏移。试问:页面长度是多少虚地址空间共有多少个页面 答:因为32-9-11=12,所以,页面大小为212B=4KB,页面个数为29+11=220个。 3.一台机器有48位虚地址和32位物理地址,若页长为8KB,问页表共有多 少个页表项如果设计一个反置页表,则有多少个页表项 答:8KB=213B.页表共有248-13=235个页表项。 反置页表,共有232-13=219个页表项。 4.一个有快表的请页式虚存系统,设内存访问周期为1微秒,内外存传送一 个页面的平均时间为5毫秒。如果快表命中率为75%,缺页中断率为10%。忽略快表访问时间,试求内存的有效存取时间。 答:快表命中率为75%,缺页中断率为10%,所以,内存命中率为15%。故内存的有效存取时间=1×75%+2×15%+(5000+2)×10%=微秒。 5.在请求分页虚存管理系统中,若驻留集为m个页框,页框初始为空,在长 为p的引用串中具有n个不同页面(n>m),对于FIFO、LRU两种页面替换算法,试给出缺页中断的上限和下限,并举例说明。 答:对于FIFO、LRU两种页面替换算法,缺页中断的上限和下限:为p和n。因为有n 个不同页面,无论怎样安排,不同页面进入内存至少要产生一次缺页中断,故下限为n次。由于m

操作系统实验四存储管理

宁德师范学院计算机系 实验报告 (2014—2015学年第二学期) 课程名称操作系统 实验名称实验四存储管理 专业计算机科学与技术(非师)年级2012级 学号B2012102147 姓名王秋指导教师王远帆 实验日期2015-05-20

2) 右键单击任务栏以启动“任务管理器”。 3) 在“Windows任务管理器”对话框中选定“进程”选项卡。 4) 向下滚动在系统上运行的进程列表,查找想要监视的应用程序。 请在表4-3中记录: 表4-3 实验记录 映像名称PID CPU CPU时间内存使用 WINWORD.EXE 5160 00 0:00:10 22772k 图1 word运行情况 “内存使用”列显示了该应用程序的一个实例正在使用的内存数量。 5) 启动应用程序的另一个实例并观察它的内存需求。 请描述使用第二个实例占用的内存与使用第一个实例时的内存对比情况: 第二个实例占用内存22772K,比第一个实例占用的内存大很多 4:未分页合并内存。 估算未分页合并内存大小的最简单方法是使用“任务管理器”。未分页合并内存的估计值显示在“任务管理器”的“性能”选项卡的“核心内存”部分。 总数(K) :________220___________ 分页数:__________167___________ 未分页(K) :_________34__________

图2核心内存 还可以使用“任务管理器”查看一个独立进程正在使用的未分页合并内存数量和分页合并内存数量。操作步骤如下: 1) 单击“Windows任务管理器”的“进程”选项卡,然后从“查看”菜单中选择“选择列”命令,显示“进程”选项卡的可查看选项。 2) 在“选择列”对话框中,选定“页面缓冲池”选项和“非页面缓冲池”选项旁边的复选框,然后单击“确定”按钮。 返回Windows “任务管理器”的“进程”选项卡时,将看到其中增加显示了各个进程占用的分页合并内存数量和未分页合并内存数量。 仍以刚才打开观察的应用程序(例如Word) 为例,请在表4-4中记录: 表4-4 实验记录 映像名称PID 内存使用页面缓冲池非页面缓冲池 WINWORD.EXE 2964 37488 951 42 从性能的角度来看,未分页合并内存越多,可以加载到这个空间的数据就越多。拥有的物理内存越多,未分页合并内存就越多。但未分页合并内存被限制为256MB,因此添加超出这个限制的内存对未分页合并内存没有影响。 5:提高分页性能。 在Windows 2000的安装过程中,将使用连续的磁盘空间自动创建分页文件(pagefile.sys) 。用户可以事先监视变化的内存需求并正确配置分页文件,使得当系统必须借助于分页时的性能达到最高。 虽然分页文件一般都放在系统分区的根目录下面,但这并不总是该文件的最佳位置。要想从分页获得最佳性能,应该首先检查系统的磁盘子系统的配置,以了解它是否有多个物理硬盘驱动器。 1) 在“开始”菜单中单击“设置”–“控制面板”命令,双击“管理工具”图标,再双击“计算机管理”图标。 2) 在“计算机管理”窗口的左格选择“磁盘管理”管理单元来查看系统的磁盘配置。 如果系统只有一个硬盘,那么建议应该尽可能为系统配置额外的驱动器。这是因为:Windows 2000最多可以支持在多个驱动器上分布的16个独立的分页文件。为系统配置多个分页文件可以实现对不同磁盘I/O请求的并行处理,这将大大提高I/O请求的分页文件性能。 请在表4-5中记录: 表4-5 实验记录

计算机操作系统第四章-存储器管理

第四章存储器管理 第0节存储管理概述 一、存储器的层次结构 1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。 2、各种存储器 ?寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问; ?内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问; ?磁盘高速缓存:存在于主存中; ?磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问; 由操作系统协调这些存储器的使用。

二、存储管理的目的 1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。(注意cpu和主存储器,这两类资源管理的区别) 2、存储管理的主要功能: ?地址重定位 ?主存空间的分配与回收 ?主存空间的保护和共享 ?主存空间的扩充 三、逻辑地址与物理地址 1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。 ●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。这个空间是以0为基址、线性或多维编址的。 2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。 ●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的; ●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。 四、地址映射(变换、重定位) 当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;

操作系统概论存储管理同步练习及答案

操作系统概论存储管理同步练习及答案 一、单项选择题 1.要保证一个程序在主存中被改变了存放位置后仍能正确执行,则对主存空间应采用()技术。 A.动态重定位B.静态重定位 C.动态分配D.静态分配 2.固定分区存储管理把主存储器划分成若干个连续区,每个连续区称一个分区。经划分后分区的个数是固定的,各个分区的大小()。 A.是一致的 B.都不相同 C.可以相同,也可以不相同,但根据作业长度固定 D.在划分时确定且长度保持不变 3.采用固定分区方式管理主存储器的最大缺点是()。 A.不利于存储保护B.主存空间利用率不高 C.要有硬件的地址转换机构D.分配算法复杂 4.采用可变分区方式管理主存储器时,若采用最优适应分配算法,宜将空闲区按()次序登记在空闲区表中。 A.地址递增B.地址递减C.长度递增D.长度递减 5.在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能要与相邻空闲区合并。在修改未分配区表时,使空闲区个数不变且空闲区始址不变的情况是()空闲区。A.无上邻也无下邻B.无上邻但有下邻 C.有上邻也有下邻D.有上邻但无下邻 6.在可变分区存储管理中,采用移动技术可以()。 A.汇集主存中的空闲区B.增加主存容量 C.缩短访问周期D.加速地址转换

7.页式存储管理中的页表是由()建立的。 A.操作员B.系统程序员C.用户D.操作系统 8.采用页式存储管理时,重定位的工作是由()完成的。 A.操作系统B.用户C.地址转换机构D.主存空间分配程序 9.采用段式存储管理时,一个程序如何分段是在()决定的。 A.分配主存时B.用户编程时C.装人作业时D.程序执行时 10.采用段式存储管理时,一个程序可以被分成若干段,每一段的最大长度是由()限定的。 A.主存空闲区的长度B.硬件的地址结构C.用户编程时D.分配主存空间时 11.实现虚拟存储器的目的是()。 A.扩充主存容量 B.扩充辅存容量C.实现存储保护D.加快存取速度 12.LRU页面调度算法是选择()的页面先调出。 A.最近才使用B.最久未被使用C.驻留时间最长D.驻留时间最短 13.若进程执行到某条指令时发生了缺页中断,经操作系统处理后,当该进程再次占用处理器时,应从()指令继续执行。 A.被中断的前一条B.被中断的后一条C.被中断的D.开始时的第一条 14.下面的存储管理方案中,()方式可以采用静态重定位。 A.固定分区B.可变分区 C.页式D.段式 二、多项选择题 1.采用()管理方式时应使作业使用的逻辑地址空间和占用的绝对地址空间都是连续的。A.固定分区 B.可变分区 C.页式 D.段式 E.段页式 2.可实现虚拟存储器的存储管理方式有()。 A.固定分区

存储管理习题与解答

存储管理习题与解答-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

1、在采用页式存储管理的系统中,某作业J的逻辑地址空间为4页(每页2048字节),且已知该作业的页面映像表(即页表)如下: 试借助地址变换图(即要求画出地址变换图)求出有效逻辑地址4865所对应的物理地址 1、一页大小为2048字节,则逻辑地址4865的页号及页内位移为: 页号 4865/2048=2 页内位移 4865-2048×2=769 然后,通过页表查知物理块号为6,将物理块号与逻辑地址中的页内位移拼接,形成物理地址,即: 6×2048+769=13057

2、设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块,试问逻辑地址至少应为多少位? 存储空间有多大? 2、每页2048字节,所以页内位移部分地址需要占据11个二进制位; 逻辑地址空间最大为16页,所以页号部分地址需要占据4个二进制位。 故逻辑地址至少应为15位。 由于内存共有8个存储块,在页式存储管理系统中,存储块大小与页面的大小相等,因此内存空间为16K(2048×8/1024=16K)

3、有一请求分页存储管理系统,页面大小为每页100字节。有一个50×50的整型数组按行连续存放,每个整数占两个字节,将数组初始化为0的程序描述如下:int a[50][50];int i,j; for(i=0;i<=49;i++) for(j=0;j<=49;j++) a[i][j]=0; 若在程序执行时内存中只有一个存储块用来存放数组信息,试问该程序执行时产生多少次缺页中断? 3、该数组共有2500个整数,每个整数占用2个字节,共需存储空间5000个字节;而页面大小为每页100字节,数组占用空间50页。假设数据从该作业的第m页开始存放,则数组分布在第m页到第 m+49页中,它在主存中的排列顺序为: a[0][0],a[0][1],…,a[0][49] 第m页 a[1][0],a[1][1],…,a[1][49] 第m+1页 … a[49][0],a[49][1],…,a[49][49] 第m+49页 由于该初始化程序是按行进行的,因此每次缺页中断调进一页后,位于该页内的数组元素全部赋予0值,然后再调入下一页,所以涉及的页面走向为m,m+1,…,m+49,故缺页次数为50次。

操作系统 第四章 存储管理习题

第四章存储管理习题 一、选择题 1、存储分配解决多道作业(A)的划分问题。为了解决静态和动态存储分配,需采用地址重定位,即把(B)变换成(C),静态重定位由(D)实现,动态重定位由(E)实现。 A:①地址空间②符号名空间③主存空间④虚拟空间 B、C:①页面地址②段地址 ③逻辑地址 ④物理地址⑤外存地址⑥设备地址 D~E:①硬件地址变换机构 ②执行程序 ③汇编程序 ④连接装入程序 ⑤调试程序 ⑥编译程序 ⑦解释程序 2、提高主存利用率主要是通过(A)功能实现的。(A)的基本任务是为每道程序做(B);使每道程序能在不受干扰的环境下运行,主要是通过(C)功能实现的。

A、C:①主存分配②主存保护③地址映射 ④主存扩充 B:①逻辑地址到物理地址的变换; ②内存与外存间的交换; ③允许用户程序的地址空间大于内存空间; ④分配内存 3、由固定分区方式发展为分页存储管理方式的主要推动力是(A);由分页系统发展为分段系统,进而以发展为段页式系统的主要动力分别是(B)。 A~B:①提高主存的利用率; ②提高系统的吞吐量; ③满足用户需要; ④更好地满足多道程序运行的需要; ⑤既满足用户要求,又提高主存利用率。 4、静态重定位是在作业的(A)中进行的,动态重定位是在作业的(B)中进行的。 A、B:①编译过程;②装入过程;③修改过程;④执行过程 5、对外存对换区的管理应以(A)为主要目标,对外存文

件区的管理应以(B)为主要目标。 A、B:①提高系统吞吐量;②提高存储空间的利用率;③降低存储费用;④提高换入换出速度。 6、从下列关于虚拟存储器的论述中,选出一条正确的论述。 ①要求作业运行前,必须全部装入内存,且在运行中必须常驻内存; ②要求作业运行前,不必全部装入内存,且在运行中不必常驻内存; ③要求作业运行前,不必全部装入内存,但在运行中必须常驻内存; ④要求作业运行前,必须全部装入内存,且在运行中不必常驻内存; 7、在请求分页系统中有着多种置换算法:⑴选择最先进入内存的页面予以淘汰的算法称为(A);⑵选择在以后不再使用的页面予以淘汰的算法称为(B);⑶选择自上次访问以来所经历时间最长的页面予淘汰的算法称为(C); A~D:①FIFO算法;②OPT算法;③LRU 算法;④NRN算法;⑤LFU算法。 8、静态链接是在(A)到某段程序时进行的,动态链接是

操作系统复习-存储管理

3.1 内存管理基础 内存管理的主要任务是:为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及从逻辑上扩充存储器。内存管理包括:内存分配,内存保护,地址映射,内存扩充。 --------------------------------------------------------------------------------------------- 应用程序的处理一般过程:由相应的语言处理程序将源程序模块对应转换成目标模块->由链接程序将所有相关的目标模块链接到一起,整合成一个可执行程序->由装入程序将程序装入内存后予以执行。 重定位的概念: 由于编译程序无法确定目标代码在执行时所对应的地址单元,故一般从0号单元开始为其编址。这样的地址称为相对地址、程序地址或虚拟地址。因此当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成内存地址,这个过程称为地址重定位。 重定位分为静态重定位和动态重定位两种,静态重定位在装入时将所有相对地址转换成绝对地址,这种装入方式要求作业在装入时就必须分配其要求的所有空间,整个运行过程中不能在内存中移动,也不能申请新空间;动态重定位是装入时不地址转换,在执行过程中由硬件的地址转换机构转换成绝对地址,这种装入方式可以将程序分配到不连续的存储区中,不必装入所有代码就可以运行,但是需要硬件支持。 在重定位中通常设置一个重定位寄存器,里面放的是程序的基址,物理地址=基址+相对地址程序链接的方式: 静态链接:在运行前链接 装入时动态链接:边装入边链接 运行时动态链接:运行到需要处才链接,便于修改和更新,便于实现共享 程序装入的方式: 绝对装入方式:在编译时就知道程序要驻留的内存地址(和静态重定位完全不是一回事)可重定位装入方式:有静态重定位和动态重定位两种 其他方式:和分页和分段相结合 --------------------------------------------------------------------------------------------- 交换和覆盖的目的都是扩充逻辑内存 交换技术:把暂时不用的某个程序及数据部分(或全部)从内存中移到外存,或吧指定的程序或数据从外存读到内存。交换技术打破了一个程序一旦进入主存便一直运行到结束的限制。 覆盖技术:(定义略)覆盖技术要求程序员实现把一个程序划分成不同的程序段,并规定好它们的覆盖结构。打破了一个进程必须在全部信息都装入内存后才可运行的限制。 --------------------------------------------------------------------------------------------- 连续分配管理方式: (1)单一连续分配:把内存空间分为系统区和用户区,每次只装入运行一个程序,存储器利用率极低。 (2)固定分区分配:将内存用户空间划分为若干个固定大小的区域,每个分区只装一道作业,分区大小可以相等也可以不等 优点:可用于多道程序系统最简单的存储分配

存储管理例题

内存管理 第一部分:重点难点 1.地址重定位 2.分区分配;(固定分区,动态分区),动态分区算法 3.分页与分段存储管理 4.段页式存储管理 5.虚拟存储器 则逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。

解:页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。 逻辑地址0A5C(H)所对应的二进制表示形式是: 地址,编码“00010”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理 块地址为:0100,拼接块内地址125C(H)。 3.对一个将页表存放在内存中的分页系统 (1)如果访问内存需要0.2us,有效访问时间是多少? (2)如果增加一快表,且假定在快表中找到页表项的几率为90%,则有效的访问时间又是多少?(不考虑查找快表所需时间) 解:(1)有效访问时间为2*0.2=0.4us(两次访问内存:页表+内存) (2 4 5、2、1、5、 6、2、1)调度算法, 6 (1 (2 解(1) 7 (3 解: (1 (2 (3 (4 (5 (6 (7 8、为什么说分段系统较之分页系统更易于实现信息共享和保护? 解: a.对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,故需要建立大量的页表项; b.而对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应。

操作系统 第4章 存储管理习题

1、某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB. 假定某时刻为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚拟地址0A5C和093C变换为物理地址. a.将0A5C变换为2进制为: 0000,1010,0101,1100,由于页面大小为1KB约为2的10次方, 所以0A5C的页号为2,对应的物理块号为:4,所以虚拟地址0A5C的物理地址为125C; b.将093C变换为2进制为: 0000,1001,0011,1100,页号也为2,对应的物理块号也为4, 此时虚拟地址093C的物理地址为113C. 2、在一个请求分页系统中,采用LRU页面置换算法时,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,当分配给该作业的物理块数M分别为3和4时,试计算访问过程中所发生的缺页次数和缺页率?比较所得结果? 答案: a.当分配给该作业的物理块数M为3时,所发生的缺页率为7,缺页率为: 7/12=0.583; b. 当分配给该作业的物理块数M为4时,所发生的缺页率为4,缺页率为: 4/12=0.333. 3、什么是抖动? 产生抖动的原因是什么? a. 抖动(Thrashing)就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,以致花费大量的时间,我们称这种现象为"抖动"; b. 产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于"抖动"状态. 【例1】可变分区存储管理系统中,若采用最佳适应分配算法,“空闲区表”中的空闲区可按(A )顺序排列 A、长度递增 B、长度递减 C、地址递增 D、地址递减 分析:最佳适应算法要求每次都分配给用户进程能够满足其要求的空闲区中最小的空闲区,所以为了提高算法效率,我们把所有的空闲区,按其大小以递增的顺序形成一空闲分区链这样,第一个找到的满足要求的空闲区,必然是符合要求中最小的所以本题的答案是A 【例2】虚拟存储技术是(B ) A、扩充主存物理空间技术 B、扩充主存逻辑地址空间技术

操作系统存储器管理

存储器管理(固定分区、可变分区与分页式分配算法) 一、目的 本课题实验的目的是,使学生实验存储器管理系统的设计方法;加深对所学各种存储器管理方案的了解;要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统并调试运行。 二、实验内容 模拟固定分区分内存的动态分配和回收,并编程实现。 三、要求及提示 (1)建立相关的数据结构,作业控制块、已分配分区及未分配分区 (2)实现一个固定分区分配算法(实现多个分区只设置一个后备作业队列, 而每个分区设置一个后备作业队列 ,留给大家实现) (3)实现一个分区回收算法 (4)要求采用一种常用的存储器分配算法,设计一个存储器管理模拟系统。允许进行多次的分配和释放,并可向用户反馈分配和释放情况及当前内存的情况;采用“命令菜单”选择和键盘命令输入的会话方式,根据输入请求调用分配模块,或回收模块,或内存查询模块,或最终退出系统。 (5)编程实现。 (6)工具:C语言或其它高级语言 四、实验报告 1、列出调试通过程序的清单,并附上文档说明。 2、总结上机调试过程中所遇到的问题和解决方法及感想。 五参考代码: // memdos.cpp : 定义控制台应用程序的入口点。 //以下代码为4种分区,8K分区四块,16K分区3块,32分区2块, 64分区1块, 共10块 #include "stdafx.h" #include #include //#include #define TRUE 1 #define FALSE 0 void InitCSolid( ); void ExitSolid(); int MallocArea(int nSize,char* sName);//申请一个分区函数 int FreeArea(char *sName); //释放一个分区函数 void ShowArea( );//显示所有分区状态函数

相关文档
最新文档