“Swapping”和“上下文切换”的区别是什么?

3
在操作系统中,“换页”和“上下文切换”有什么区别?我在教科书中找到的唯一区别是,在交换中有一个中期调度器。请详细说明。

1
可能因为不同的说话者而有所不同,但是“交换”是指将进程的内存从主内存中取出并放置在磁盘上。这是一种机制,可在物理内存较小的计算机上提供更大的虚拟内存。 - William Pursell
显然,就内存而言,交换与上下文切换是完全不同的事情。然而,口语上你可以说操作系统“交换”或“在线程之间进行上下文切换”,它们意思相同。 - Dan
5个回答

2
交换(Swapping)是操作系统中通常用于描述主内存和磁盘之间交换的术语。例如:当前在 CPU 上运行的进程需要一些存储在磁盘上的页面,因此交换程序将从主内存中交换出其他进程(等待、终止等)的页面到磁盘中,同时交换所需的页面。
另一方面,上下文切换(Context switch)将进程从运行状态切换到就绪状态,而将 CPU 分配给就绪队列中的进程则需要调度程序的帮助。
注意:这只是上下文切换的简单示例。操作系统的复杂性越高,在上下文切换期间需要执行的工作也越多。

1
  • 交换处理内存,处理被交换的内存量。
  • 上下文切换处理进程,无论进程状态是暂停还是其他。

实际上它们可能是相同的。


0
交换(Swapping):将进程内存从主存储器交换到辅助存储器,反之亦然。 上下文切换(Context switch):将进程状态转移到进程控制块 PCB,并从 PCB 中加载另一个程序的状态。

1
如果你要回答,请提供更多的清晰度或信息来完善现有的答案。 - TriskalJM

0

交换是将进程的当前计算状态(当被抢占或由于其他原因)从物理内存保存到二级存储器,通常是硬盘。并/或者将进程的当前计算状态从硬盘加载到物理内存。

当操作系统从一个进程分配CPU到另一个进程时,为了使计算有意义,在CPU从当前运行的进程切换到另一个进程之前,必须将当前运行的进程的当前计算状态保存到半永久性存储器即硬盘中,以便该进程在下次获得CPU时可以从离开的地方恢复执行。这个操作需要一些时间,比如t单位。保存进程状态后,必须将要分配CPU的进程的状态从硬盘带入物理内存。这也需要一些时间,比如p单位。这些t + p = z(假设)就是上下文切换。因此,上下文切换实际上是交换和交换出操作所需的时间。


0
在进程等待阶段,交换等待队列将进程从RAM中移除,稍后再重新引入主内存并从停止的位置重新启动执行。这种情况被称为交换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接