PCB 中的寄存器信息

Sur*_*LSV 2 operating-system

我对操作系统概念很陌生。我读过 PCB 包含有关寄存器的信息。这是否意味着“它包含该特定时间实例的所有寄存器内容”或“仅包含属于特定进程的寄存器”?如果是第二种情况,请告诉我操作系统如何跟踪哪些寄存器属于哪个进程?

谢谢

Har*_*man 6

寄存器是特定于架构的,这是x86架构中寄存器的描述

http://en.wikipedia.org/wiki/X86_architecture#x86_registers

CPU 架构规范定义了每个寄存器及其用途。操作系统开发人员在设计和开发操作系统时应遵循这些准则。对于进程而言,重要的寄存器是SP(堆栈指针)、BP(基址指针)和IP(指令指针)。进程也使用控制寄存器(cr0-cr8)进行计算。有一些寄存器是操作系统使用的,例如IDTR,操作系统使用它来指向中断描述符表。IDT 用于在中断发生时调用正确的函数。

当您谈论 PCB 中的寄存器时,它就是一种数据结构。当进程正在运行且其时间片到期时,进程特定寄存器的当前值将存储在 PCB 中,并且进程将被换出。当计划运行该进程时,将从 PCB 读取寄存器值并将其写入 CPU 寄存器。这是 PCB 中寄存器的主要用途。