CPU進程與線程的關(guān)系和區(qū)別_第1頁
CPU進程與線程的關(guān)系和區(qū)別_第2頁
CPU進程與線程的關(guān)系和區(qū)別_第3頁
CPU進程與線程的關(guān)系和區(qū)別_第4頁
CPU進程與線程的關(guān)系和區(qū)別_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、CPU 進程與線程的關(guān)系和區(qū)別篇一:進程和線程的區(qū)別進程和線程的區(qū)別 線程是指進程內(nèi)的一個執(zhí)行單元 ,也是進程內(nèi) 的可調(diào)度實體 .與進程的區(qū)別 :地址空間 :進程內(nèi)的一個執(zhí)行單元 ;進程至少有一個線程;它們 共享進程的地址空間 ;而進程有自己獨立的地址空間 ; TOC o 1-5 h z 資源擁有 :進程是資源分配和擁有的單位, 同一個進程內(nèi)的線程共享進程的資源線程是處理器調(diào)度的基本單位 ,但進程不是.4)二者均可并發(fā)執(zhí)行. 進程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元,系統(tǒng) 利用該基本單元實現(xiàn)系統(tǒng)對應用的并發(fā)性。進程和線程的區(qū)別在于: 簡而言之 ,一個程序至少有一個進程,一個進程至少有

2、一個線程.線程的劃分尺度小于進程,使得多線程程序的并發(fā)性高。另外, 進程在執(zhí)行過程中擁有獨立的內(nèi)存單元, 而多個線程共享 內(nèi)存,從而極大地提高了程序的運行效率。線程在執(zhí)行過程中與進程還是有區(qū)別的。 每個獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行,必須依存在應用程序中,由應用程序提供多個線程執(zhí)行控制。從邏輯角度來看,多線程的意義在于一個應用程序中,有多個執(zhí) 行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應用,來實現(xiàn)進程的調(diào)度和管理以及資源分配。這就是進程和線程的 重要區(qū)別。進程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動 , TOC

3、 o 1-5 h z 進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位.線程是進程的一個實體, 是 CPU 調(diào)度和分派的基本單位 , 它是比進 程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只 擁有一點在運行中必不可少的資源( 如程序計數(shù)器,一組寄存器和棧) ,但 是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.一個線程可以創(chuàng)建和撤銷另一個線程 ;同一個進程中的多個線程之間可以并發(fā)執(zhí)行.和 stdio.h 區(qū)別#includestdio.h 當要調(diào)用某個函數(shù)時先在用戶自已編寫的文件中查找, 如果找不到再到庫文件里去找, 而#“elude 是直接到庫文件里去找所以如果是調(diào)用自己

4、寫的函數(shù)的話就用 #includestdio.h , 這種形 式而調(diào)用標準庫函數(shù)的話就用 #include 這種形式,可以提高速度篇二:進程線程區(qū)別與聯(lián)系定義:程序只是一組指令的有序集合二 進程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次 運行活動,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位;三 線程是進程的一個實體,是 CPU 調(diào)度和分派的基本單位 ,它是 比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源 只擁有一點在運行中必不可少的資源( 如程序計數(shù)器,一組寄存器和棧 ), 一個線程可以創(chuàng)建和撤銷另一個線程;一 進程與線程區(qū)別與聯(lián)系劃分尺度:線程更小,所以多線程程序并發(fā)性更高

5、;資源分配:進程是資源分配的基本單位,同一進程內(nèi)多個線程共享其資源;地址空間:進程擁有獨立的地址空間,同一進程內(nèi)多個線程共享其資源;處理器調(diào)度:線程是處理器調(diào)度的基本單位;執(zhí)行:每個線程都有一個程序運行的入口,順序執(zhí)行序列和 程序的出口, 但線程不能單獨執(zhí)行, 必須組成進程, 一個進程至少有 一個主線程。簡而言之 ,一個程序至少有一個進程,一個進程至少有一個線程 .二 進程和程序區(qū)別和聯(lián)系(1) 程序只是一組指令的有序集合, 它本身沒有任何運行的含義, 它只是一個靜態(tài)的實體。而進程則不同,它是程序在某個數(shù)據(jù)集上的 執(zhí)行。進程是一個動態(tài)的實體,它有自己的生命周期。反映了一個程 序在一定的數(shù)據(jù)集上

