進程的定義
- 進程的描述
爲了對併發執行的程序進行描述控制,引入了進程的概念,用於描述進程的數據結構稱爲進程控制塊PCB,進程是程序執行的一次過程,是系統資源分配以及處理機調度的基本單位 - 進程的組成
進程由三部分組成:程序段,數據段,PCB - 動態性
進程的實體是在進入內存時被創建,通過CPU的調度執行,執行完成之後被系統撤銷,故進程的實體具有一定的生命期 - 併發性
參與系統併發執行的是多個進程實體,而並非程序集 - 獨立性
未建立PCB的程序集是無法作爲獨立的單位參與運行,也無法接收獨立調度以及獲取獨立的資源 - 異步性
每個進程都是按照各自獨立的方式,通過不可預知的速度推進
進程與程序區別
進程狀態的轉換
因爲程序併發的執行共享系統資源,這使得其在運行的過程中呈現間斷性的特徵,主要來所進程至少有以下三種狀態
- 就緒態
當作業從外存進入內存中被創建進程之後,就被分配到就緒隊列中,此時只需要CPU處理機的資源,就緒隊列通過優先級策略的方式組織。 - 阻塞態
正在執行的進程由於反生中斷例如(I/O請求)無法繼續執行,此時需要通過調度將處理機分配給其他的就緒進程,並將該進程分配給阻塞隊列進行事件處理,處理完成之後被系統釋放之後回到活動就緒態繼續等待被處理機調度,爲了減小系統開銷,通常設置多個阻塞隊列用於存放不同原因而阻塞的進程。 - 執行態
獲得CPU的資源之後,處於活動就緒態的進程轉向執行態,對於單核CPU而言同一時刻處理機僅僅處理一個進程,多核CPU同一時刻則同時處理多個進程。
掛起的引入 :由於某種原因致使被掛起,意味着該進程將處於靜止狀態,掛起的原因有4種:1.用戶的主觀停止,2.父進程請求,3.系統負荷調節,4.操作系統需要
當進程被掛起時,進程的狀態將由活動狀態轉移至靜止狀態,並由內存轉移至外存中