進程的概念和與程式的區別 1、進程的定義 進程是允許某個併發執行的程式在某個數據集合上的運行過程。 進程是由正文段、用戶數據段及進程式控制制塊共同組成的執行環境。正文段存放被執行的機器指令,用戶數據段存放進程在執行時直接進行操作的用戶數據。進程式控制制塊存放程式的運行環境,操作系統通過這些數據描述和管理進程 ...
進程的概念和與程式的區別
1、進程的定義
進程是允許某個併發執行的程式在某個數據集合上的運行過程。
進程是由正文段、用戶數據段及進程式控制制塊共同組成的執行環境。正文段存放被執行的機器指令,用戶數據段存放進程在執行時直接進行操作的用戶數據。進程式控制制塊存放程式的運行環境,操作系統通過這些數據描述和管理進程。
2、進程的特征
進程是操作系統管理的實體,對應了程式的執行過程,具有以下幾個特征。
併發性。 多個進程實體能在一段時間間隔內同時運行。併發性是進程和現代操作系統的重要特征。
動態性。 進程是進程實體的執行過程。進程的動態性表現在因執行程式而創建進程、因獲得CPU而執行進程的指令、因運行終止而被撤銷的動態變化過程。此外,進程在創建後還有進程狀態的變化。
獨立性。 在沒有引入線程概念的操作系統中,進程是獨立運行和資源調度的基本單位。
非同步性。 是指進程的執行時斷時續,進程什麼時候執行、什麼時候暫停都無法預知,呈現一種隨機的特性。
結構特征。 進程實體包括用戶正文段、用戶數據段和進程式控制制塊。
3、進程與程式的比較
3.1、進程與程式的區別
程式是靜態的,進程是動態的,程式是存儲在某種介質上的二進位代碼,進程對應了程式的執行過程,系統不需要為一個不執行的程式創建進程,一旦進程被創建,就處於不斷變化的動態過程中,對應了一個不斷變化的上下文環境。
程式是永久的,進程是暫時存在的。程式的永久性是相對於進程而言的,只要不去刪除它,它可以永久的存儲在介質當中。
3.2、進程與程式的聯繫
進程是程式的一次執行,而進程總是對應至少一個特定的程式。一個程式可以對應多個進程,同一個程式可以在不同的數據集合上運行,因而構成若幹個不同的進程。幾個進程能併發地執行相同的程式代碼,而同一個進程能順序地執行幾個程式。
關於進程和程式的區別,《現代操作系統》中用了一個比喻形象說明:一位有一手好廚藝的電腦科學家正在為他的女兒烘製生日蛋糕。他有做生日蛋糕的食譜,廚房裡有所需要的原料,在這個比喻中,做蛋糕的食譜就是程式(即用適當形式描述的演算法),電腦科學家就是處理機(CPU),而做蛋糕的各種原料就是輸入數據。進程就是廚師閱讀食譜,取來各種原料以及烘製蛋糕等一系列動作的總和。