6、運行的全部動態(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)在以下方面:)

7、程序只是一組指令的有序集合,它本身沒有任何運行的含義, 它只是一個靜態(tài)的實體。而進程則不同,它是程序在某個數(shù)據(jù)集上的執(zhí)行。進程是一個動態(tài)的實體, 它有自己的生命周期。 它因創(chuàng)建而產(chǎn)生, 因調(diào)度而運行,因等待資源或事件而被處于等待狀態(tài),因完成任務而被撤消。反映了一個程序在一定的數(shù)據(jù)集上運行的全部動態(tài)過程。) 進程和程序并不是一一對應的,一個程序執(zhí)行在不同的數(shù)據(jù)集上就成為不同的進程,可以用進程控制塊來唯一地標識每個進程。而 這一點正是程序無法做到的,由于程序沒有和數(shù)據(jù)產(chǎn)生直接的聯(lián)系,既使是執(zhí)行不同的數(shù)據(jù)的程序,他們的指令的集合依然是一樣的,所以無法唯一地標識出這些運行于不同數(shù)據(jù)集上的程序。一般來說

8、,一 個進程 肯定有一個與之對應的程序,而且只有一個。而一個程序有可 能沒有與之對應的進程( 因為它沒有執(zhí)行) ,也有可能有多個進程與之對應 ( 運行在幾個不同的數(shù)據(jù)集上 ) 。) 進程還具有并發(fā)性和交往性,這也與程序的封閉性不同。進程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元,系統(tǒng)利用該基本單元實現(xiàn)系統(tǒng)對應用的并發(fā)性。進程和線程的區(qū)別在于:簡而言之 ,一個程序至少有一個進程,一個進程至少有一個線程. 線程的劃分尺度小于進程,使得多線程程序的并發(fā)性高。 另外,進程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享 內(nèi)存,從而極大地提高了程序的運行效率。線程在執(zhí)行過程中與進程還是有區(qū)別的。 每個

9、獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行,必須依存在應用程序中,由應用程序提供多個線程執(zhí)行控制。從邏輯角度來看,多線程的意義在于一個應用程序中,有多個執(zhí) 行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的 應用,來實現(xiàn)進程的調(diào)度和管理以及資源分配。這就是進程和線程的 重要區(qū)別。進程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動 ,進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位 .線程是進程的一個實體, 是 CPU 調(diào)度和分派的基本單位 , 它是比進 程更小的能獨立運行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只 擁有一點在運行中必不可少的

10、資源( 如程序計數(shù)器,一組寄存器和棧 ) ,但 是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.一個線程可以創(chuàng)建和撤銷另一個線程 ; 同一個進程中的多個線程之間可以并發(fā)執(zhí)行.作業(yè)進程程序之間的聯(lián)系程序與進程之間的區(qū)別:1)進程更能真實地描述并發(fā),而程序不能。2)進程由程序和數(shù)據(jù)兩部分組成,進程是競爭計算機系統(tǒng)有限資源的基本單位,也是進程處理機調(diào)度的基本單位。3)程序是靜態(tài)的概念;進程是程序在處理機上一次執(zhí)行的過程,是動態(tài)的概念。4 )進程有生存周期,有誕生有消亡。是短暫的;而程序是相對長久的。5 )一個程序可以作為多個進程的運行程序;一個進程也可以運行多個程序。( 6 ) 進程具有創(chuàng)

11、建其他進程的功能;而程序沒有。 作業(yè)與進程的區(qū)別: TOC o 1-5 h z 一個進程是一個程序?qū)δ硞€數(shù)據(jù)集的執(zhí)行過程, 是分配資源的基本單位。作業(yè)是用戶需要計算機完成的某項任務,是要求計算機所做工作的集合。一個作業(yè)的完成要經(jīng)過作業(yè)提交、作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成 4 個階段。 而進程是對已提交完畢的程序所執(zhí)行過程的描述,是資源分配的基本單位。其主要區(qū)別如下。( 1 )作業(yè)是用戶向計算機提交任務的任務實體。在用戶向計算機提交作業(yè)后,系統(tǒng)將它放入外存中的作業(yè)等待隊列中等待執(zhí)行。而 進程則是完 成用戶任務的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單 位。任一進程,只要它被創(chuàng)建,總有相應的部分存在于

12、內(nèi)存中。( 2 )一個作業(yè)可由多個進程組成,且必須至少由一個進程組成, 反過來則不成立。( 3 )作業(yè)的概念主要用在批處理系統(tǒng)中,像UNIX 這樣的分時系 統(tǒng)中就沒有作業(yè)的概念。而進程的概念則用在幾乎所有的多道程序系 統(tǒng)中。作業(yè)、進程和程序之間的聯(lián)系: 一個作業(yè)通常包括程序、數(shù)據(jù)和操作說明書 3 部分。每一個進程由 PCB 程序和數(shù)據(jù)集合組成。這說明程序是進程的一部分,是進程的 實體。因此,一個作業(yè)可劃分為若干個進程來完成,而每一個進程有其實體 程序和數(shù)據(jù)集合。篇三:線程與進程有什么區(qū)別? 簡單的說,你每啟動一個程序,就啟動了一個進程。 在 Windows 3.x 下, 進程是最小運行單位。

13、在 Win dows 95/NT下,每個進程還可以啟動幾個線程, 比如每下載一個文件可以單獨開一個線程。 在 Windows95/NT 下,線程是最小單位。 WINDOWS 的多任務特性使得線程之間獨 立運行,但是它們彼此共享虛擬空間,也就是共用變量,線程有可能 會同時操作一片內(nèi)存。什么是系統(tǒng)的進程? 發(fā)布: 獄火華衣 分類: 進程知識 發(fā)布日 期:2005.08.21下面針對 hejb 的提問, 我先讓朋友們了解一下在任務管理器里的 進程。其實在談到進程時,還要涉及到線程的概念。 進程是指在系統(tǒng) 中正在運 行的一個應用程序; 線程是系統(tǒng)分配處理器時間資源的基本 單元,或者說進程之內(nèi)獨立執(zhí)行的

14、一個單元。對于操作系統(tǒng)而言,其 調(diào)度單元是線程。一個進程至少包括一個線程,通常將該線程稱為主 線程。一個進程從主線程的執(zhí)行開始進而創(chuàng)建一個或多個附加線程, 就是所謂基于多線程的多任務。那進程與線程的區(qū)別到底是什么?進程是執(zhí)行程序的實例。 例如,當你運行記事本程序( Nodepad )時,你就創(chuàng)建了一個用來容納組成Notepad.exe 的代碼及其所需調(diào)用動態(tài)鏈接庫的進程。每個進程均運行在其專用且受保護的地址空間內(nèi)。因此,如果你同時運行記事本的兩個拷貝,該程序正在使用的數(shù)據(jù)在各自實例中是彼此獨立的。 在記事本的一個拷貝中將無法看到該程序的第二個實例打開的數(shù)據(jù)。我這里以沙箱為例進行闡述。一個進程就

