操作系統(tǒng)學(xué)習(xí)筆記之進(jìn)程與線程

進(jìn)程

進(jìn)程:進(jìn)程是具有獨(dú)立功能的程序在某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),也是操作系統(tǒng)進(jìn)行資源分配和保護(hù)的基本單位嗤朴。

如果你熟悉面向?qū)ο缶幊膛渫郑⑹熘惻c對(duì)象的概念。不妨這樣理解進(jìn)程和程序兩者之間的關(guān)系:進(jìn)程是程序的實(shí)例對(duì)象雹姊,程序是進(jìn)程的類描述股缸。
或者你也可以這樣理解進(jìn)程與程序:程序是建筑圖紙,進(jìn)程是房子施工建筑的過程吱雏。程序?yàn)檫M(jìn)程的執(zhí)行提供了規(guī)劃模板敦姻,而進(jìn)程則是程序的一次動(dòng)態(tài)執(zhí)行過程。

進(jìn)程的屬性

  1. 動(dòng)態(tài)性:進(jìn)程是程序在數(shù)據(jù)集合上動(dòng)態(tài)執(zhí)行的過程歧杏,基于不同的數(shù)據(jù)集合镰惦,程序可以同時(shí)創(chuàng)建多個(gè)進(jìn)程。其次進(jìn)程是具有生命周期的犬绒。而程序是靜態(tài)的旺入,是一種存儲(chǔ)在磁盤中的資源文件。在日常工作中懂更,很多時(shí)候都把程序和進(jìn)程混為一談眨业,不加以區(qū)別,比如說:這個(gè)程序開始跑了——嚴(yán)格來說是進(jìn)程在執(zhí)行沮协。不過一般情況下龄捡,也不需要對(duì)程序和進(jìn)程這兩個(gè)概念加以嚴(yán)格得區(qū)分。
  2. 獨(dú)立性:每個(gè)進(jìn)程都是操作系統(tǒng)中的一個(gè)獨(dú)立實(shí)體慷暂,有自己的虛存空間聘殖,程序計(jì)數(shù)器和內(nèi)部狀態(tài)。
  3. 制約性:進(jìn)程因共享資源或協(xié)同工作產(chǎn)生相互制約關(guān)系行瑞,造成進(jìn)程執(zhí)行速度的不可預(yù)測(cè)性奸腺。
  4. 并發(fā)性:多個(gè)進(jìn)程的執(zhí)行在時(shí)間段上是可以重疊的。比如將廚師當(dāng)成CPU血久,那么假設(shè)煲湯為線程A突照、煮飯為線程B和炒菜為線程C。在廚師做菜的過程中氧吐,煲湯讹蘑、煮飯和炒菜這三個(gè)任務(wù)是可以同時(shí)去做的末盔。線程也是一樣,在某個(gè)CPU執(zhí)行時(shí)間段內(nèi)座慰,CPU并不會(huì)等待一個(gè)線程執(zhí)行完再去執(zhí)行下一個(gè)線程陨舱,而是不斷的調(diào)度執(zhí)行多個(gè)線程。

進(jìn)程的狀態(tài)

三態(tài)模型

  1. 運(yùn)行態(tài):進(jìn)程占有CPU正在處理的狀態(tài)版仔。
  2. 就緒態(tài):進(jìn)程具備運(yùn)行條件游盲,等待系統(tǒng)分配CPU以便運(yùn)行的狀態(tài)。
  3. 等待態(tài):進(jìn)程需要等待某個(gè)事件完成蛮粮,不具備運(yùn)行的狀態(tài)益缎。

七態(tài)模型

  1. 新建態(tài):進(jìn)程被創(chuàng)建時(shí)的狀態(tài),尚未進(jìn)入就緒隊(duì)列蝉揍。
  2. 就緒態(tài):同三態(tài)模型链峭。
  3. 掛起就緒態(tài):當(dāng)系統(tǒng)內(nèi)存等資源不足時(shí)畦娄,就會(huì)將就緒態(tài)的進(jìn)程從內(nèi)存中剝離又沾,對(duì)換到磁盤交換區(qū)中的狀態(tài)。
  4. 掛起等待態(tài):當(dāng)系統(tǒng)內(nèi)存等資源不足時(shí)熙卡,就會(huì)將等待態(tài)的進(jìn)程從內(nèi)存中剝離杖刷,對(duì)換到磁盤交換區(qū)中的狀態(tài)。
  5. 運(yùn)行態(tài):同三態(tài)模型驳癌。
  6. 等待態(tài):同三態(tài)模型滑燃。
  7. 終止態(tài):進(jìn)程完成任務(wù)結(jié)束,或是出現(xiàn)錯(cuò)誤而異常終止颓鲜,或被操作系統(tǒng)終止表窘。最終,系統(tǒng)會(huì)將終止態(tài)的進(jìn)程銷毀掉甜滨。

