計算機操作系統(tǒng)進(jìn)程的概念
資源分配得合理與否是與需要獲得資源的對象直接相關(guān)的。這就像一個旅游賓館在對客房的分配一樣,是以旅游團(tuán)作為分配客房的對象.還是把旅游者作為分配客房的對象,其分配結(jié)果和客房的利用率顯然是大不一樣的。所以,為了對計算機的資源進(jìn)行合理的分配,就必須先明確在計算機系統(tǒng)中究竟是哪些對象需要使用這些資源。 在計算機系統(tǒng)中,為了分配資源,人們引進(jìn)了“進(jìn)程”這個最基本、最重要的概念。在操作系統(tǒng)中,進(jìn)程是享用系統(tǒng)資源的對象,是資源分配的基本單位?! 榱颂岣咛幚砥鞯睦寐?,可以像下圖所描述的那樣使程序并發(fā)執(zhí)行。乍看起來,系統(tǒng)似乎是以參與并發(fā)執(zhí)行的程序為對象來分配處理器這個資源的,或者說是系統(tǒng)以程序為資源分配單位的。其實不然.既然程序可以并發(fā)運行,那么就是說,在計算機中可能同時存在著同一個程序的兩個甚至多個運行。例如,某人正在用word修改一個文擋,那么極有可能又打開了另外一個word文擋作為參考,這就是說,現(xiàn)在同時有兩個word在同時運行。因此,系 統(tǒng)只給一個word分配資源是不行的。
如果需要使用處理器資源的不是程序,那么是什么呢?仔細(xì)分析一下就會知道,程序只是 一段可執(zhí)行代碼,它需要的是存儲空間而不是處理器的時間,只有當(dāng)程序運行時才會需要占用 處理器時間。這也就是說,需要占用處理器的是程序的一次運行過程,而不是程序本身。打個比方來說,程序就像一本書,這本書放在桌子上是不會占用讀者的時間資源的,只有這本書被閱讀時,才會占用讀者的時間。更準(zhǔn)確地說,占用讀者時間的是這個讀書的過程。因此,在計算機中,程序的一次運行過程才應(yīng)該是處理器資源分配的基本單位。為了方便,人們把程序的 一次運行過程就叫做進(jìn)程?! ⊥瑯樱拖褚粋€讀書過程肯定對應(yīng)著一本書,但同一本書可能有多個讀書的過程一樣,系統(tǒng)中的一個進(jìn)程肯定對應(yīng)著一個程序,但同一個程序可以有多個進(jìn)程。所以要切記,進(jìn)程和程 序是相關(guān)的,但并不是一回事?! ∮捎诓l(fā)活動的復(fù)雜性,到目前為止,各個操作系統(tǒng)對進(jìn)程的定義尚未統(tǒng)一。有的操作系 統(tǒng)把進(jìn)程叫做任務(wù),也有的操作系統(tǒng)把它叫做活動。在國內(nèi),一般把進(jìn)程理解為:“可并發(fā)執(zhí) 行且具有獨立功能的程序在一個數(shù)據(jù)集合上的運行過程,它是操作系統(tǒng)進(jìn)行資源分配和保護(hù) 的基本單位”。這句話首先強調(diào)了進(jìn)程是一個程序運行的動態(tài)過程,而且該程序必須具有并發(fā) 運行的程序結(jié)構(gòu);其次強調(diào)了這個運行過程必須依賴一個數(shù)據(jù)集合而獨立運行,從而形成了系統(tǒng)中的一個單位。它具有動態(tài)性、并發(fā)性、獨立性、異步性和結(jié)構(gòu)性五大特性?! 袼^動態(tài)性,是指進(jìn)程是程序的一次活動,程序是進(jìn)程活動的藍(lán)本,而進(jìn)程活動是程序的一次運行過程。進(jìn)程和程序之間的關(guān)系,就像話劇和劇本的關(guān)系一樣;劇本是一場話劇的藍(lán)本,而話劇則是劇本的一次實現(xiàn);要占用劇場這個資源的是話劇,而不是劇本。一個進(jìn)程也像一場話劇一樣,有誕生(開幕)、運行(表演)、消亡(閉幕)的過程?! 袼^并發(fā)性,是指在一個系統(tǒng)內(nèi)可以同時存在多個進(jìn)程,它們交替使用處理器這個資源,并各自按照自己獨立的進(jìn)度推進(jìn)?! 袼^異步性,是指進(jìn)程之間在交替使用計算機資源時沒有強制的順序。因此,在多個進(jìn)程使用一些共享資源時,為了防止共享資源被破壞,計算機與其操作系統(tǒng)應(yīng)提供保證進(jìn)程之間能協(xié)調(diào)工作的硬件和軟件機制。 ●所謂獨立性,是指進(jìn)程在系統(tǒng)中是一個可獨立運行的并具有獨立功能的基本單位,也是系統(tǒng)分配資源和進(jìn)行調(diào)度的獨立單位。 ●所謂結(jié)構(gòu)性,是指為了記錄、描述、跟蹤進(jìn)程運行時的狀態(tài)變化以便對進(jìn)程進(jìn)行控制,由系統(tǒng)建立的一套數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)中的每個進(jìn)程都有對應(yīng)的數(shù)據(jù)結(jié)構(gòu)及其數(shù)據(jù)表項?! ∠到y(tǒng)正是根據(jù)這些數(shù)據(jù)來感知進(jìn)程的存在的,而程序也正是通過這些數(shù)據(jù)結(jié)構(gòu)不停地 循環(huán)交替更新而活動的?! ∩厦嬉蕴幚砥髻Y源的分配介紹了進(jìn)程這個重要的基本概念。其實,系統(tǒng)中其他資源的分配也是以進(jìn)程為基本單位的。
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)()