在操作系统中,“交换”和“上下文切换”有什么区别?我在教科书中发现的唯一区别是,在交换中有一个中期调度程序。给它一些启示。
5 回答
- 交换处理内存,交换了多少内存。
- 上下文切换处理进程,无论是它的状态是暂停还是什么。
实际上,它们可能是相同的。
交换是操作系统中的术语,通常在我们谈论主内存和磁盘之间的交换时使用。例如:当前在 cpu 上运行的进程需要在磁盘中存储更多页面。因此,交换器将在交换所需页面时将其他进程(等待,终止..)页面的页面从主内存交换到磁盘中。
另一方面,上下文切换将进程从运行状态切换到就绪状态,而将 cpu 分配给就绪队列中的进程是在调度程序的帮助下完成的。
注意:这是一个简单的上下文切换示例。操作系统的复杂性越高,在上下文切换期间完成的工作就越多。
交换是将进程的当前计算状态(当被抢占或出于某种其他原因)从物理内存保存到辅助存储,通常是 HDD。和/或将进程的当前计算状态从 HDD 加载到物理内存。
当操作系统将 CPU 从一个进程分配给另一个进程时,计算有意义需要在 CPU 从当前运行的进程切换到另一个进程之前,必须将当前运行的进程的当前计算状态保存到一个半永久的存储即HDD,以便该进程下次获得CPU时可以从其离开的位置恢复执行。这个操作需要一些时间,比如说 t 个单位。进程状态保存后,必须将要分配CPU的进程状态从HDD带入物理内存。这也需要一些时间,p 个单位。这些 t + p = z(say) 是上下文切换。因此,上下文切换实际上是换入换出操作所需的时间。
在进程的等待阶段交换等待队列 进程在稍后从 RAM 中删除 进程重新引入主内存并从停止的地方重新开始执行 这种情况称为交换
交换:进程内存被交换到主内存到辅助内存,反之亦然。上下文切换:进程状态转移到进程控制块PCB,另一个程序的状态从PCB加载。