操作系统3.1.3 内存空间扩充技术(覆盖与交换)

操作系统3.1.3 内存空间扩充技术(覆盖与交换)_第1张图片

本节主要讲覆盖技术和交换技术,虚拟存储技术在后续小节会详细展开。

 

实现内存空间扩充的技术

一、覆盖技术

用于解决“程序大小超过物理内存总和”的问题

思想:

程序分为多个段,常用的段常驻在内存,不常用的段在需要时才从外存调入内存。

内存中分为一个“固定区”若干个“覆盖区”,需要常驻内存的段放在“固定区”调入后就不再调出(除非运行结束)。

不常用的段,放在覆盖区中,需要用的时候调入内存,用不到时调出内存

操作系统3.1.3 内存空间扩充技术(覆盖与交换)_第2张图片

一个固定区:存放最活跃的程序段,固定区的程序在运行过程中不会调入调出内存

若干个覆盖区:不可能同时被访问的程序段可共享一个覆盖区,覆盖区中的程序段在运行过程中会根据需要调入调出内存

缺点:必须有程序员声明覆盖结构,操作系统完成自动覆盖,因此对用户不透明,增加了用户的编程负担

所以覆盖技术只用于早期的操作系统中。

 

二、交换技术

思想:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中某些已具备运行条件的进程换入内存(进程在内存与磁盘动态调度)

挂起:暂时换出外存等待的进程状态为挂起状态

挂起态又进一步细分为就绪挂起、阻塞挂起

操作系统3.1.3 内存空间扩充技术(覆盖与交换)_第3张图片

三个问题:

1、应该在外存(磁盘)的什么位置保存被换出的进程?

磁盘区通常分为文件区对换区两部分。

文件区主要用于存放文件,主要追求存储空间的利用率,因此对文件区空间管理采用离散分配方式

对换区空间占磁盘空间很小的部分,被换出的进程数据就存放在对换区,由于对换的速度直接影响到操作系统的整体速度,因此对换区空间管理主要追求换入换出速度,因此通常采用连续分配方式

总之,对换区的I/O速度比文件区的更快

2、什么时候应该交换?

交换通常在许多进程运行过程中并且内存吃紧时进行,而系统负荷降低就暂停。

例如在许多进程运行时经常发生缺页,就说明内存紧张,此时可以换出一些进程;

如果缺页率明显下降,就可以暂停换出。

3、应该换出哪些进程? 

可以优先换出阻塞进程

可换出优先级低的进程

为防止优先级低的进程在调入内存后很快被换出,有时系统还会考虑进程在内存的驻留时间

注意:PCB会常驻内存,不会被换出外存)

 

三、两种技术的区别

覆盖是在同一个程序或进程中的,交换是在不同进程(作业)之间的。

 

四、知识回顾与重要考点

本节主要考察选择题。

操作系统3.1.3 内存空间扩充技术(覆盖与交换)_第4张图片

 

你可能感兴趣的:(★,Operating,System,操作系统,内存管理)