2.1 進程的基本概念
- 程序的順序執行及其特徵
- 程序的併發執行及其特徵
- 進程的特徵與狀態
- 進程控制塊
2.1.1 程序的順序執行及其特徵
順序執行包含兩層含義:
- 在單道批處理系統中,對於多個用戶程序來說,所有程序是依次執行的。(外部順序性)
- 對於一個程序來說,在若干個程序段之間,必須按照某種先後次序順序執行;對同一個程序段中的多條指令,也是按某種順序執行的。(內部順序性)
程序的順序執行主要是指第一種,即各個程序依次執行
- 程序順序執行的特徵
2.1.3 程序的併發執行及其特徵
程序的併發執行包括兩層含義
- 對於一個程序來說,它的所有指令是按序執行的。(內部順序性)
- 對於多個執行中的程序(進程)來說,所有進程是交叉執行的。(外部併發性)
程序併發執行的特徵
3)不可再現性——與時間有關的錯誤
2.1.4 進程的特徵與狀態
1.進程的定義和特徵
進程是程序在一個數據集上的運行過程,是系統進行資源分配和調度的一個獨立單位。 (傳統OS中對進程的定義)
進程的特徵
- 結構特徵
程序段、相關的數據段、PCB三部分構成了進程實體。
- 動態性
進程的實質是進程實體的一次執行過程,故動態性是進程的最基本特徵
- 併發性
這是指多個進程實體同存於內存中,且能在一段時間內同時運行
- 獨立性
在傳統的OS中,獨立性是指進程實體是一個能獨立運行、獨立分配資源和獨立接受調度的基本單位。
- 異步性
是指進程按各自獨立的、不可預知的速度向前推進,或說進程實體按異步方式運行。
2. 進程的三種基本狀態
1)就緒(Ready)狀態:
當進程已分配到除CPU以外的所有資源後,只要再獲得CPU,便可立即執行,進程這時的狀態稱爲就緒狀態。
2)執行(Running)狀態:
進程已獲得CPU,其程序正在執行
3)阻塞(Blocked)狀態:
正在執行的進程由於發生某事件而暫時無法繼續執行時,便放棄處理機而處於暫停狀態,亦即進程的執行受到阻塞,把這種暫停狀態稱爲阻塞狀態(或等待狀態)。
進程的三種基本狀態的轉換:
引起進程狀態轉換的典型事件:
進程調度:就緒態®執行態
時間片完:執行態®就緒態
請求I/O:執行態®阻塞態
I/O完成:阻塞態®就緒態
掛起狀態:
- 引入掛起狀態的原因:
- 具有掛起狀態系統的進程狀態的轉換
2.1.5 進程控制塊(PCB)
爲了描述和控制進程的運行,系統爲每個進程定義了一個數據結構——進程控制塊。
進程控制塊是進程實體的一部分,是操作系統中最重要的記錄型數據結構
- PCB作用
使一個在多道程序環境下不能獨立運行的程序(含數據),成爲一個能獨立運行的基本單位,一個能與其它進程併發執行的進程。或者說,OS是根據PCB來對併發進程進行控制和管理的。
例如:進程調度;現場保護和恢復;進程同步和通信。
2.進程控制塊中的信息
PCB中記錄了操作系統所需的、用於描述進程當前情況以及控制進程運行的全部信息。具體包括下述四方面的信息:
- 進程標識符
內部標識符(進程號);外部標識符(名);
父進程標識及子進程標識;用戶標識
- 處理機狀態
處理機狀態信息主要由處理機的各種寄存器中的內容組成的。寄存器包括:通用寄存器、指令計數器、程序狀態字(PSW)寄存器、用戶棧指針。(保護、恢復現場)
當處理機被中斷時,這些信息都必須保存到PCB中,以便該進程重新執行時,能從斷點繼續執行。
3)進程調度信息:
在PCB中還存放一些與進程調度和進程對換有關的信息。包括:
- 進程狀態——作爲調度和對換時的依據。
- 進程優先級——由於描述進程使用處理機的優先級別的一個整數,優先級高的進程優先獲得處理機。
- 進程調度所需的其它信息——它們與所採用的進程調度算法有關。……
- 事件——即阻塞原因。
- 進程控制信息
程序和數據的地址——指程序和數據所在的內存或外存首地址;
進程同步和通信機制——如信號量、消息隊列指針等,它們可能全部或部分地存放在PCB中;
資源清單——是一張列出了除CPU外的、進程所需的全部資源及已經分配到該進程的資源的清單;
鏈接指針——它給出本進程(PCB)所在隊列中下一個進程的PCB的首址。
3.進程控制塊的組織方式
常用的組織方式有兩種:鏈接方式和索引方式
2)索引方式: