操作系統(tǒng)程序屹培、任務、進程和線程的聯(lián)系與區(qū)別

概念:

程序(program)只是一組指令的有序集合曾掂。

任務(task)是最抽象的,是一個一般性的術語,指由軟件完成的一個活動惫谤。一個任務既可以是一個進程,也可以是一個線程。簡而言之,它指的是一系列共同達到某一目的的操作珠洗。例如,讀取數(shù)據(jù)并將數(shù)據(jù)放入內(nèi)存中溜歪。這個任務可以作為一個進程來實現(xiàn),也可以作為一個線程(或作為一個中斷任務)來實現(xiàn)。

進程(process)常常被定義為程序的執(zhí)行许蓖『恚可以把一個進程看成是一個獨立的程序,在內(nèi)存中有其完備的數(shù)據(jù)空間和代碼空間调衰。一個進程所擁有的數(shù)據(jù)和變量只屬于它自己。

進程是表示資源分配的基本單位自阱,又是調(diào)度運行的基本單位嚎莉。例如,用戶運行自己的程序沛豌,系統(tǒng)就創(chuàng)建一個進程趋箩,并為它分配資源,包括各種表格加派、內(nèi)存空間叫确、磁盤空間、I/O設備等芍锦。然后竹勉,把該進程放人進程的就緒隊列。進程調(diào)度程序選中它娄琉,為它分配CPU以及其它有關資源次乓,該進程才真正運行。所以孽水,進程是系統(tǒng)中的并發(fā)執(zhí)行的單位票腰。

在Mac、Windows NT等采用微內(nèi)核結構的操作系統(tǒng)中匈棘,進程的功能發(fā)生了變化:它只是資源分配的單位丧慈,而不再是調(diào)度運行的單位。在微內(nèi)核系統(tǒng)中主卫,真正調(diào)度運行的基本單位是線程。因此鹃愤,實現(xiàn)并發(fā)功能的單位是線程簇搅。

線程(tread)則是某一進程中一路單獨運行的程序。也就是說,線程存在于進程之中软吐。一個進程由一個或多個線程構成,各線程共享相同的代碼和全局數(shù)據(jù),但各有其自己的堆棧瘩将。由于堆棧是每個線程一個,所以局部變量對每一線程來說是私有的。由于所有線程共享同樣的代碼和全局數(shù)據(jù),它們比進程更緊密,比單獨的進程間更趨向于相互作用,線程間的相互作用更容易些,因為它們本身就有某些供通信用的共享內(nèi)存:進程的全局數(shù)據(jù)凹耙。

一個進程和一個線程最顯著的區(qū)別是:線程有自己的全局數(shù)據(jù)姿现。線程存在于進程中,因此一個進程的全局變量由所有的線程共享。由于線程共享同樣的系統(tǒng)區(qū)域,操作系統(tǒng)分配給一個進程的資源對該進程的所有線程都是可用的,正如全局數(shù)據(jù)可供所有線程使用一樣

線程是進程中執(zhí)行運算的最小單位肖抱,亦即執(zhí)行處理機調(diào)度的基本單位备典。如果把進程理解為在邏輯上操作系統(tǒng)所完成的任務,那么線程表示完成該任務的許多可能的子任務之一意述。例如提佣,假設用戶啟動了一個窗口中的數(shù)據(jù)庫應用程序吮蛹,操作系統(tǒng)就將對數(shù)據(jù)庫的調(diào)用表示為一個進程。假設用戶要從數(shù)據(jù)庫中產(chǎn)生一份工資單報表拌屏,并傳到一個文件中潮针,這是一個子任務;在產(chǎn)生工資單報表的過程中倚喂,用戶又可以輸人數(shù)據(jù)庫查詢請求每篷,這又是一個子任務。這樣端圈,操作系統(tǒng)則把每一個請求――工資單報表和新輸人的數(shù)據(jù)查詢表示為數(shù)據(jù)庫進程中的獨立的線程雳攘。線程可以在處理器上獨立調(diào)度執(zhí)行,這樣枫笛,在多處理器環(huán)境下就允許幾個線程各自在單獨處理器上進行吨灭。操作系統(tǒng)提供線程就是為了方便而有效地實現(xiàn)這種并發(fā)性

引入線程的好處

(1)易于調(diào)度。
(2)提高并發(fā)性刑巧。通過線程可方便有效地實現(xiàn)并發(fā)性喧兄。進程可創(chuàng)建多個線程來執(zhí)行同一程序的不同部分。
(3)開銷少啊楚。創(chuàng)建線程比創(chuàng)建進程要快吠冤,所需開銷很少。恭理。
(4)利于充分發(fā)揮多處理器的功能拯辙。通過創(chuàng)建多線程進程(即一個進程可具有兩個或更多個線程),每個線程在一個處理器上運行颜价,從而實現(xiàn)應用程序的并發(fā)性涯保,使每個處理器都得到充分運行。

聯(lián)系:

進程與線程區(qū)別與聯(lián)系

(1)一個線程只能屬于一個進程周伦,而一個進程可以有多個線程夕春,但至少有一個線程。
(2)資源分配給進程专挪,同一進程的所有線程共享該進程的所有資源及志。
(3)處理機分給線程,即真正在處理機上運行的是線程寨腔。
(4)線程在執(zhí)行過程中速侈,需要協(xié)作同步。不同進程的線程間要利用消息通信的辦法實現(xiàn)同步迫卢。

(5)劃分尺度:線程更小倚搬,所以多線程程序并發(fā)性更高;

(6)資源分配:進程是資源分配的基本單位靖避,同一進程內(nèi)多個線程共享其資源潭枣;

(7)地址空間:進程擁有獨立的地址空間比默,同一進程內(nèi)多個線程共享其資源;

(8)處理器調(diào)度:線程是處理器調(diào)度的基本單位盆犁;

(9)執(zhí)行:每個線程都有一個程序運行的入口命咐,順序執(zhí)行序列和程序的出口,但線程不能單獨執(zhí)行谐岁,必須組成進程醋奠,一個進程至少有一個主線程。簡而言之,一個程序至少有一個進程,一個進程至少有一個線程伊佃。

進程和程序區(qū)別和聯(lián)系

(1)程序只是一組指令的有序集合窜司,它本身沒有任何運行的含義,它只是一個靜態(tài)的實體航揉。而進程則不同塞祈,它是程序在某個數(shù)據(jù)集上的執(zhí)行。進程是一個動態(tài)的實體帅涂,它有自己的生命周期议薪。反映了一個程序在一定的數(shù)據(jù)集上運行的全部動態(tài)過程。

(2)進程和程序并不是一一對應的媳友,一個程序執(zhí)行在不同的數(shù)據(jù)集上就成為不同的進程斯议,可以用進程控制塊來唯一地標識每個進程。而這一點正是程序無法做到的醇锚,由于程序沒有和數(shù)據(jù)產(chǎn)生直接的聯(lián)系哼御,既使是執(zhí)行不同的數(shù)據(jù)的程序,他們的指令的集合依然是一樣的焊唬,所以無法唯一地標識出這些運行于不同數(shù)據(jù)集上的程序恋昼。一般來說,一個進程肯定有一個與之對應的程序求晶,而且只有一個焰雕。而一個程序有可能沒有與之對應的進程(因為它沒有執(zhí)行),也有可能有多個進程與之對應(運行在幾個不同的數(shù)據(jù)集上)。

(3)進程還具有并發(fā)性和交往性芳杏,這也與程序的封閉性不同。

進程和程序區(qū)別和聯(lián)系表現(xiàn)在以下方面:

1)程序只是一組指令的有序集合辟宗,它本身沒有任何運行的含義爵赵,它只是一個靜態(tài)的實體。而進程則不同泊脐,它是程序在某個數(shù)據(jù)集上的執(zhí)行空幻。