進(jìn)程的組成

  1. 進(jìn)程控制塊:即PCB乐严,每個(gè)進(jìn)程有且僅有一個(gè)PCB,并與之一一對(duì)應(yīng)的衣摩,用來存儲(chǔ)進(jìn)程的標(biāo)志信息昂验、現(xiàn)場信息和控制信息。
  2. 進(jìn)程程序塊:被進(jìn)程執(zhí)行的程序艾扮,規(guī)定進(jìn)程一次運(yùn)行所應(yīng)完成的功能既琴。
  3. 進(jìn)程核心棧:每個(gè)進(jìn)程捆綁一個(gè),并與之一一對(duì)應(yīng)泡嘴。進(jìn)程在內(nèi)核狀態(tài)工作時(shí)使用甫恩,用來保存中斷/異常現(xiàn)場酌予,保存函數(shù)調(diào)用的參數(shù)磺箕、局部變量和返回地址纹腌。
  4. 進(jìn)程數(shù)據(jù)塊:時(shí)進(jìn)程的私有地址空間,存放各種私有數(shù)據(jù)滞磺,用戶棧也在數(shù)據(jù)塊中開辟升薯,用于在函數(shù)調(diào)用時(shí)存放棧幀、局部變量和返回地址等參數(shù)击困。

線程

線程是進(jìn)程中能夠并發(fā)執(zhí)行的實(shí)體涎劈,是進(jìn)程的組成部分,也是處理器調(diào)度和分派的基本單位阅茶。

如果進(jìn)程是做菜這樣簡單的任務(wù)蛛枚,可能還不需要引入線程。當(dāng)進(jìn)程是蓋房子這樣的任務(wù)時(shí)脸哀,就需要引入線程來提高系統(tǒng)資源的利用率和效率了蹦浦。當(dāng)建筑公司要修建多做房子時(shí)(一個(gè)CPU要執(zhí)行多個(gè)進(jìn)程),多個(gè)房子可以按照建筑的不同時(shí)期撞蜂,建筑公司可以同時(shí)進(jìn)行建筑盲镶。但由于線程的限制,建筑公司只能是蝌诡,要么把所有的建筑資源建筑這套房子溉贿,要么把所有的建筑資源建筑那套房子。這樣浦旱,在進(jìn)程任務(wù)復(fù)雜之后宇色,建筑公司調(diào)整安排建筑任務(wù)的資源浪費(fèi)是十分巨大的(CPU在進(jìn)行進(jìn)程任務(wù)調(diào)度時(shí)的資源浪費(fèi))。所以為了減少這樣的浪費(fèi)颁湖,將進(jìn)程的程序任務(wù)再進(jìn)行分割小的宣蠕,可并發(fā)的線程程序任務(wù)。這樣甥捺,建筑公司就能夠盡量完成某個(gè)建筑任務(wù)抢蚀,再去完成其它的(減少CPU在進(jìn)程之間的調(diào)度,轉(zhuǎn)為對(duì)進(jìn)程里多線程的調(diào)度)涎永。

多線程結(jié)構(gòu)進(jìn)程.png

線程的優(yōu)點(diǎn)

  1. 快速線程切換:同一進(jìn)程中的多線程切換只需改變堆棧和寄存器思币,地址空間不變。
  2. 通訊易于實(shí)現(xiàn):自動(dòng)共享進(jìn)程的內(nèi)存和文件羡微,線程可以自由訪問全局?jǐn)?shù)據(jù)谷饿,實(shí)現(xiàn)數(shù)據(jù)共享十分方便,線程通信相對(duì)簡單不必經(jīng)過內(nèi)核妈倔。
  3. 減少管理開銷:線程插件和撤銷工作比進(jìn)程少很多博投,并且無須再分配存儲(chǔ)空間和各種資源。
  4. 并發(fā)程度提高:多線程適宜并發(fā)工作盯蝴,能充分發(fā)揮處理器與設(shè)備的并行工作能力毅哗,是多核和多處理器系統(tǒng)的效能發(fā)揮更好听怕。

