此文系博主阅读 《操作系统原理与应用》(胡立栓 王育平等编著,清华大学出版社出版) 的笔记总结
一、覆盖技术
1. 定义
一个作业的若干程序段或数据段的某些部分间 共享内存空间
2. 目标
用较小的存储区域满足较大的作业运行要求,使得 大作业能够在小内存上运行 ,并不是作业的每个部分都是时时要用的
3. 中心思想
允许一个作业的若干个程序段使用同一个存储区
覆盖区 :被公用的存储区
4. 其他
不能彻底解决大作业与小内存的矛盾
覆盖技术只能用于分层设计的程序
模块间的覆盖关系由 用户 定义,对用户不透明,增加了用户的负担
一般,覆盖技术用于系统程序间的内存管理上 ,可与其他内存分配方法结合使用
二、交换技术
1. 基本思想
利用辅存解决小内存在多道环境下运行大作业的矛盾,即:主存中以阻塞的作业信息存入辅存,将辅存中的活动作业调入主存并运行
2. 中心思想
内存中保存所有进程的 PCB,将大部分进程信息存放在辅存上
3. 执行过程
根据内存的使用情况,让其中的部分就绪进程留在内存,由进程调度算法决定投入运行的进程
当进程运行中提出 I/O 请求或分配给的时间片用完时,将该进程从内存中换出到辅存中,调度另一个进程运行
“交换”是以辅存作为内存的后援而得以实行的
4. 交换技术要解决的问题
a. 换出进程的选择 :一般换出短时间不会运行的进程
b. 交换时机的选择 :内存不够后有危险时换出短时间不会运行的进程
c. 交换空间的分配 :可交换到外存的相同或不同对换区
d. 换回内存位置的确定 :动态重定位可以换回到不同的内存区,否则只能换回到相同的内存区
三、覆盖与交换技术的优缺点比较
1. 交换技术与覆盖技术相比,交换技术的缺点是要花费大量内、外村交换时间,所以外存中应该保留交换程序的副本
2. 覆盖与交换技术都实现了大作业在小内存上运行。
3. 覆盖于与换技术的区别:
a. 覆盖由用户解决空间不足问题(即:覆盖只能在一个程序内部进行)
b. 交换由系统解决空间不足问题(即:交换可以在任意程序间进行)
c. 覆盖对程序结构有严格的限制
d. 交换对程序结构没有限制