當程序狀態發生變化時,PCB 會發生什麼?


程序控制塊 (PCB) 用於作業系統儲存有關程序的不同資訊,包括程序狀態、暫存器、程式計數器、暫存器等。它在發生上下文切換(當前程序被另一個具有更高優先順序的程序搶佔)時起著重要作用。

PCB 中儲存的重要資訊包括以下內容:

  • 程序號 (PID) - 用於唯一標識每個程序。

  • 程式計數器 - 它儲存要執行的下一條指令的地址。

  • 暫存器資訊 - 包括不同的 CPU 暫存器,例如基址暫存器、累加器和通用暫存器。

  • 狀態 - 當前正在執行的程序生命週期中的狀態。

下面是一個 PCB 的示例:

程序狀態
程序號
程式計數器
暫存器
記憶體限制
開啟的檔案列表
----------

讓我們看看 CPU 如何在程序之間切換。

這裡,

  • 在上下文切換期間,作業系統必須儲存當前正在執行的程序的 PCB 內容,然後為新程序建立一個新的 PCB,

  • 如果新程序已經存在,它將簡單地恢復其 PCB。作業系統有一個 PCB 佇列,每個程序都有自己的 PCB。

  • 所有程序及其 PCB 地址都儲存在一個稱為程序表的單獨資料結構中。

  • PCB 擁有作業系統恢復程序執行所需的所有必要資訊,這是它的主要目的。

更新於: 2021 年 12 月 1 日

1K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.