我不了解上下文切换完整操作。
当正在运行的进程A由于调度程序而进入准备/阻塞状态而支持另一个进程B时,调度程序将A的PSW和GPR保存在其PCB中并将B的PSW和GPR存储到CPU中。 因此PCB的队列会更新。
进程A(代码/数据/堆栈)使用的帧怎么样?它们是交换到交换区域还是留在内存中?
A的页面表还在内存中? 创建进程时,进程的页表是否已保存到内存中?或者当它进入运行状态时?
A打开文件表怎么样?
我想了解进程上下文切换的准确操作,因为查看线程的速度上下文切换与繁重的进程之间的差异非常重要。
答案 0 :(得分:1)
这是所有系统特定的。在硬件级别,上下文切换通常只是将寄存器保存到上下文块并从另一个上下文块读取寄存器。
非活动进程的页表可能会也可能不会保留在内存中。这完全取决于操作系统的内存管理。通常,操作系统会将它们留在物理内存中,直到其他内存需要内存为止。