狹義上說:進程是正在運作的程式的實例。廣義來說:是電腦中的程式關於某資料集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是作業系統結構的基礎。在傳統的作業系統中,行程既是基本的分配單元,也是基本的執行單元。
狹義定義:進程是正在運行的程式的實例(an instance of a computer program that is being executed)。
廣義定義:進程是一個具有一定獨立功能的程式關於某個資料集合的一次運行活動。它是作業系統動態執行的基本單元,在傳統的作業系統中,行程既是基本的分配單元,也是基本的執行單元。
在早期以流程設計為導向的電腦結構中,流程是程式的基本執行實體;在當代以執行緒設計為導向的電腦結構中,流程是執行緒的容器。程序是指令、資料及其組織形式的描述,流程是程式的實體。
流程的概念主要有兩點:第一,行程是一個實體。每一個行程都有它自己的位址空間,一般情況下,包括文字區域(text region)、資料區域(data region)和堆疊(stack region)。文字區域儲存處理器執行的程式碼;資料區域儲存變數和進程執行期間使用的動態分配的記憶體;堆疊區域儲存著活動過程呼叫的指令和本地變數。第二,進程是一個「執行中的程式」。程式是一個沒有生命的實體,只有處理器賦予程式生命時(作業系統執行之),它才能成為一個活動的實體,我們稱之為流程。 [3]
進程是作業系統中最基本、最重要的概念。是多道程序系統出現後,為了刻畫系統內部出現的動態情況,描述系統內部各道程序的活動規律引進的一個概念,所有多道程序設計操作系統都建立在進程的基礎上。
作業系統引入進程的概念的原因:
從理論角度來看,是對正在運行的程式過程的抽象;
從實現角度看,是一種資料結構,目的在於清楚地刻畫動態系統的內在規律,有效管理和調度進入電腦系統主記憶體運作的程式。
特徵
動態性:進程的實質是程式在多道程式系統中的一次執行過程,進程是動態產生,動態消亡的。
並發性:任何進程都可以與其他進程一起並發執行
獨立性:進程是一個能獨立運作的基本單位,同時也是系統分配資源和調度的獨立單位;
非同步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預測的速度向前推進
結構特徵:進程由程式、資料和進程控制塊三部分組成。
多個不同的進程可以包含相同的程式:一個程式在不同的資料集裡就構成不同的進程,能得到不同的結果;但是執行過程中,程式不能改變。
更多相關知識,請造訪:PHP中文網!
以上是什麼是進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!