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

浙公網(wǎng)安備 33010602011771號