操作系統:進程的概念和與程序的區別


進程的概念和與程序的區別

1、進程的定義

進程是允許某個並發執行的程序在某個數據集合上的運行過程。

進程是由正文段、用戶數據段及進程控制塊共同組成的執行環境。正文段存放被執行的機器指令,用戶數據段存放進程在執行時直接進行操作的用戶數據。進程控制塊存放程序的運行環境,操作系統通過這些數據描述和管理進程。

2、進程的特征

進程是操作系統管理的實體,對應了程序的執行過程,具有以下幾個特征。

並發性。 多個進程實體能在一段時間間隔內同時運行。並發性是進程和現代操作系統的重要特征。

動態性。 進程是進程實體的執行過程。進程的動態性表現在因執行程序而創建進程、因獲得CPU而執行進程的指令、因運行終止而被撤銷的動態變化過程。此外,進程在創建后還有進程狀態的變化。

獨立性。 在沒有引入線程概念的操作系統中,進程是獨立運行和資源調度的基本單位。

異步性。 是指進程的執行時斷時續,進程什么時候執行、什么時候暫停都無法預知,呈現一種隨機的特性。

結構特征。 進程實體包括用戶正文段、用戶數據段和進程控制塊。

3、進程與程序的比較

3.1、進程與程序的區別

程序是靜態的,進程是動態的,程序是存儲在某種介質上的二進制代碼,進程對應了程序的執行過程,系統不需要為一個不執行的程序創建進程,一旦進程被創建,就處於不斷變化的動態過程中,對應了一個不斷變化的上下文環境。

程序是永久的,進程是暫時存在的。程序的永久性是相對於進程而言的,只要不去刪除它,它可以永久的存儲在介質當中。

3.2、進程與程序的聯系

進程是程序的一次執行,而進程總是對應至少一個特定的程序。一個程序可以對應多個進程,同一個程序可以在不同的數據集合上運行,因而構成若干個不同的進程。幾個進程能並發地執行相同的程序代碼,而同一個進程能順序地執行幾個程序。

關於進程和程序的區別,《現代操作系統》中用了一個比喻形象說明:一位有一手好廚藝的計算機科學家正在為他的女兒烘制生日蛋糕。他有做生日蛋糕的食譜,廚房里有所需要的原料,在這個比喻中,做蛋糕的食譜就是程序(即用適當形式描述的算法),計算機科學家就是處理機(CPU),而做蛋糕的各種原料就是輸入數據。進程就是廚師閱讀食譜,取來各種原料以及烘制蛋糕等一系列動作的總和。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM