2012-10-01 33 views
1

我對操作系統概念不熟悉。我已經讀過一個PCB包含關於寄存器的信息。這是否意味着「它包含該特定時刻所有寄存器的內容」或「只有屬於特定過程的寄存器」?如果是第二種情況,請告訴我操作系統如何跟蹤哪些寄存器屬於哪個進程?寄存器在PCB中的信息

由於

+0

什麼是PCB?印刷電路板?過程控制塊?啊,可能是後者。是的,操作系統在專門指定的數據結構中保持進程/線程狀態(包括進程/線程未執行時的寄存器狀態)。這看起來不是一個好問題。 –

+0

@AlexeyFrunze我的意思是過程控制塊...我想知道在一個單一的時間點,如果所有的寄存器分配給一個進程或只有幾個? –

+1

某些系統寄存器可能具有在線程/進程之間切換時不需要修改的永久值。所以,並不是所有的CPU寄存器都屬於給定的線程/進程,有些是共享的。 –

回答

4

寄存器是特定於架構,這是寄存器在x86架構

http://en.wikipedia.org/wiki/X86_architecture#x86_registers的描述。

CPU架構規範定義了每個寄存器及其用途。正是這些準則,操作系統開發人員應該在設計和開發操作系統時遵循。就進程而言,重要的寄存器是SP(堆棧指針),BP(基址指針)和IP(指令指針)。控制寄存器(cr0-cr8)也用於計算過程。操作系統使用的寄存器類似於IDTR,操作系統使用這些寄存器指向中斷描述符表。 IDT用於在發生中斷時調用正確的功能。

當你談論PCB中的寄存器時,它就是一個數據結構。當進程正在運行並且時間片到期時,進程特定寄存器的當前值將被存儲在PCB中,並且該進程將被換出。當進程計劃運行時,將從PCB讀取寄存器值並寫入CPU寄存器。這是PCB中寄存器的主要目的。