§6.1 存储管理的基本概念
一、存储管理研究的课题
目前关于存储管理的主要研究课题为:
(1)存储分配问题。重点是研究存储共享和各种分配算法。
(2)地址再定位问题。研究各种地址变换机构,以及静态和动态再定位方法。
(3) 存储保护问题。研究保护各类程序、数据区的方法。
(4) 存储扩充问题。主要研究虚拟存储器问题及其各种调度算法。
二、地址再定位
逻辑地址---用户程序经编译后,每个目标模块以0为基地址进行的顺序编址。逻辑地址又称相对地址,相对基地址而言,。
物理地址---内存中各物理存储单元的地址从统一的基地址进行的顺序编址。物理地址又称绝对地址,它是数据在内存中的实际存储地址。
再定位---把逻辑地址转变为内存的物理地址的过程。地址再定位有两种方式:(1)静态再定位(在程序执行之前进行地址再定位,即装入内存时再定位)和动态再定位(在程序执行期间,在每次存储访问之前进行地址再定位)。
三、 虚拟存储器
虚拟存储器(Virtual Memory)是一种存储管理技术,用以完成用小的内存实现在大的虚空间中程序的运行工作。虚拟存储器是由操作系统提供的一个假想的特大存储器。
虚拟存储器所具有的基本特征是:
(1)虚拟扩充:不是物理上、而是逻辑上扩充了内存容量;
(2)部分装入:每个作业不是全部一次性地装入内存,而是只装入一部分;
(3)离散分配:不必占用连续的内存空间,而是"见缝插针";
§6.2 早期的存储管理
一、 单一连续分配
最简单的存储分配方法是单一连续分区分配,即整个主存区域的用户空间均归一个用户作业使用。
二、 分区分配
由于多道程序设计技术的产生,几个作业得以共享主存储区,因此可以采取分区法分配内存。分区法通常有:
1、固定式分区法
固定式分区法的基本思想是在系统生成时就将主存划分为若干个分区,每个分区的大小可不等,但事先必须固定,以后也不能改变;
2、可变式分区法
即动态划分存储器的分区方法,它是在作业装入和处理过程中建立的分区,并且要使分区的容量能正好适应作业的大小。回收分区时,合并相邻空闲分区从而避免分区越来越小(碎片);
3、可再定位式分区分配
即浮动分区分配;在装入作业时,根据需要及时地将空闲存储区拼接在一起,以消除碎片,满足作业对存储空间的要求;
解决碎片的方法是移动所有的占有区域,以使所有的空闲区域连成一片,这个过程称作紧凑。紧凑的开销很大,因为它不仅要修改被移动进程的地址信息,而且要复制进程空间,所以如不必要,尽量不做紧凑;通常仅在系统接收到进程所发出的申请命令,且每个空闲区域单独均不能满足,但所有空闲区域的和能够满足时才进行一次紧凑。
3、 对换
当主存空间不能满足作业要求时,通过对换技术来解决。对换是指系统把内存中暂时不能运行的进程换出到外存上,腾出空间,把具备运行条件的进程从外存换入内存。
对换是以时间来换取空间,减少对换的信息量和时间是设计时要考虑的问题 。
§6.3、6.4 分页存储管理
页式存储管理的基本原理是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。页式系统的逻辑地址分为页号和页内位移量。页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就形成存储空间的物理地址。每个作业的逻辑地址空间是连续的,而映象到内存空间后就不一定连续了。
此外,页表中还包括状态位(指示该页面是否在内存中)、外存地址、改变位(该页的内容在内存中是否修改过)、引用位(最近是否被引用)等。
页式存储管理的动态地址转换过程是:进程运行时,其页表地址已在系统的动态地址转换机构中的基本地址寄存器中,执行的指令访问逻辑地址(p,d)时,首先根据页号p查页表,由状态位可知,这个页是否已经调入主存。若调入主存,则可直接将虚地址转换为实地址,如果该页未调入主存,则产生缺页中断,以装入所虚的页。利用快表可加速地址转换。
页面置换算法
虚存中的置换算法只要指内存中页面、段的选择、换出算法。好的置换算法能适当降低页面更换频率。有3种常用的页面置换算法:
(1)先进先出算法(FIFO):先进入内存的页先被换出内存。
(2)最近最久未用置换算法(LRU):选择最近最久没有使用过的页面换出。
(3)LRU近似算法:这种算法,只要在存储分块表MBT(或页表PMT)中设一“引用位”,当存储分块表中的页被访问时,该位由硬件自动置“1”,而由页面管理软件周期地(设周期为T)把所有引用位置“0”。当需要置换一老页时,选择其引用位为“0”的页进行替换。
§6.5 分段存储管理
段式存储管理的基本原理是逻辑地址空间分段,一个作业是由若干个具有逻辑意义的段,如主程序、子程序、数据段、栈段等组成的。在分段系统中,允许作业占据主存中许多分离的分区,段内连续,段有段号,但段长可以相同,通过段表进行管理。段式系统的逻辑地址由段号和段内位移量两项组成。段表由若干表目组成,每一表目有段号、段长、在主存中的首地址、存取方式和状态位等项。作业访问虚存时,根据地址空间的段号,查找段表对应段号找到段的首地址,首地址加上位移量就是存储空间的物理地址。
段式系统的动态地址转换过程与页式系统的动态地址转换类似。另外,要注意分页与分段存储管理的区别。
§6.6 段页式存储管理
汲取页式管理和段式管理的长处,可以形成段页式存储管理。在逻辑上,形成作业分段,段内分页,分配、管理地址空间。在物理上,内存分块,分配、管理存储空间。系统为每个作业建立一张段表,为每段建立一张页表。其地址转换过程见教材146页图6.32所示。
|