Answers:
取决于处理器,并通过推断,表示任务状态所需的内容。在某种程度上,还取决于操作系统。
在旧的原始(虚拟内存)Unix中,寄存器将被保存到内存中的固定位置,然后将整个用户内存写入磁盘并读入新的用户内存映像。(Unix“fork”只需简单完成跳过“读入”步骤。)当带有TLB的CPU可用时,这很快被虚拟交换方案所取代(“Berkley Unix”)。
在Burroughs风格的堆栈架构中,所有需要交换的(理论上)是堆栈指针和任务ID。内存寻址(原始版本)是通过“功能”和“段”,而不是使用TLB。
具有基于TLB的虚拟存储器的旧寄存器体系结构要求TLB(有时是高速缓存)至少在交换时无效,此外还要交换程序寄存器(包括IAR,条件代码等)。较新的基于TLB的架构以各种方式解决了这个问题,避免了刷新,因此相当快速的切换不需要重新加载所有内容。(因此,在多处理器系统上,任务通常被赋予给定处理器的“亲和力”,以最小化TLB /缓存重新加载的量。)