進程是一個動態(tài)的實體,它有自己的生命周期容客。它因創(chuàng)建而產(chǎn)生秕铛,因調(diào)度而運行约郁,因等待資源或事件而被處于等待狀態(tài),因完成任務而被撤消但两。反映了一個程序在一定的數(shù)據(jù)集上運行的全部動態(tài)過程鬓梅。

2)進程和程序并不是一一對應的,一個程序執(zhí)行在不同的數(shù)據(jù)集上就成為不同的進程谨湘,可以用進程控制塊來唯一地標識每個進程绽快。而這一點正是程序無法做到的,由于程序沒有和數(shù)據(jù)產(chǎn)生直接的聯(lián)系紧阔,既使是執(zhí)行不同的數(shù)據(jù)的程序坊罢,他們的指令的集合依然是一樣的,所以無法唯一地標識出這些運行于不同數(shù)據(jù)集上的程序擅耽。一般來說活孩,一個進程肯定有一個與之對應的程序,而且只有一個乖仇。而一個程序有可能沒有與之對應的進程(因為它沒有執(zhí)行),也有可能有多個進程與之對應(運行在幾個不同的數(shù)據(jù)集上)憾儒。

3)進程還具有并發(fā)性和交往性,這也與程序的封閉性不同这敬。進程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元航夺,系統(tǒng)利用該基本單元實現(xiàn)系統(tǒng)對應用的并發(fā)性。進程和線程的區(qū)別在于:

簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.

線程的劃分尺度小于進程崔涂,使得多線程程序的并發(fā)性高阳掐。

另外,進程在執(zhí)行過程中擁有獨立的內(nèi)存單元冷蚂,而多個線程共享內(nèi)存缭保,從而極大地提高了程序的運行效率。

線程在執(zhí)行過程中與進程還是有區(qū)別的蝙茶。每個獨立的線程有一個程序運行的入口艺骂、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行隆夯,必須依存在應用程序中钳恕,由應用程序提供多個線程執(zhí)行控制。

從邏輯角度來看蹄衷,多線程的意義在于一個應用程序中忧额,有多個執(zhí)行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應用愧口,來實現(xiàn)進程的調(diào)度和管理以及資源分配睦番。這就是進程和線程的重要區(qū)別。

進程是具有一定獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位.

線程是進程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.

一個線程可以創(chuàng)建和撤銷另一個線程;同一個進程中的多個線程之間可以并發(fā)執(zhí)行。

http://blog.csdn.net/xywlpo/article/details/6749685
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末托嚣,一起剝皮案震驚了整個濱河市巩检,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌示启,老刑警劉巖兢哭,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丑搔,居然都是意外死亡厦瓢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門啤月,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煮仇,“玉大人,你說我怎么就攤上這事谎仲≌愕妫” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵郑诺,是天一觀的道長夹姥。 經(jīng)常有香客問我,道長辙诞,這世上最難降的妖魔是什么辙售? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮飞涂,結果婚禮上旦部,老公的妹妹穿的比我還像新娘。我一直安慰自己较店,他們只是感情好士八,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梁呈,像睡著了一般婚度。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上官卡,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天蝗茁,我揣著相機與錄音,去河邊找鬼寻咒。 笑死评甜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的仔涩。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼粘舟,長吁一口氣:“原來是場噩夢啊……” “哼熔脂!你這毒婦竟也來了佩研?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤霞揉,失蹤者是張志新(化名)和其女友劉穎旬薯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體适秩,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡绊序,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了秽荞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骤公。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扬跋,靈堂內(nèi)的尸體忽然破棺而出阶捆,到底是詐尸還是另有隱情,我是刑警寧澤钦听,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布洒试,位于F島的核電站,受9級特大地震影響朴上,放射性物質發(fā)生泄漏垒棋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一痪宰、第九天 我趴在偏房一處隱蔽的房頂上張望叼架。 院中可真熱鬧,春花似錦酵镜、人聲如沸碉碉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垢粮。三九已至,卻和暖如春靠粪,著一層夾襖步出監(jiān)牢的瞬間蜡吧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工占键, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昔善,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓畔乙,卻偏偏與公主長得像君仆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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