操作系统原理学习笔记(二十一)-对换

操作系统原理学习笔记目录

对换(Swapping)的概念

  • 单用户分时系统中的对换:
    • 为了实现分时运行多个用户程序而引入。
    • 将用户作业存放于磁盘,每次调入一个作业进入内存,时间片用完后,将其调至外存后备队列,将后备队列中另一个作业调入内存。
    • 现在很少使用。
  • 多道程序环境下的对换:
    • 为了解决资源浪费,将内存中被阻塞进程,或不用的数据调入外存,再将具备运行条件的进程装入内存。
  • Unix系统中的对换:
    • 设置一个对换进程,由其进行对换操作。
  • Windows系统中的对换:
    • 进程在装入内存时,若内存空间不足,则将其与老进程对换。

对换的类型

  • 整体对换/进程对换:
    • 以进程作为对换单位。
    • 处理机中级调度就是存储器的对换功能。
    • 用于多道程序系统中,并作为处理机的中级调度。
  • 页面对换/分段对换/部分对换:
    • 以页面/分段作为对换单位。
    • 页面对换与分段对换统称为部分对换。
    • 是请求分页与请求分段式存储管理的基础。

对换空间的管理

  • 对换空间管理的主要目标
    • 对文件区管理的主要目标:
      • 优先提高存储空间利用率,后提高对文件访问速度。
      • 采用离散分配方式
    • 对对换空间管理的主要目标:
      • 优先提高进程交换速度,后提高文件存储空间利用率。
      • 采用连续分配方式。
  • 对换区空闲盘块管理中的数据结构
    • 与动态分区分配相似,可以使用空闲分区表与空闲分区链。
    • 空闲分区表中,包含:
      • 对换区首地址-盘块号。
      • 对换区大小-盘块数。
  • 对换空间的分配与回收
    • 分配方式与动态分区方式相似,可用如下算法:
      • 首次适应算法。
      • 循环首次适应算法。
      • 最佳适应算法。
    • 回收方式与回收内存方式一样,对以下四种情况进行处理:
      • 前有空闲分区。
      • 后有空闲分区。
      • 前后有空闲分区。
      • 前后无空闲分区。

进程的换入与换出

  • 进程的换出:
    • 选择被换出的进程:
      • 检查内存中进程,优先选择阻塞/睡眠状态的进程,再选择其中优先级最低的进程作为换出进程。
      • 无阻塞进程时,选择其中优先级最低的进程。
      • 为了防止低优先级进程频繁出入,进程的驻留时间也应纳入考虑。
    • 进程换出过程:
      • 只能换出非共享的程序与数据段。
      • 换出时,先申请对换空间,成功后,启动磁盘,将待兑换数据传入磁盘对换区中。
      • 传送成功,无出错后,回收进程所占用内存空间,并修改相应数据结构。
      • 若换出进程后,依然有阻塞/睡眠进程,则继续换出。
  • 进程的换入:
    • 定时执行换入操作:
      • 查看PCB集合中所有进程状态,找出“就绪”且已换出的进程。
      • 数量足够多时,选择其中驻留时间足够,且驻留最久的进程作为换入内存。
      • 若换入失败,则先将内存中进程换出,再进行换入。
      • 若换入成功后,还有可换入进程,则继续换入,直到无“就绪”且已换出进程,或无足够内存为止。
    • 常用的对换方案:
      • 在进程运行时经常缺页且内存紧张,才启动对换程序。
      • 若缺页率减少,系统吞吐量下降,则暂停对换程序。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注