4 進(jìn)程概述

一诡右、進(jìn)程的概念

在多道程序環(huán)境下,允許多個(gè)程序并發(fā)執(zhí)行驾荣,此時(shí)它們將失去封閉性外构,并具有間斷性及不可再現(xiàn)性的特征。為此引入了進(jìn)程(Process)的概念播掷,以便更好地描述和控制程序的并發(fā)執(zhí)行审编,實(shí)現(xiàn)操作系統(tǒng)的并發(fā)性和共享性。

PCB(Process Control Block)是進(jìn)程的唯一標(biāo)志歧匈,系統(tǒng)利用PCB來描述進(jìn)程的基本情況和運(yùn)行狀態(tài)(PCB常駐內(nèi)存垒酬,系統(tǒng)可在任一時(shí)刻存取),進(jìn)而控制和管理進(jìn)程勘究。相應(yīng)地矮湘,由程序段、相關(guān)數(shù)據(jù)段和PCB三部分構(gòu)成了進(jìn)程映像(進(jìn)程實(shí)體)乱顾。創(chuàng)建和撤銷進(jìn)程板祝,實(shí)質(zhì)上是創(chuàng)建和撤銷進(jìn)程映像中的PCB宫静;進(jìn)程映像是靜態(tài)的走净,進(jìn)程則是動(dòng)態(tài)的。

在沒有引入線程的系統(tǒng)中孤里,進(jìn)程是系統(tǒng)資源分配和系統(tǒng)調(diào)度的獨(dú)立單位伏伯。

二、進(jìn)程的特征

進(jìn)程是由多程序的并發(fā)執(zhí)行而引出的捌袜,它和程序是兩個(gè)截然不同的概念说搅。進(jìn)程相對(duì)于程序的的基本特征如下:

  • 動(dòng)態(tài)性:進(jìn)程是程序的一次執(zhí)行,它有著創(chuàng)建虏等、活動(dòng)弄唧、暫停、終止等過程霍衫,具有一定的生命周期候引,是動(dòng)態(tài)地產(chǎn)生、變化和消亡的敦跌。動(dòng)態(tài)性是進(jìn)程最基本的特征。

  • 并發(fā)性:指多個(gè)進(jìn)程實(shí)體,同存于內(nèi)存中沪猴,能在一段時(shí)間內(nèi)同時(shí)運(yùn)行齐板,并發(fā)性是進(jìn)程的重要特征,同時(shí)也是操作系統(tǒng)的重要特征惧笛。引入進(jìn)程的目的就是為了使程序能與其他進(jìn)程的程序并發(fā)執(zhí)行从媚,以提高資源利用率。

  • 獨(dú)立性:指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行患整、獨(dú)立獲得資源和獨(dú)立接受調(diào)度的基本單位拜效。凡未建立PCB的程序都不能作為一個(gè)獨(dú)立的單位參與運(yùn)行。

  • 異步性:由于進(jìn)程的相互制約并级,使進(jìn)程具有執(zhí)行的間斷性拂檩,即進(jìn)程按各自獨(dú)立的、 不可預(yù)知的速度向前推進(jìn)嘲碧。異步性會(huì)導(dǎo)致執(zhí)行結(jié)果的不可再現(xiàn)性稻励,為此,在操作系統(tǒng)中必須配置相應(yīng)的進(jìn)程同步機(jī)制。

  • 結(jié)構(gòu)性:每個(gè)進(jìn)程都配置一個(gè)PCB對(duì)其進(jìn)行描述望抽。從結(jié)構(gòu)上看加矛,進(jìn)程實(shí)體是由程序段、數(shù)據(jù)段和進(jìn)程控制段三部分組成的煤篙。

三斟览、進(jìn)程的狀態(tài)轉(zhuǎn)換

