Memory 进程的上下文切换和内存更改

Memory 进程的上下文切换和内存更改,memory,process,operating-system,switch-statement,context-switch,Memory,Process,Operating System,Switch Statement,Context Switch,我不理解上下文切换的完整操作 当一个正在运行的进程a由于调度程序的原因进入就绪/阻塞状态而支持另一个进程B时,调度程序将a的PSW和GPR保存在其PCB中,并将B的PSW和GPR存储到CPU中。 因此PCB的队列被更新 进程A(代码/数据/堆栈)使用的帧是什么?它们是交换到交换区还是保留在内存中 A的页表仍在内存中? 创建进程时,进程的页表是否保存到内存中?或者当它进入运行状态时 A的“打开的文件”表怎么样 我想了解进程上下文切换的准确操作,因为了解线程的速度上下文切换和进程的繁重上下文切换之间

我不理解上下文切换的完整操作

当一个正在运行的进程a由于调度程序的原因进入就绪/阻塞状态而支持另一个进程B时,调度程序将a的PSW和GPR保存在其PCB中,并将B的PSW和GPR存储到CPU中。 因此PCB的队列被更新

进程A(代码/数据/堆栈)使用的帧是什么?它们是交换到交换区还是保留在内存中

A的页表仍在内存中? 创建进程时,进程的页表是否保存到内存中?或者当它进入运行状态时

A的“打开的文件”表怎么样


我想了解进程上下文切换的准确操作,因为了解线程的速度上下文切换和进程的繁重上下文切换之间的差异很重要。

这都是特定于系统的。在硬件a级,上下文开关通常只将寄存器保存到上下文块,并从另一个上下文块读取寄存器


非活动进程的页表可能保留在内存中,也可能不保留在内存中。这完全取决于操作系统的内存管理。通常,操作系统会将它们保留在物理内存中,直到其他东西需要该内存。

如我所知……与线程一相比,进程上下文切换执行的额外操作是什么?线程上下文切换通常只需要保存/更改通用寄存器。进程上下文切换需要更改地址空间(线程切换不需要)。更改地址空间是什么意思?