進程是一個獨立的運行單位,也是操作系統進行資源分配和調度的基本單位。它由以下三部 分組成,其中最核心的是進程控制塊(PCB) 。
1. 進程控制塊
進程創建時,操作系統為它新建一個PCB,該結構之后常駐內存,任意時刻都可以存取,并在進程結束時刪除。PCB是進程實體的一部分,是進程存在的唯一標志。
進程執行時,系統通過其PCB了解進程的現行狀態信息,以便操作系統對其進行控制和管理;進程結束時,系統收回其PCB,該進程隨之消亡。
當操作系統欲調度某進程運行時,要從該進程的PCB中查出其現行狀態及優先級;在調度
到某進程后,要根據其PCB中所保存的處理機狀態信息,設置該進程恢復運行的現場,并根據其PCB中的程序和數據的內存始址,找到其程序和數據;進程在運行過程中,當需要和與之合作的進程實現同步、通信或訪問文件時,也需要訪問PCB;當進程由于某種原因而暫停運行時,又需將其斷點的處理機環境保存在PCB中。可見,在進程的整個生命期中,系統總是通過PCB對進
程進行控制的,亦即系統唯有通過進程的PCB才能感知到該進程的存在。
表2.1是一個PCB的實例。PCB主要包括進程描述信息、進程控制和管理信息、資源分配清 單和處理機相關信息等。各部分的主要說明如下:
表2.1 PCB通常包含的內容
進程描述信息 | 進程控制和管理信息 | 資源分配清單 | 處理機相關信息 |
進程標識符(PID) | 進程當前狀態 | 代碼段指針 | 通用寄存器值 |
用戶標識符(UID) | 進程優先級 | 數據段指針 | 地址寄存器值 |
代碼運行入口地址 | 堆棧段指針 | 控制寄存器值 | |
程序的外存地址 | 文件描述符 | 標志寄存器值 | |
進入內存時間 | 鍵盤 | 狀態字 | |
處理機占用時間 | 鼠標 | ||
信號量使用 |
1) 進程描述信息。進程標識符:標志各個進程,每個進程都有一個唯一的標識號。用戶標識符:進程歸屬的用戶,用戶標識符主要為共享和保護服務。
2) 進程控制和管理信息。進程當前狀態:描述進程的狀態信息,作為處理機分配調度的依據。進程優先級:描述進程搶占處理機的優先級,優先級高的進程可優先獲得處理機。
3) 資源分配清單,用于說明有關內存地址空間或虛擬地址空間的狀況,所打開文件的列表和所使用的輸入/輸出設備信息。
4) 處理機相關信息,也稱處理機的上下文,主要指處理機中各寄存器的值。當進程處于執行態時,處理機的許多信息都在寄存器中。當進程被切換時,處理機狀態信息都必須保存在相應的PCB中,以便在該進程重新執行時,能從斷點繼續執行。
在一個系統中,通常存在著許多進程的PCB,有的處于就緒態,有的處于阻塞態,而且阻塞的原因各不相同。為了方便進程的調度和管理,需要將各進程的PCB用適當的方法組織起來。目前,常用的組織方式有鏈接方式和索引方式兩種。鏈接方式將同一狀態的PCB鏈接成一個隊列, 不同狀態對應不同的隊列,也可把處于阻塞態的進程的PCB,根據其阻塞原因的不同,排成多個阻塞隊列。索引方式將同一狀態的進程組織在一個索引表中,索引表的表項指向相應的PCB,不同狀態對應不同的索引表,如就緒索引表和阻塞索引表等。
1. 程序段
程序段就是能被進程調度程序調度到CPU執行的程序代碼段。注意,程序可被多個進程共 享,即多個進程可以運行同一個程序。
2. 數據段
一個進程的數據段,可以是進程對應的程序加工處理的原始數據,也可以是程序執行時產生 的中間或最終結果。
聲明:
(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。
(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。
相關推薦
2023年4月浙江自考中國文化概論復習筆記:中國傳統的藝術審美
12-102023年4月浙江自考俄羅斯小說文體論復習資料七
11-26自考輔導資料:2019年10月《美學》知識點-美育的內涵
09-20自考輔導資料:2019年10月《美學》知識點-審美經驗理論的歷史回顧
09-182023年4月浙江自考《管理系統中計算機應用》串講資料四
03-14自考輔導資料:2019年10月《中國現代文學史》-30年代文學小說創作
09-242023年4月浙江自考中國文化概論復習筆記:語言文字及其文化特征
12-102022年浙江自考心理實驗設計串講資料第三章
10-20自考輔導資料:2019年10月《美學》知識點-審美發生的特殊標志
09-162023年4月浙江自考學前教育史復習筆記:抗日戰爭和解放戰爭時期
12-06