15、好比一個沙箱。線程就如同沙箱中的孩子們。孩子們在沙箱子中跑來跑去,并且可能將沙子攘到別的 孩子眼中,他們會互相踢打或撕咬。但是,這些沙箱略有不 同之處就在于每個沙箱完全由墻壁和頂棚封閉起來,無論箱中的孩子 如何狠命地攘 沙,他們也不會影響到其它沙箱中的其他孩子。因此, 每 個進程就象一個被保護起來的沙箱。未經(jīng)許可,無人可以進出。實際上線程運行而進程不運行。 兩個進程彼此獲得專用數(shù)據(jù)或內(nèi) 存的唯一途徑就是通過協(xié)議來共享內(nèi)存塊。這是一種協(xié)作策略。下面 讓我們分析一下任務管理器里的進程選項卡。這里的進程是指一系列進程, 這些進程是由它們所運行的可執(zhí)行 程原因。請序?qū)嵗齺碜R別的,這就是進程選項卡中的第

16、一列給出了映射名稱的例的注意,這里并沒有進程名稱列。進程并不擁有獨立于其所歸屬實映射名稱。換言之,如果你運行5 個記事本拷貝,你將會看到 5 個稱為Notepad.exe 的進程。它們是如何彼此區(qū)別的呢?其中一種方式是通過它們的進程ID, 因為每個進程都擁有其獨一無二的編碼。該進程 ID 由 Win dows NT 或 Win dows 2000 生成,并可以循環(huán)使用。因此,進程 ID 將不會越編越大,它們能夠得到循環(huán)利用。第三列是被進程中的線程所占用的 CPU 時間百分比。它不是CPU 的編號,而是被進程占用的 CPU 時間百分比。此時我的系統(tǒng)基本上是 空閑的。盡管 系統(tǒng)看上去每一秒左右都只

17、使用一小部分CPU 時間,但 該系統(tǒng)空閑進程仍舊耗用了大約 99% 的 CPU 時間第四列, CPU 時間,是 CPU 被進程中的線程累計占用的小時、分鐘及秒數(shù)。請注意,我對進程中的線程使用占用一詞。這并不一定意 味著那就是 進程已耗用的 CPU 時間總和,因為,如我們一會兒將看到 的, NT 計時的方式是,當特定的時鐘間隔激發(fā)時,無論誰恰巧處于當 前的線程中,它都將計算到 CPU 周期之內(nèi)。通常情況下,在大多數(shù)NT 系統(tǒng)中,時鐘以 10 毫秒的間隔運行。每 10 毫秒 NT 的心臟就跳動 一下。有一些驅(qū)動程序代碼片段運行并顯示誰是當前的線程。讓我們將CPU 時間的最后 10 毫秒 記在它的帳

18、上。因此,如果一個線程開始運行,并在持續(xù)運行8 毫秒 后完成,接著,第二個線程開始運行并持續(xù)了 2 毫秒,這時,時鐘激發(fā),請猜一猜這整整 10 毫秒的時鐘周期到底記在了哪個線程的帳上?答案是第 二個線程。因此, NT 中存在一些固有的不準確性,而NT 恰是以這種 方式進行計時,實際情況也如是,大多數(shù)32 位操作系統(tǒng)中都存在一個基于間隔的計時機 制。請記住這一點,因為,有時當你觀察線程所耗用的 CPU 總和時,會出現(xiàn)盡管該線程或許看上去已運行過數(shù)十萬次, 但其 CPU 時間占用量卻可能是零或非常短暫的現(xiàn)象,那么,上述解釋便是原因所在。上述也就是我們在任務管理器的進程選項卡中所能看 到的基本信息列。說到這里 ,我想大家對進程有一定的認識了吧 ,最后我對平時見到的各進程項細述一下,有哪些是能關(guān)的,有哪些是不能關(guān)的 .最基本的系統(tǒng)進程(也就是說,這些進程是系統(tǒng)運行的基本條件, 有了這些進程,系統(tǒng)就能正常運行) :smss.exe Session Managercsrss.exe 子系統(tǒng)服務器進程winlogon.exe 管理用戶登錄services.exe 包含很多系統(tǒng)服務lsass.exe 管理 IP 安全策略以及啟動 ISAKMP/Oakley (IKE) 和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論