線程的狀態(tài)

在同一進(jìn)程中的不同線程會(huì)競爭CPU和數(shù)據(jù)資源,而出現(xiàn)各種等待事件虑绵,繼而存在各種狀態(tài)尿瞭。同線程一樣,有運(yùn)行翅睛、就緒声搁、等待和終止?fàn)顟B(tài)。對(duì)于線程來說捕发,它并不是資源擁有單位疏旨,其資源來自進(jìn)程的共享。故而掛起狀態(tài)對(duì)線程來說是沒有意義的扎酷。

參考文獻(xiàn)

[1] 費(fèi)翔林檐涝,駱斌.操作系統(tǒng)教程[M].高等教育出版社,2014:71-85.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末法挨,一起剝皮案震驚了整個(gè)濱河市谁榜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坷剧,老刑警劉巖惰爬,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惫企,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)陵叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門狞尔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巩掺,你說我怎么就攤上這事偏序。” “怎么了胖替?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵研儒,是天一觀的道長。 經(jīng)常有香客問我独令,道長端朵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任燃箭,我火速辦了婚禮冲呢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘招狸。我一直安慰自己敬拓,他們只是感情好邻薯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乘凸,像睡著了一般厕诡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上营勤,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天木人,我揣著相機(jī)與錄音,去河邊找鬼冀偶。 笑死醒第,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的进鸠。 我是一名探鬼主播稠曼,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼客年!你這毒婦竟也來了霞幅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤量瓜,失蹤者是張志新(化名)和其女友劉穎司恳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绍傲,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扔傅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烫饼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猎塞。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖杠纵,靈堂內(nèi)的尸體忽然破棺而出荠耽,到底是詐尸還是另有隱情,我是刑警寧澤比藻,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布铝量,位于F島的核電站,受9級(jí)特大地震影響银亲,放射性物質(zhì)發(fā)生泄漏慢叨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一群凶、第九天 我趴在偏房一處隱蔽的房頂上張望插爹。 院中可真熱鬧,春花似錦、人聲如沸赠尾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽气嫁。三九已至当窗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寸宵,已是汗流浹背崖面。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梯影,地道東北人巫员。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像甲棍,于是被迫代替她去往敵國和親简识。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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

  • 1.內(nèi)存的頁面置換算法 (1)最佳置換算法(OPT)(理想置換算法):從主存中移出永遠(yuǎn)不再需要的頁面颈走;如無這樣的...
    杰倫哎呦哎呦閱讀 3,249評(píng)論 1 9
  • 1. 簡介 用戶打開瀏覽器立由,其實(shí)就是打開了瀏覽器應(yīng)用程序。那么什么是程序呢司致?我們常說瀏覽器是多線程的拆吆,JS 是單線...
    love丁酥酥閱讀 3,519評(píng)論 0 6
  • 1. 基礎(chǔ)知識(shí) 1.1、 基本概念脂矫、 功能 馮諾伊曼體系結(jié)構(gòu)1、計(jì)算機(jī)處理的數(shù)據(jù)和指令一律用二進(jìn)制數(shù)表示2霉晕、順序執(zhí)...
    yunpiao閱讀 5,305評(píng)論 1 22
  • 女人的三大責(zé)任: 1引爆自己男人的靈魂 2活出自我庭再、讓自己綻放 3孕育好孩子的天性與夢(mèng)想 男人的三大責(zé)任: 1照顧...
    生命的長度和寬度閱讀 201評(píng)論 0 1
  • 三大哲學(xué)問題:我是誰?我來自哪里牺堰?我要去哪里拄轻?這里的我,是一個(gè)獨(dú)立的個(gè)體伟葫,人要學(xué)著在孤獨(dú)中恨搓,與自己相處。 書中的第...
    春娟Jane閱讀 160評(píng)論 0 0