1.主存扩充技术类别
主存扩充技术实质
- 目的:将小的实存储器(实存)扩充为大的虚存储器(虚存)
- 实质:将磁盘空间虚拟成内存使用
- 结果:将进程的一部分装入内存,即可运行
进程运行时仅部分装入,是可行的吗?
1968年,P.Denning提出了一 个著名的“局部性原理”,并通过一幅运行图予以说明。一段程序访问的操作数往往局部于某个数据块中。因此在一个较短|的时间内,程序执行中对内存地址的访问往往局限于一个较小的空间上。
2.局部性原理
时间局部性:最近访问过的程序代码和数据很快又被访问。
空间局部性:某存储单元被使用之后,其相邻的存储单元也很快内使用
程序在执行过程中的一个较短的时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中
进程运行时仅部分装入,是可行的!
实际上,在许多情况下不需要将整个程序放到i内存中。例如:
(1)处理异常错误条件的代码(机会不执行)
(2)主程序先后调用的多个子程序也不需要同时装入内存
3.虚拟内存是可行的
虚拟内存VM(Virtual Memory)允许进程的执行不必完全内存中,程序可以比物理内存大。程序不再受现有的物理内存空间限制,更多程序可同时执行,CPU利用率相应增加
4.覆盖技术
程序运行过程中吗,在不同时刻把同一存储区分配给不同程序段或数据段,实现存储区共享的一种内存技术。覆盖技术通常与单一连续区分配,固定多分区分配和动态多分区分配等存储技术配合使用。
覆盖技术的实现:
每一个用户程序被分为若干段:
非覆盖段— 一部分是经常要用的基本部分,作为常驻段;
可覆盖段–另一部分不经常使用,可以让它们在需要时临时装入。不同时使用的段可组为一-组可覆盖段。
5.交换(Swap)技术
交换技术—将内存中某进程暂时不用的程序和数据(全部或部分)写入外存交换区中,腾出来的内存空间供其它进程使用。待需要时或内存有空闲空间时,再将它从外存交换区装入内存。
交换技术实现要点:
磁盘上设置“磁盘交换区”磁盘交换区是一个数据的暂存处。系统可根据内存的“拥挤"程度将信息调往交换区或者从交换区调入。
文件区和交换区的区别:
操作系统管理下磁盘空间被划分为:文件区和交换区。
- 存储方式不同:文件区信息以文件形式存放,为了提高空间利用率,一般采取离!散存储方式;而交换区信息按字符流方式存放,多采用连续存储方式。
- 访问速度不同:文件区存储空间特别大,为了提高检索效率-般通过建立目录对!文件实现访问,也就是间接地址访问;而交换区空间较小,可按外存地址直接访问,因此访问速度快。
- 存储时间不同:文件区适合于较长久的数据存储;而交换区作为临时数据的存放处,只存放短期的数据。
交换技术的应用
- 交换整个作业----用于单道系统(单道模拟多道)
- 交换整个进程----用于连续分区存储管理(进程挂起、激活,中级调度)
- 交换页面/段面----用于分页、分段存储管理(此即为虚拟存储技术)
6.虚拟存储技术
一个进程运行时,可不必将其全部装载到内存中只须把当前运行的部分程序和可能访问的数据块装入内只须把当前运行的部分程序和可能访问的数据块装入内存即可。随着进程运行的不断推进,其余部分程序和数据可随时装入。这样做可实现小内存运行大程序的设想。