從不同的角度,進程可以有不同的定義,比較典型的定義有:
- 進程是程序的一次執行過程。
- 進程是一個程序及其數據在處理機上順序執行時所發生的活動。
- 進程是具有獨立功能的程序在一個數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位。
在引入進程實體的概念后,我們可以把傳統操作系統中的進程定義為:”進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位。“
為了使參與並發執行的程序(含數據)能獨立地運行,必須為之配置一個專門的數據結構,稱為進程控制塊(Process Control Block, PCB)。系統利用PCB來描述進程的基本情況和運行狀態,進而控制和管理進程。相應地,由程序段、相關數據段和PCB三部分構成了進程映像(進程實體)。所謂創建進程,實質上是創建進程映像中的PCB;而撤銷進程,實質上是撤銷進程的PCB。值得注意的是,進程映像是靜態的,進程則是動態的。
進程是由多程序的並發執行而引出的,它和程序是兩個截然不同的概念。有着自身的特征:
- 動態性:進程是程序的一次執行,它有着創建、活動、暫停、終止等過程,具有一定的生命周期,是動態地產生、變化和消亡的。動態性是進程最基本的特征。
- 並發性:指多個進程實體,同存於內存中,能在一段時間內同時運行,並發性是進程的重要特征,同時也是操作系統的重要特征。引入進程的目的就是為了使程序能與其他進程的程序並發執行,以提高資源利用率。
- 獨立性:指進程實體是一個能獨立運行、獨立獲得資源和獨立接受調度的基本單位。凡未建立PCB的程序都不能作為一個獨立的單位參與運行。
- 異步性:由於進程的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、 不可預知的速度向前推進。異步性會導致執行結果的不可再現性,為此,在操作系統中必須配置相應的進程同步機制。
- 結構性:每個進程都配置一個PCB對其進行描述。從結構上看,進程實體是由程序段、數據段和進程控制段三部分組成的。