關于什么是進程調度,什么是進程這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、什么是系統(tǒng)進程 進程是指在系統(tǒng)中正在運行的一個應用程序;線程是系統(tǒng)分配處理器時間資源的基本單元,或者說進程之內(nèi)獨立執(zhí)行的一個單元。
2、對于操 作系統(tǒng)而言,其調度單元是線程。
3、一個進程至少包括一個線程,通常將該線程稱為主線程。
4、一個進程從主線程的執(zhí)行開始進而創(chuàng)建一個或多個附加線程,就是所謂基于多線程的多任務。
5、 那進程與線程的區(qū)別到底是什么?進程是執(zhí)行程序的實例。
6、例如,當你運行記事本程序(Nodepad)時,你就創(chuàng)建了一個用來容納組成Notepad.exe的代碼及其所需調用動態(tài)鏈接庫的進程。
7、每個進程均運行在其專用且受保護的地址空間內(nèi)。
8、因此,如果你同時運行記事本的兩個拷貝,該程序正在使用的數(shù)據(jù)在各自實例中是彼此獨立的。
9、在記事本的一個拷貝中將無法看到該程序的第二個實例打開的數(shù)據(jù)。
10、 以沙箱為例進行闡述。
11、一個進程就好比一個沙箱。
12、線程就如同沙箱中的孩子們。
13、孩子們在沙箱子中跑來跑去,并且可能將沙子攘到別的孩子眼中,他們會互相踢打或撕咬。
14、但是,這些沙箱略有不同之處就在于每個沙箱完全由墻壁和頂棚封閉起來,無論箱中的孩子如何狠命地攘沙,他們也不會影響到其它沙箱中的其他孩子。
15、因此,每個進程就象一個被保護起來的沙箱。
16、未經(jīng)許可,無人可以進出。
17、 實際上線程運行而進程不運行。
18、兩個進程彼此獲得專用數(shù)據(jù)或內(nèi)存的唯一途徑就是通過協(xié)議來共享內(nèi)存塊。
19、這是一種協(xié)作策略。
20、下面讓我們分析一下任務管理器里的進程選項卡。
21、 這里的進程是指一系列進程,這些進程是由它們所運行的可執(zhí)行程序實例來識別的,這就是進程選項卡中的第一列給出了映射名稱的原因。
22、請注意,這里并沒有進程名稱列。
23、進程并不擁有獨立于其所歸屬實例的映射名稱。
24、換言之,如果你運行5個記事本拷貝,你將會看到5個稱為Notepad.exe的進程。
25、它們是如何彼此區(qū)別的呢?其中一種方式是通過它們的進程ID,因為每個進程都擁有其獨一無二的編碼。
26、該進程ID由Windows NT或Windows 2000生成,并可以循環(huán)使用。
27、因此,進程ID將不會越編越大,它們能夠得到循環(huán)利用。
28、 第三列是被進程中的線程所占用的CPU時間百分比。
29、它不是CPU的編號,而是被進程占用的CPU時間百分比。
30、此時我的系統(tǒng)基本上是空閑的。
31、盡管系統(tǒng)看上去每一秒左右都只使用一小部分CPU時間,但該系統(tǒng)空閑進程仍舊耗用了大約99%的CPU時間。
32、 第四列,CPU時間,是CPU被進程中的線程累計占用的小時、分鐘及秒數(shù)。
33、請注意,我對進程中的線程使用占用一詞。
34、這并不一定意味著那就是進程已耗用的CPU時間總和,因為,如我們一會兒將看到的,NT計時的方式是,當特定的時鐘間隔激發(fā)時,無論誰恰巧處于當前的線程中,它都將計算到CPU周期之內(nèi)。
35、通常情況下,在大多數(shù)NT系統(tǒng)中,時鐘以10毫秒的間隔運行。
36、每10毫秒NT的心臟就跳動一下。
37、有一些驅動程序代碼片段運行并顯示誰是當前的線程。
38、讓我們將CPU時間的最后10毫秒記在它的帳上。
39、因此,如果一個線程開始運行,并在持續(xù)運行8毫秒后完成,接著,第二個線程開始運行并持續(xù)了2毫秒,這時,時鐘激發(fā),請猜一猜這整整10毫秒的時鐘周期到底記在了哪個線程的帳上?答案是第二個線程。
40、因此,NT中存在一些固有的不準確性,而NT恰是以這種方式進行計時,實際情況也如是,大多數(shù)32位操作系統(tǒng)中都存在一個基于間隔的計時機制。
41、請記住這一點,因為,有時當你觀察線程所耗用的CPU總和時,會出現(xiàn)盡管該線程或許看上去已運行過數(shù)十萬次,但其CPU時間占用量卻可能是零或非常短暫的現(xiàn)象,那么,上述解釋便是原因所在。
42、上述也就是我們在任務管理器的進程選項卡中所能看到的基本信息列。
43、 結束進程就是把某個進程給關掉 除了系統(tǒng)進程都可以關掉 沒有影響 但是你正在使用的軟件的進程不要關否則程序也會關掉 比如你用QQ聊天的時候 進程里會有個qq.exe 如果關掉了 QQ也就會被關掉 Ctrl+Alt+del 可以打開任務管理器 在里面可以看到正在運行的進程 并可以關閉。
本文分享完畢,希望對大家有所幫助。
標簽:
免責聲明:本文由用戶上傳,如有侵權請聯(lián)系刪除!