操作系统原理学习笔记(二十一)-对换
对换(Swapping)的概念
- 单用户分时系统中的对换:
- 为了实现分时运行多个用户程序而引入。
- 将用户作业存放于磁盘,每次调入一个作业进入内存,时间片用完后,将其调至外存后备队列,将后备队列中另一个作业调入内存。
- 现在很少使用。
- 多道程序环境下的对换:
- 为了解决资源浪费,将内存中被阻塞进程,或不用的数据调入外存,再将具备运行条件的进程装入内存。
- Unix系统中的对换:
- 设置一个对换进程,由其进行对换操作。
- Windows系统中的对换:
- 进程在装入内存时,若内存空间不足,则将其与老进程对换。
对换的类型
- 整体对换/进程对换:
- 以进程作为对换单位。
- 处理机中级调度就是存储器的对换功能。
- 用于多道程序系统中,并作为处理机的中级调度。
- 页面对换/分段对换/部分对换:
- 以页面/分段作为对换单位。
- 页面对换与分段对换统称为部分对换。
- 是请求分页与请求分段式存储管理的基础。
对换空间的管理
- 对换空间管理的主要目标
- 对文件区管理的主要目标:
- 优先提高存储空间利用率,后提高对文件访问速度。
- 采用离散分配方式
- 对对换空间管理的主要目标:
- 优先提高进程交换速度,后提高文件存储空间利用率。
- 采用连续分配方式。
- 对文件区管理的主要目标:
- 对换区空闲盘块管理中的数据结构
- 与动态分区分配相似,可以使用空闲分区表与空闲分区链。
- 空闲分区表中,包含:
- 对换区首地址-盘块号。
- 对换区大小-盘块数。
- 对换空间的分配与回收
- 分配方式与动态分区方式相似,可用如下算法:
- 首次适应算法。
- 循环首次适应算法。
- 最佳适应算法。
- 回收方式与回收内存方式一样,对以下四种情况进行处理:
- 前有空闲分区。
- 后有空闲分区。
- 前后有空闲分区。
- 前后无空闲分区。
- 分配方式与动态分区方式相似,可用如下算法:
进程的换入与换出
- 进程的换出:
- 选择被换出的进程:
- 检查内存中进程,优先选择阻塞/睡眠状态的进程,再选择其中优先级最低的进程作为换出进程。
- 无阻塞进程时,选择其中优先级最低的进程。
- 为了防止低优先级进程频繁出入,进程的驻留时间也应纳入考虑。
- 进程换出过程:
- 只能换出非共享的程序与数据段。
- 换出时,先申请对换空间,成功后,启动磁盘,将待兑换数据传入磁盘对换区中。
- 传送成功,无出错后,回收进程所占用内存空间,并修改相应数据结构。
- 若换出进程后,依然有阻塞/睡眠进程,则继续换出。
- 选择被换出的进程:
- 进程的换入:
- 定时执行换入操作:
- 查看PCB集合中所有进程状态,找出“就绪”且已换出的进程。
- 数量足够多时,选择其中驻留时间足够,且驻留最久的进程作为换入内存。
- 若换入失败,则先将内存中进程换出,再进行换入。
- 若换入成功后,还有可换入进程,则继续换入,直到无“就绪”且已换出进程,或无足够内存为止。
- 常用的对换方案:
- 在进程运行时经常缺页且内存紧张,才启动对换程序。
- 若缺页率减少,系统吞吐量下降,则暂停对换程序。
- 定时执行换入操作:
共有 0 条评论