進(jìn)程在執(zhí)行時(shí)的間斷性決定了進(jìn)程具有多中狀態(tài)。通常進(jìn)程有五種狀態(tài)辑奈,前三種是進(jìn)程的基本狀態(tài):

  • 1)就緒狀態(tài)
    進(jìn)程已處于準(zhǔn)備運(yùn)行的狀態(tài)苛茂,即進(jìn)程獲得了除處理機(jī)之外的一切所需資源,一旦得到處理機(jī)即可運(yùn)行鸠窗。
  • 2)運(yùn)行狀態(tài)
    進(jìn)程正在處理機(jī)上運(yùn)行妓羊。在單處理機(jī)環(huán)境下,每一時(shí)刻最多只有一個(gè)進(jìn)程處于運(yùn)行狀態(tài)
  • 3)阻塞狀態(tài)
    又稱等待狀態(tài)稍计。正在執(zhí)行的進(jìn)程由于等待某一事件的發(fā)生而暫停運(yùn)行躁绸,導(dǎo)致等待的事件有:請(qǐng)求I/O,申請(qǐng)緩沖空間等臣嚣。
  • 4)創(chuàng)建狀態(tài)
    創(chuàng)建一個(gè)進(jìn)程通常有兩步驟:申請(qǐng)PCB净刮,填寫必要的管理信息;其次硅则,把進(jìn)程轉(zhuǎn)入就緒狀態(tài)并插入就緒隊(duì)列之中淹父。當(dāng)進(jìn)程擁有了PCB,但主存等資源尚未分配抢埋,進(jìn)程此時(shí)不能調(diào)度執(zhí)行弹灭,處于創(chuàng)建狀態(tài)。創(chuàng)建狀態(tài)的引入揪垄,增加了系統(tǒng)的靈活性:系統(tǒng)可以根據(jù)性能和主存容量限制穷吮,推遲提交創(chuàng)建的進(jìn)程。
  • 5)終止?fàn)顟B(tài)
    又稱結(jié)束狀態(tài)饥努。進(jìn)程的終止同樣分為兩個(gè)步驟捡鱼,首先系統(tǒng)進(jìn)行資源回收,然后將進(jìn)程PCB清零酷愧。當(dāng)一個(gè)進(jìn)程自然結(jié)束驾诈、遇到無法克服的錯(cuò)誤、被操作系統(tǒng)終止或被其他有權(quán)限的進(jìn)程所終結(jié)時(shí)溶浴,它將進(jìn)入終止?fàn)顟B(tài)乍迄。

在一些系統(tǒng)中,增加了掛起狀態(tài)士败,引入掛起的原因如下:

  • 1)終端用戶請(qǐng)求
    終端用戶在進(jìn)程運(yùn)行期間發(fā)現(xiàn)可疑問題時(shí)闯两,有暫停進(jìn)程褥伴,觀察分析的需求。

  • 2)父進(jìn)程請(qǐng)求
    有時(shí)父進(jìn)程希望掛起某個(gè)子進(jìn)程漾狼,以便考察和修改子進(jìn)程重慢。

  • 3)負(fù)荷調(diào)節(jié)需要
    當(dāng)實(shí)時(shí)系統(tǒng)中的工作負(fù)荷較重,可能影響到實(shí)時(shí)任務(wù)的交付時(shí)逊躁,可疑把一些不重要的進(jìn)程掛起似踱,以保證系統(tǒng)正常運(yùn)行。

  • 4)操作系統(tǒng)需要
    操作系統(tǒng)有時(shí)希望掛起某些進(jìn)程稽煤,以便檢查器運(yùn)行中的資源使用情況核芽,以做記錄。

四念脯、進(jìn)程的組織

PCB

PCB的結(jié)構(gòu)如下:

下面對(duì)PCB的各部分做簡要說明:

  • 1)進(jìn)程描述信息
    進(jìn)程標(biāo)識(shí)符:標(biāo)識(shí)各個(gè)進(jìn)程狞洋,每個(gè)進(jìn)程都擁有唯一的標(biāo)識(shí)號(hào)弯淘。
    用戶標(biāo)識(shí)符:進(jìn)程歸屬的用戶绿店,用戶標(biāo)識(shí)符主要為共享和保護(hù)服務(wù)。

  • 2)進(jìn)程控制和管理信息(調(diào)度信息)
    進(jìn)程當(dāng)前狀態(tài):描述進(jìn)程的狀態(tài)信息庐橙,作為處理機(jī)分配的依據(jù)
    進(jìn)程優(yōu)先級(jí):描述進(jìn)程搶占處理機(jī)的優(yōu)先級(jí)
    事件:進(jìn)程由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài)所等待的事件假勿,阻塞原因。
    進(jìn)程調(diào)度需要的其他相關(guān)信息:如CPU時(shí)間總和态鳖、已執(zhí)行時(shí)間總和等

  • 3)資源分配清單
    用于說明有關(guān)內(nèi)存地址空間或者虛擬地址空間的狀況转培、所打開文件的列表和所使用的I/O設(shè)備等信息。

  • 4)處理機(jī)相關(guān)信息
    主要指處理機(jī)中各寄存器值浆竭,當(dāng)前進(jìn)程被切換時(shí)浸须,處理機(jī)狀態(tài)信息都保存在相應(yīng)的PCB中,以便在該進(jìn)程重新執(zhí)行時(shí)邦泄,能從斷點(diǎn)繼續(xù)執(zhí)行删窒。這些寄存器包括:通用寄存器(又稱為用戶可視寄存器,用戶可以訪問)顺囊、指令寄存器(用于保存當(dāng)前正在執(zhí)行的一條指令)肌索、程序狀態(tài)字PSW(含有狀態(tài)信息,執(zhí)行方式特碳、中斷屏蔽等標(biāo)識(shí))以及用戶棧指針诚亚。

