覆盖技术
用来解决程序大小超过物理内存总和的问题
思想
- 将程序分为多个段(模块),常用的段常驻内存,不常用的段在需要时调入内存
- 内存中分为一个固定区和若干个覆盖区
- 需要常驻内存的段放在固定区,调入后就不再调出(除非运行结束)
- 不常用的段放在覆盖区,需要时调入内存,不需要时调出内存

按照自身逻辑将不可能同时被访问的程序段共享一个覆盖区
缺点:必须由程序员声明覆盖结构,操作系统自动完成覆盖。对用户不透明,增加了用户编程负担,只用于早期的操作系统
交换技术
思想:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中某些已具备运行条件的进程换入内存(进程在内存与磁盘间动态调度)
中级调度就是决定要将哪个处于挂起状态的进程调入内存
挂起状态:暂时调出内存等待的进程状态
就绪挂起和阻塞挂起
应该在外存的什么位置保存被换出的进程
具有对换功能的操作系统,通常把磁盘空间分为文件区和对换区两部分
文件区主要用于存放文件,主要追求存储空间的利用率,因此对文件区空间的管理采取离散分配方式
对换区空间只占磁盘空间的小部分,被换出的进程数据就存放在对换区,由于对换的速度直接影响到系统的整体速度,因此对换区空间的管理主要追求换入换出速度,因此通常采用连续分配方式
对换区的IO速度比文件区的更快
什么时候交换
交换通常在许多进程运行且内存吃紧的时候进行,而系统负荷降低就暂停。例如:在发现许多进程运行时经常发生缺页,就说明内存紧张,此时可以换出一些进程;如果缺页率明显下降,就可以暂停换出
应该换出哪些进程
可优先换出阻塞进程;可换出优先级低的进程;为了防止优先级低的进程被调入内存后很快被换出,有的系统还会考虑进程在内存的驻留时间
PCB会常驻内存,不会被换出
覆盖和交换的区别
覆盖是同一个程序或进程中的
交换是在不同进程/作业之间的
网友评论