2009年3月20日星期五

电脑专家——操作系统知识详解(三)存储管理

存储管理使用的基本概念

存储器结构:大部分的计算机都有一个存储器层次结构,它由少量的非常快速、昂贵、易变的高速缓存(cache),若干兆字节的中等速度、中等价格、易变的主存储器(RAM),和数百兆或数千兆字节的低速、廉价、不易变的磁盘组成。操作系统的工作就是协调这些存储器的使用。
逻辑地址:用户程序经编译后,每个目标模块以0为基地址进行的顺序编址。逻辑地址又称相对(程序、虚拟)地址,相对基地址而言,。
物理地址:内存中各物理存储单元的地址从统一的基地址进行的顺序编址。物理地址又称绝对地址,它是数据在内存中的实际存储地址。
地址空间:由逻辑地址组成的空间称为逻辑空间,由绝对地址组成的空间称为绝对空间。
重定位:把逻辑地址转变为内存的物理地址的过程。根据重定位时机的不同,又分为静态重定位(装入内存时重定位)和动态重定位(程序执行时重定位)。
1)静态重定位:是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。对每个程序而言,这种地址变换是在装入时一次完成,在程序运行期间不再进行重定位。
2)动态重定位:是在程序执行期间每次访问内存之前进行重定位。这种变换主要是靠硬件地址变换机构实现的。
存储管理的目的及功能:
目的是方便用户,提高内存资源的利用率,实现内存共享。
功能主要有内存的分配和管理、内存的扩充技术、内存保护技术
分区分配存储管理

最简单的存储分配方法是单一连续分区,即整个主存区域的用户空间均归一个用户作业使用。

由于多道程序设计技术的产生,几个作业得以共享主存储区,因此可以采取分区法分配内存。分区法通常有:

1)固定分区:是一种静态分区方式,在系统生成时已将主存划分为若干区,每个分区大小可不等但已确定。这种分区方式易产生内碎片。

2)可变分区:是一种动态分区方式,主存划分在作业装入时进行,分区个数可变,大小等于作业大小。可变分区需二种管理表格:已分配表和未分配表。请求和分区主要有4种算法:最佳适应算法、最差适应算法、首次适应算法和循环首次适应算法。 可变分区会产生碎片。

3)可重定位分区:在装入作业时,根据需要及时地将空闲存储区拼接在一起,消除碎片,使之成为连续区域,满足作业对存储空间的要求;

解决碎片的方法是移动所有的占有 区域,以使所有的空闲区域连成一片,这个过程称作紧凑。紧凑的开销很大,因为它不仅要修改被移动进程的地址信息,而且要复制进程空间,所以如不必要,尽量 不做紧凑;通常仅在系统接收到进程所发出的申请命令,且每个空闲区域单独均不能满足,但所有空闲区域的和能够满足时才进行一次紧凑。

4)内存保护技术:保护系统工作区和用户作业区,特别是如何防止系统区被破坏。方法有界限寄存器。

分页存储管理

1.纯分页存储管理(静态页面管理)
分页管理的重点在于页划分之后的地址变换以及页面的调入调出技术。
1)分页管理原理
(1) 逻辑空间分页:将一个进程的逻辑地址空间划分成若干大小相等的部分,每一部分称做页面或页,页面的大小通常在1KB~4KB范围内;但是,页的大小总是2的幂。每页都有一个编号,叫做页号。
(2)内存空间分块:把内存也划分成与页面相同大小的若干个存储块,称做内存块或页框。
(3)内存分配原则:进程的若干页分别装入物理上不相邻的内存块中。
2)地址变换
(1)逻辑地址表示形式是:页号+页内地址(p,d)。如图2-2所示。
31
12
11
0
页号(p):1M个页面
页内地址(d):4KB地址
图2-2 逻辑地址
逻辑地址的页号p和页内地址d的计算公式为:
页号p=INT[A/L]
页内地址d=[A] MOD L
其中:A为逻辑地址,L为页面大小。
例:已知:A=3456 L=1KB 求页号p、页内地址d的解答如下:
逻辑地址A
0
1024
2048
3072
3456
页号p
 
p=1
p=2
P=3
页内地址d=384
(2)页表:用一个表结构将逻辑地址的页号与物理块号相映射。系统为每一个进程建立一个页表。一个页号对应一个块号。如下图所示。
    
(3) 分页系统中的地址映射
当进程要访问某个数据时,分页地址系统(MMU)硬件自动按页面大小将CPU得到的逻辑地址分成两部分(p,d),以页号p去页表查得块号f,再将块号与位移d拼成物理地址,从而完成地址的转换。
2.快表
目的是加速地址转换。
若页表是存放在内存中,则每次访问内存时,都要先访问一次内存中的页表,然后根据所形成的物理地址再次访问内存。这使访问内存的次数增加了近一倍,从而使计算机的处理速度也降低了近一倍,以这样的代价来换取存储器的利用率的提高显然是得不偿失的。
为了提高地址变换的速度,可在地址变换机构中增设一组数量不多的寄存器,把它作为高速缓冲存储器(Cache)(即通过硬件技术),又称为“联 想存储器”或“快表”,用于存放当前访问的那些页表项,此时的地址变换过程为:在CPU给出了有效地址后,地址变换机构自动地将页号P送入高速缓存,再确 定所需的页是否在快表中。若在,则直接读出该页所对应的物理块号,并送物理地址寄存器;若在快表中未找到对应的页表项,需再访问内存中的页表,找到后,把 从页表中读出的页表项存入快表中的一个寄存器单元中,以取代一个老的、已被认为不再需要的页表项。
分段式存储管理
1· 分段
段的定义:一组逻辑信息的集合。
将一个作业按照其不同的功能,分成若干个相对独立的部分--段。为每个段命名,并编号(段号)。每个段由0地址开始,采用连续编号;段的长度为段的空间。
 
        
2· 程序的地址结构:
段中的指令由两个部分组成:段号s和段内地址d。
    
