目錄
一、進程控制塊的概念
二、進程控制塊的重要屬性
2.1 唯一身份標識(PID)
2.2 內存指針
2.3 文件描述符表
2.4 狀態
2.5 優先級
2.6 記賬信息
2.7 上下文
一、進程控制塊的概念
????????進程控制塊(Process Control Block, PCB)是一個用于描述進程的內存管理結構。它包含了與進程相關的信息,如進程ID、進程狀態、進程的物理地址、進程的調度信息等。
????????進程控制塊是操作系統在管理進程時所使用的數據結構,它提供了操作系統與進程之間的接口,以便操作系統可以進行合理的進程調度和內存管理。
? ? ? ? 應當注意,進程控制塊PCB是一種數據結構,這種數據結構不僅適用于進程,也適用于線程,也就是說線程也是使用類似PCB的數據結構來進行描述和調度的。
二、進程控制塊的核心屬性
????????進程控制塊屬性眾多,以下是其中的部分核心屬性。
進程控制塊的核心屬性 |
唯一身份標識(PID) |
內存指針 |
文件描述符表 |
狀態 |
優先級 |
記賬信息 |
上下文 |
2.1 唯一身份標識(PID)
概念 | 以一個簡單不重復的整數,來代表進程的唯一標識符,用于區分不同的進程。系統會保證同一個機器上,同一時刻,每個進程的PID都是唯一的。 |
2.2 內存指針
概念 | 進程在創建時,會先將指令和數據加載到內存中。而一組內存指針,則描述了進程使用內存資源的詳細情況,包括使用的指令、數據等。 |
2.3 文件描述符表
概念 | 存儲器相關資源被操作系統封裝成了文件。文件描述符表記錄了進程打開的文件的描述符(文件相關性息),操作系統通過文件描述符可以訪問打開的文件(訪問存儲器資源)。 |
2.4 狀態
概念 | 表示進程當前的運行狀態,如就緒狀態、阻塞狀態等。 |
2.5 優先級
概念 | 表示進程在同一時間內的優先級,優先級高的進程更有可能被調度執行。優先級可以通過系統api進行設置。 |
2.6 記賬信息
概念 | 記錄進程的創建時間、開始時間、結束時間和運行時間等。系統會根據這個時間的統計結果調整進程調度的策略。 |
2.7 上下文
概念 | 保存進程的CPU寄存器和內存管理信息,以便在進程暫停或重啟時恢復。上下文是支持進程調度的重要屬性。每個進程在運行過程中會有許多中間結果存儲在CPU的寄存器中。因此在進程調度離開CPU之前,會把當前寄存器中的信息保存到內存中,這就是保存上下文。在進程調度進入CPU之后,就需要把內存中的信息加載到CPU寄存器中,這就是恢復上下文。 |
閱讀指針 -> 《進程(Process)和線程(Thread)》
<JavaEE> 什么是進程(Process)?進程管理,進程調度,內存管理,進程間通信和多進程編程-CSDN博客介紹什么是進程?進程的相關內容整理:進程管理,進程調度,內存管理,進程間通信和多進程編程https://blog.csdn.net/zzy734437202/article/details/134587986
<JavaEE> 什么是線程(Thread)?進程和線程有什么區別?-CSDN博客介紹什么是線程(Thread)。進程和線程有什么區別.https://blog.csdn.net/zzy734437202/article/details/134589609