PCB的組織

在一個(gè)系統(tǒng)中,通常存在這許多進(jìn)程午乓,有的處于就緒狀態(tài)站宗,有的出于阻塞狀態(tài),而阻塞的原因各不相同益愈。為方便進(jìn)程的調(diào)度和管理梢灭,需要將各進(jìn)程用適當(dāng)?shù)姆绞浇M織起來。目前常用的組織方式有鏈接方式和索引方式兩種:

  • ** 1)鏈接方式**
    鏈接方式將同一狀態(tài)的PCB鏈成一個(gè)隊(duì)列,不同狀態(tài)對(duì)應(yīng)不同的隊(duì)列或辖,也可以把阻塞的進(jìn)程PCB根據(jù)不同的阻塞原因瘾英,排在不同的隊(duì)列中。同一隊(duì)列內(nèi)部按照優(yōu)先級(jí)進(jìn)行排序颂暇。

  • 2)索引方式
    索引方式是將同一狀態(tài)的進(jìn)程組織在一個(gè)索引表中缺谴,索引表的表項(xiàng)指向相應(yīng)的PCB,不同狀態(tài)對(duì)應(yīng)不同的索引表耳鸯,如就緒索引表和阻塞索引表湿蛔。

程序段

程序段即為程序代碼段,其可以被多個(gè)進(jìn)程所共享县爬。多個(gè)進(jìn)程可以運(yùn)行同一個(gè)程序阳啥。

數(shù)據(jù)段

一個(gè)進(jìn)程的數(shù)據(jù)段,可以是進(jìn)程對(duì)應(yīng)的程序加工處理的原始數(shù)據(jù)财喳,也可以是程序執(zhí)行時(shí)產(chǎn)生的中間或最終結(jié)果察迟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市耳高,隨后出現(xiàn)的幾起案子扎瓶,更是在濱河造成了極大的恐慌,老刑警劉巖泌枪,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概荷,死亡現(xiàn)場離奇詭異,居然都是意外死亡碌燕,警方通過查閱死者的電腦和手機(jī)误证,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來修壕,“玉大人愈捅,你說我怎么就攤上這事〉螅” “怎么了改鲫?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長林束。 經(jīng)常有香客問我像棘,道長,這世上最難降的妖魔是什么壶冒? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任缕题,我火速辦了婚禮,結(jié)果婚禮上胖腾,老公的妹妹穿的比我還像新娘烟零。我一直安慰自己瘪松,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布锨阿。 她就那樣靜靜地躺著宵睦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪墅诡。 梳的紋絲不亂的頭發(fā)上壳嚎,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音末早,去河邊找鬼烟馅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛然磷,可吹牛的內(nèi)容都是我干的郑趁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姿搜,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼寡润!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痪欲,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤悦穿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后业踢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡礁扮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年知举,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片太伊。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雇锡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出僚焦,到底是詐尸還是另有隱情锰提,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布芳悲,位于F島的核電站立肘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏名扛。R本人自食惡果不足惜谅年,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肮韧。 院中可真熱鬧融蹂,春花似錦旺订、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至意乓,卻和暖如春劳闹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洽瞬。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工本涕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伙窃。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓菩颖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親为障。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晦闰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 進(jìn)程的描述與控制 1.前趨圖與程序執(zhí)行1.1 前趨圖介紹:描述程序先后執(zhí)行順序,又稱為有向無循環(huán)圖鳍怨,可記為DAG(...
    孫夢(mèng)翔閱讀 702評(píng)論 0 1
  • 又來到了一個(gè)老生常談的問題呻右,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個(gè)問題開始鞋喇,來談?wù)劜?..
    tangsl閱讀 4,127評(píng)論 0 23
  • 11.1進(jìn)程的概念 進(jìn)程的定義 進(jìn)程是指一個(gè)具有一定獨(dú)立功能的程序在一個(gè)數(shù)據(jù)集合上的一次動(dòng)態(tài)執(zhí)行過程 精髓:正在執(zhí)...
    龜龜51閱讀 474評(píng)論 0 1
  • 從莫斯科到聖彼得堡声滥,我們?yōu)榱斯?jié)省趕路的時(shí)間,採用了較原始的交通方式──綠皮火車隔夜去往這座城市侦香。列車上能看的風(fēng)光不...
    劉英滕閱讀 315評(píng)論 1 2
  • 忍耐 像一只孕中的貓
    a32a57ca60a1閱讀 289評(píng)論 0 1