3· 内存分配:
以段为单位进行分配,每个段单独占用一块或连续的几个内存块,各分块大小由段的大小决定。
4· 段表和段表地址寄存器:
系统为每个进程建立一个段映射表-称段表。作业进入内存时建立段表,撤消时清除段表。
段表存放于内存中,系统为其建立一个寄存器:指出段表在内存中的起始地址和段表的长度。
5· 分页与分段的区别:
1)页是信息的物理单位,段是信息的逻辑单位;
2)页的大小是由系统固定的,段的长度由程序内容确定(可变的);
3)分页的地址空间是一维的,分段的地址空间是二维的。
6· 段页式存储管理:
还可将页式存储管理和段式存储管理结合形成段页式存储管理。其特点:
1)每一段分若干页,再按页式管理,页间不要求连续;
2)用分段方法分配管理作业,用分页方法分配管理内存;
3)兼有段式和页式管理的优点,系统复杂和开销增大,一般在大型机器上才使用。
虚拟存储管理
1)局部性原理
程序的局部性是指在一较短时间内,程序的执行仅限于某个部分;相应地,它所访问的存储空间也局限于某个区域。表现为:
(1)时间局部性。如果程序中的某条指令一旦执行,则不久后该指令可能再次执行,如果某个数据结构被访问,则不久以后该数据结构可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作。
(2)空间局部性。一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也被访问。即程序在一段时间内所访问的地址,可能集中在一定的范围内,其典型情况便是程序顺序执行。
2)虚拟存储器的定义和特点
虚拟存储器(Virtual Memory)是一种存储管理技术,用以完成用小的内存实现在大的虚空间中程序的运行工作。简单地说,虚拟存储器是由操作系统提供的一个假想的特大存储 器。(虚存是由操作系统调度,采用内外存的交换技术,各道程序在必需使用时调入内存,不用的调出内存,这样好象内存容量不受限制。)
虚存有如下特点:
(1)虚拟扩充:不是物理上、而是逻辑上扩充了内存容量;
(2)虚存容量不是无限的,极端情况受内存和外存可利用的总容量限制;虚存容量还受计算机总线地址结构限制;
(3)部分装入,多次对换:每个作业不是全部一次性地装入内存,而是只装入一部分;所需的全部程序和数据要分成多次调入内存。
(4)速度和容量的“时空”矛盾,虛存量的“扩大”是以牺牲CPU工作时间以及内外存交换时间为代价的。
(5)离散分配:不必占用连续的内存空间,而是"见缝插针";
3)虚拟存储器的实现
虚拟存储器根据地址空间的结构不同可以分为两类:分页的虚拟存储器和分段的虚拟存储器,也可以将二者结合起来,构成段页式的虚拟存储器。
(1)请求分页系统
它是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。它允许只装入若干页(而非全部程序)的用户程序和数据, 便可启动运行。以后,再通过调页功能及页面置换功能,陆续地把即将要运行的页面调入内存,同时把暂不运行的页面换出到外存上,置换时以页面为单位。
(2)请求分段系统
这是在分段系统的基础上,增加了请求调段及分段置换功能后,所形成的段式虚拟存储系统。它允许只装入若干段(而非所有的段)的用户程序和数据,即可启动运行。以后再通过调段功能和段的置换功能,将暂不运行的段调出,同时调入即将运行的段,置换是以段为单位的。
(3)请求段页式系统
它是在段页式系统的基础上,添加了请求调页和页面置换功能所形成的短页式虚拟存储系统。
4)页面淘汰算法
(1)最佳置换法(OPT):其实质是:当调入新的一页面必须预先淘汰某个老页时,所选择的老页应在将来不再被使用,或者是在最远的将来才被访问。
(2)先进先出法(FIFO): 其实质,总是选择主存停留时间最长(即最老)的一页淘汰,即先进入内存的页先被换出内存。它有贝莱迪(BELADY)异常现象:物理块增加,缺页次数反而增加。
(3)最近最少使用置换法(LRU):其实质是:当需要置换一页时,选择在最近一段时间里最久没有使用过的页面予以淘汰。
(4)最近未使用置换法(NUR):最近未使用算法是LRU算法的近似方法,它比较易于实现,开销也比较少
5)请求分页系统中的硬件支持
实现请求分页,必须提供一套硬件的支持:一定容量的内存和外存,以支持分页机制;具备页表机制、缺页中断机构和地址转换机构。
(1)页表机制:
在请求分页系统中,页表不仅要包含该页在内存的基址,还含有以下内容:
  
在换进、换出时参考。
(2)缺页中断机构:
CPU一旦发现要访问的页不在内存,中断机构就要立即产生中断信号。
缺页中断由硬件和软件共同处理实现。
(3)地址变换机构:
在分页系统的地址变换机构的基础上增加某些功能而形成。如产生和处理缺页中断、换页等

没有评论:

发表评论