1、第 3 章 存储器管理3.1 存储器管理概述3.2 单用户连续存储管理方式3.3 固定分区存储管理方式3.4 可变分区存储管理方式3.5 页式存储管理方式3.6 段式存储管理方式3.7 段页式存储管理方式3.8 虚拟存储管理方式3.1 存储器管理概述3.1.1 存储器管理的主要任务存储管理的主要任务是尽可能方便用户和提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。3.1.2 存储器管理的主要功能1主存空间的分配和回收2地址转换3主存空间的共享与保护4主存空间的扩充3.1.3 存储器的层次目前,计算机均采用分层结构的存储子系统,以便在容量、速度和价格等因素中获得较好的性价
2、比。图中,上面的速度快,下面的容量大。寄存器、高速缓存、主存和磁盘缓存属于 OS存储管理范围,掉电后数据丢失;固定磁盘和可移动存储介质属于设备管理范围,数据可长期保存;磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存空间的扩充。寄存器访问速度最快且最昂贵,它容量小,以字(word)为单位。一个计算机系统可能包括几十个至上百个寄存器,用于提高存储访问速度。比如,用寄存存放操作数,或用地址寄存器加快地址转换速度。高速缓存的容量稍大,速度快于主存,利用它存放主存中马上要访问的指令,可大大提高执行速度。主存的速度为 1s,高速 缓 存 为 0.1s。要 执 行的程序必 须 先装入
3、主存,根据局部性原理,只要将程序的一部分装入主存就可以 执 行,其余部分放在磁 盘缓 存。3.1.4 高速缓存( cache)高速缓存是现代计算机结构中的一个重要部件。 有些 cache由硬件实现:如,指令 cache,用于暂存下一条欲执行的指令,纯硬件 cache不需要 os控制。 有些 cache由程序员、编译系统和 os实现:如,快表。在采用 cache的系统中,要注意解决数据的一致性问题。因为这时数据可能出现在不同的层次上。在多处理机的环境中,情况会更复杂。3.1.5 源程序的执行过程要将一个源程序投入运行,必须经过编译、链接、装入和运行几个过程。如下图所示。( 1)编译。由编译程序将
4、用户源代码编译成若干个目标模块。( 2)链接。由链接程序将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块。( 3)装入。由装入程序将装入模块装入主存的过程。 由源程序经过编译、链接产生装入程序代码的工作是由语言编译程序完成的,把装入模块装入主存是由操作系统的装入控制程序完成的。源程序 目标程序 装入程序代码 主存编译 链接 装入语言编译程序 操作系统图 3-1 源程序的执行过程库函数3.1.6 地址转换在编写程序时,所用到的地址是从 “0”开始的地址空间,这个地址被称为逻辑地址或相对地址(虚拟地址)。当将其装入内存后得到的地址才是其真正的内存存储地址,这个地址称为物理
5、地址或绝对地址。把程序和数据的逻辑地址转换为物理地址的过程称为地址转换或重定位。 地址转换有两种方式:1静态重定位静态重定位是在程序执行之前,由作业装入程序将程序装入内存,同时实现地址转换。一旦确定下来的地址就不再改变。LOAD A,1250036510000110001250015000LOAD A,25003655000010002500图 3-2 作业装入主存时的情况作业 主存特点:静态重定位程序,在内存中不能移动,而且必须连续存放。优点:不需要增加硬件地址变换装置,实现简单。缺点: 程序占用连续的存储空间。如果没有足够大的连续空间,作业只能等待。 不能实现虚拟存储技术。因为程序只能一次完全装入内存。 无法实现程序的共享。不能寻址存储区,每个程序的寻址范围只在自己的存储区范围内。 2动态重定位动态重定位是在程序执行过程中,随着每条指令和数据的访问自动地连续地进行转换,这种重定位的实现需要硬件的帮助,一般是靠硬件地址变换机构实现的。特点:动态重定位程序在内存中可不连续存放,并可在内存中移动。优点: 可以对主存不连续分配,灵活、方便,存储效率高。 可以实现虚拟存储技术。 可以实现程序的共享。缺点: 需要增加硬件(界限寄存器、页表寄存器)。 实现存储管理的软件算法比较复杂。