跳转到内容

操作系统设计/交换

来自维基教科书,开放的书籍,为开放的世界

交换的概念在进程调度方面出现。交换基本上由中级调度程序实现。中级调度程序将进程从 CPU 中移除一段时间,降低多道程序设计的程度。经过一段时间后,这些进程可以再次被重新引入主内存。进程执行将再次从它离开 CPU 的点恢复。这种方案被称为交换。更一般地说,我们可以说交换是从内存中移除进程到辅助存储器,然后再返回到主内存。

示例:假设一个使用循环轮询 CPU 调度算法的多道程序环境。当一个时间片到期时,内存管理器将开始交换掉刚刚完成的进程,并将另一个进程交换到已释放的内存空间中。在此期间,CPU 调度程序将为内存中的其他进程分配一个时间片。当每个进程完成其时间片时,它将被交换回另一个进程。理想情况下,内存管理器可以足够快地交换进程,以便当 CPU 调度程序想要重新调度 CPU 时,内存中始终至少有一个进程准备好执行。时间片也必须足够大,以便在交换之间完成合理的计算量。

交换可以以多种方式实现。例如,交换可以基于优先级。这意味着如果一个更高优先级的进程到达并需要服务,内存管理器可以将较低优先级的进程交换到辅助存储器中,以便更高优先级的进程可以加载到主内存中执行。一旦更高优先级的进程完成,较低优先级的进程将被交换回主内存,并继续执行。有时交换也被称为滚动出去,滚动进来。

地址绑定规则决定了要分配给进程的内存空间。因为被交换出去的进程需要在它离开的位置的相同内存位置被交换回来。地址绑定实现了这一点。

交换需要一个后备存储器。这个后备存储器与磁盘一样快。这个后备存储器应该足够大,以保存所有用户的所有内存映像的副本。交换还意味着将一些数据从一个内存复制到另一个内存。

华夏公益教科书