###進程的概念
在多道程序環境下,允許多個程序并發執行,此時它們將失去封閉性,并具有間斷性及不可再現性的特征。為此引入了進程(Process)的概念,以便更好地描述和控制程序的并發執行,實現操作系統的并發性和共享性。
為了使參與并發執行的程序(含數據)能獨立地運行,必須為之配置一個專門的數據結構,稱為進程控制塊(Process Control Block, PCB)。系統利用PCB來描述進程的基本情況和運行狀態,進而控制和管理進程。相應地,由程序段、相關數據段和PCB三部分構成了進程映像(進程實體)。所謂創建進程,實質上是創建進程映像中的PCB;而撤銷進程,實質上是撤銷進程的PCB。值得注意的是,進程映像是靜態的,進程則是動態的。
> 注意:PCB是進程存在的唯一標志!
從不同的角度,進程可以有不同的定義,比較典型的定義有:
1. 進程是程序的一次執行過程。
2. 進程是一個程序及其數據在處理機上順序執行時所發生的活動。
3. 進程是具有獨立功能的程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位。
在引入進程實體的概念后,我們可以把傳統操作系統中的進程定義為:”進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位。“
###進程的特征
進程是由多程序的并發執行而引出的,它和程序是兩個截然不同的概念。進程的基本特征是對比單個程序的順序執行提出的,也是對進程管理提出的基本要求。
* 動態性:進程是程序的一次執行,它有著創建、活動、暫停、終止等過程,具有一定的生命周期,是動態地產生、變化和消亡的。動態性是進程最基本的特征。
* 并發性:多個進程實體,同存于內存中,能在一段時間內同時運行,并發性是進程的重要特征,同時也是操作系統的重要特征。引入進程的目的就是為了使程序能與其他進程的程序并發執行,以提高資源利用率。
* 獨立性:指進程實體是一個能獨立運行、獨立獲得資源和獨立接受調度的基本單位。凡未建立PCB的程序都不能作為一個獨立的單位參與運行。
* 異步性:由于進程的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、 不可預知的速度向前推進。異步性會導致執行結果的不可再現性,為此,在操作系統中必須配置相應的進程同步機制。
結構性:每個進程都配置一個PCB對其進行描述。從結構上看,進程實體是由程序段、數據段和進程控制段三部分組成的。
- 1. 操作系統概述
- 2.操作系統(計算機)進程和線程管理
- 2.1 進程的概念和特征
- 2.2 進程的狀態與轉換
- 2.3 進程控制
- 2.4 進程的組
- 2.5 進程的通信
- 2.6 線程的概念和多線程模型
- 2.7 處理機調度
- 2.8 操作系統典型調度算法
- 2.9 進程同步的基本概念
- 2.10 實現臨界區互斥的基本方法
- 2.11 信號量
- 2.12 管程:管程的定義、組成及基本特性
- 2.13 經典進程同步問題1
- 2.14 經典進程同步問題2:讀者-寫者問題
- 2.15經典進程同步問題3:哲學家進餐問題
- 2.16 經典進程同步問題4:吸煙者問題
- 2.17 死鎖的概念以及產生死鎖的原因
- 2.18 關于進程和線程的知識點匯總