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