文档介绍:第三章存储管理
§ 存储管理的概念(*)
§ 分区存储管理(*)
§ 页式存储管理(*****)
§ 段式存储管理(×)
§ 段页式存储管理(×)
存储器
主存(内部存储器,磁芯存储器)
辅存(外存)磁盘、磁带、软盘
高速缓冲存储器
主存
系统区(存放OS程序和数据)
用户区(存放用户程序、数据)
由于系统开工期间,OS程序与其他程序一起共享主存,为安全起见,多道程序系统常由OS把内存初始化为:
二、常用的基本概念
物理地址(绝对地址):。
物理地址的集合称为物理地址空间,也叫绝对地址空间或实空间或存储空间,亦即内存空间。存储空间中的单元一般都是按字节从0开始连续编址的,如一个256MB的内存,其地址范围是0 ~ (256M—1)。
逻辑地址(相对地址):程序用来访问信息所用的一系列的地址单元。又称相对地址或虚地址。
逻辑地址的集合称为逻辑地址空间,也叫相对地址空间或虚空间或地址空间。
作业运行时不能按其相对地址访问内存单元,而应按相应的物理地址访问,需要进行相对地址到物理地址的转换。
当一个地址装入与其地址空间不一致的存储空间中,就得要地址变换。也就是说将虚地址映射为内存地址,把这种作法叫做地址重定位
=》静态重定位:是指在程序运行之前由装入程序完成的重定位过程。在装入一个作业时,把作业中的指令地址全部转换为绝对地址(地址转换工作是在作业执行前集中一次完成的)在作业执行过程中就无须再进行地址转换工作。
=》动态重定位:是在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转换成内存地址.
动态重定位由软件(操作系统)和硬件(地址转换机构)相互配合来实现。动态重定位的系统支持“程序浮动”,而静态重定位则不能。
=》覆盖(overlay技术)
所谓覆盖,是指同一主存区可以被不同的程序段重复使用。通常一个作业由若干个功能上相互独立的程序段组成,作业在一次运行时,也只用到其中的几段,利用这样一个事实,我们就可以让那些不会同时执行的程序段共用同一个主存区。因此,我们把可以相互覆盖的程序段叫做覆盖。而把可共享的主存区叫做覆盖区。
主程序(30k)
主程序(30k)
子程序 A(8k)
子程序 B(10k)
子程序M(20k)
子程序N(25k)
子程序X(15k)
主程序(30k)
覆盖区1(25k)
覆盖区0
(10k)
内
存
区
用
户
的
结
构
化
程
序
区
覆盖的基本原理可用图例说明。
由图中的调用关系不难看出:
主程序是一个独立的段,它调用子A和子B,且子A与子B是互斥被调用的两个段,在子A执行过程中,它调用子X,而子B执行过程中它又调用子M和子N,显然子M和子N也是互斥被调用的。
覆盖技术的主要特点是打破了必须将一个作业的全部信息装入主存后才能运行的限制。在一定程度上解决了小主存运行大作业的矛盾。
=> 交换(swapping)技术
交换技术被广泛地运用于早期的小型分时系统的存贮管理中。
所谓交换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。所以,交换技术也叫对换或滚进滚出(roll-in,roll-out)。也有的系统叫挂起调度或中级调度。
被换出到外存的程序只是临时被剥夺了对内存的使用权,过一段时间,还必须换入内存运行。因此,交换是一种用时间换空间的技术。
交换的时机通常在以下情况发生:
①作业的进程用完时间片或等待输入输出;
②作业要求扩充存贮而得不到满足时。
同覆盖技术一样,交换技术也是利用外存来逻辑地扩充主存。
它的主要特点是打破了一个程序一旦进入主存便一直运行到结束的限制。
=》虚拟内存技术
虚拟内存技术诞生于1961年。
广泛使用是从上个世纪70年代初以后,今天几乎所有的操作系统都采用虚拟内存技术来管理内存。
这是一种利用虚拟存储器来逻辑扩充物理内存的技术。其基本思想是用软硬件技术把内存与外存这两级存储器当成一级存储器来用,从而给用户提供了一个比内存也比任何应用程序大得多的虚拟存储器,使得用户编程时再也不用考虑内存大小的限制了,给用户编程带来极大的方便。
虚拟内存技术的实现也利用了自动覆盖和交换技术。