![第2章進(jìn)程描述及控制_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/44792166-a7f9-435f-9aad-e4583366e105/44792166-a7f9-435f-9aad-e4583366e1051.gif)
![第2章進(jìn)程描述及控制_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/44792166-a7f9-435f-9aad-e4583366e105/44792166-a7f9-435f-9aad-e4583366e1052.gif)
![第2章進(jìn)程描述及控制_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/44792166-a7f9-435f-9aad-e4583366e105/44792166-a7f9-435f-9aad-e4583366e1053.gif)
![第2章進(jìn)程描述及控制_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/44792166-a7f9-435f-9aad-e4583366e105/44792166-a7f9-435f-9aad-e4583366e1054.gif)
![第2章進(jìn)程描述及控制_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/44792166-a7f9-435f-9aad-e4583366e105/44792166-a7f9-435f-9aad-e4583366e1055.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1第第2 2章章 進(jìn)程描述與控制進(jìn)程描述與控制v進(jìn)程的特征和定義進(jìn)程的特征和定義v進(jìn)程的三種基本狀態(tài)進(jìn)程的三種基本狀態(tài)v進(jìn)程的描述進(jìn)程的描述進(jìn)程控制塊進(jìn)程控制塊v進(jìn)程控制進(jìn)程控制 v線程和線程和SMP SMP 2進(jìn)程的引入進(jìn)程的引入v進(jìn)程進(jìn)程是現(xiàn)代操作系統(tǒng)中最重要的概念之一。是現(xiàn)代操作系統(tǒng)中最重要的概念之一。操作系統(tǒng)的重要功能之一就是創(chuàng)建、管理和操作系統(tǒng)的重要功能之一就是創(chuàng)建、管理和終止進(jìn)程。終止進(jìn)程。v為什么要在操作系統(tǒng)中引入進(jìn)程這樣一個(gè)概為什么要在操作系統(tǒng)中引入進(jìn)程這樣一個(gè)概念?念?3進(jìn)程的引入(續(xù))進(jìn)程的引入(續(xù))在在多道程序設(shè)計(jì)多道程序設(shè)計(jì)出現(xiàn)以前,廣泛使用的是出現(xiàn)以前,廣泛使用的是“
2、程序程序”的概念。那時(shí),程序的執(zhí)行是順序的,即一個(gè)程的概念。那時(shí),程序的執(zhí)行是順序的,即一個(gè)程序執(zhí)行完之后,才可以把另一個(gè)程序調(diào)入內(nèi)存執(zhí)序執(zhí)行完之后,才可以把另一個(gè)程序調(diào)入內(nèi)存執(zhí)行。這時(shí),程序的執(zhí)行有如下特征:行。這時(shí),程序的執(zhí)行有如下特征:l 順序性順序性l 封閉性封閉性 (一個(gè)程序獨(dú)占資源,不受其它程序影響)(一個(gè)程序獨(dú)占資源,不受其它程序影響)l 可再現(xiàn)性可再現(xiàn)性 (只要初始條件相同,無論何時(shí)執(zhí)行,都會(huì)得到同一結(jié)果)(只要初始條件相同,無論何時(shí)執(zhí)行,都會(huì)得到同一結(jié)果)4進(jìn)程的引入(續(xù))進(jìn)程的引入(續(xù))v在多道程序環(huán)境下在多道程序環(huán)境下,程序的執(zhí)行特性已完全,程序的執(zhí)行特性已完全改變,改變
3、,v例:例: 有兩個(gè)循環(huán)程序有兩個(gè)循環(huán)程序A A和和B B,他們共享一個(gè)變量他們共享一個(gè)變量N N; 程序程序A A每次循環(huán)都做每次循環(huán)都做N=N+1N=N+1操作;程序操作;程序B B每每次循環(huán)次循環(huán) 都要做:都要做:PrintPrint(N N),然后將),然后將N N置置0 0。 如下面程序段所示:如下面程序段所示:5進(jìn)程的引入(續(xù))進(jìn)程的引入(續(xù)) int N=0; Cobegin A()() B( ) while(true) while(true) N=N+1; print(N); N=0; Coend6進(jìn)程的引入(續(xù))進(jìn)程的引入(續(xù))v在并發(fā)執(zhí)行中,若恰巧總是先運(yùn)行在并發(fā)執(zhí)行中,若
4、恰巧總是先運(yùn)行A A,再運(yùn)行,再運(yùn)行B B,則會(huì)打印出,則會(huì)打印出N N的系列值:的系列值:1 1,1 1,1 1v在并發(fā)執(zhí)行中,若恰巧總是先運(yùn)行在并發(fā)執(zhí)行中,若恰巧總是先運(yùn)行B B,再運(yùn)行,再運(yùn)行A A,則會(huì)打印出,則會(huì)打印出N N的系列值:的系列值:0 0,1 1,1 1v在并發(fā)執(zhí)行中,若恰巧總是把在并發(fā)執(zhí)行中,若恰巧總是把A A程序插在程序插在B B程程序的序的print(N)print(N)和和N=0N=0之間,則會(huì)打印出之間,則會(huì)打印出N N的系的系列值:列值:0 0,0 0,0 0 . . 到底哪種結(jié)果是對的呢?到底哪種結(jié)果是對的呢?7進(jìn)程的引入(續(xù))進(jìn)程的引入(續(xù))v在多道程序環(huán)
5、境下在多道程序環(huán)境下,程序的并發(fā)執(zhí)行代替了程程序的并發(fā)執(zhí)行代替了程序的順序執(zhí)行,程序不再像單道程序環(huán)境那樣,序的順序執(zhí)行,程序不再像單道程序環(huán)境那樣,順序連貫地執(zhí)行,而是走走停停,具有執(zhí)行順序連貫地執(zhí)行,而是走走停停,具有執(zhí)行暫停暫停執(zhí)行的規(guī)律。執(zhí)行的規(guī)律。v它破壞了程序的它破壞了程序的“封閉性封閉性”和和“可再現(xiàn)性可再現(xiàn)性”,使得使得程序和機(jī)器執(zhí)行程序的活動(dòng)不再一一對應(yīng),程序和機(jī)器執(zhí)行程序的活動(dòng)不再一一對應(yīng),程序執(zhí)行的結(jié)果也不再唯一,程序執(zhí)行的結(jié)果也不再唯一,這樣,程序的執(zhí)這樣,程序的執(zhí)行也就失去了意義。行也就失去了意義。8進(jìn)程的引入(續(xù))進(jìn)程的引入(續(xù))l這時(shí)這時(shí)“程序程序”這個(gè)靜態(tài)的概念
6、已經(jīng)不能反這個(gè)靜態(tài)的概念已經(jīng)不能反映程序活動(dòng)所具有的特征,需要引進(jìn)一個(gè)映程序活動(dòng)所具有的特征,需要引進(jìn)一個(gè)新的概念新的概念進(jìn)程。進(jìn)程。l為了使程序能并發(fā)執(zhí)行,且為了對并發(fā)執(zhí)為了使程序能并發(fā)執(zhí)行,且為了對并發(fā)執(zhí)行的程序加以描述和控制,人們引入了行的程序加以描述和控制,人們引入了“進(jìn)程進(jìn)程”的概念。的概念。92.1 進(jìn)程的定義和特征進(jìn)程的定義和特征v進(jìn)程的定義有多種,比較典型的有:進(jìn)程的定義有多種,比較典型的有:1 1)進(jìn)程是程序在處理器上的一次執(zhí)行過程。)進(jìn)程是程序在處理器上的一次執(zhí)行過程。2 2)進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí))進(jìn)程是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng)。行
7、時(shí)所發(fā)生的活動(dòng)。3 3)進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行的過程,)進(jìn)程是程序在一個(gè)數(shù)據(jù)集合上的運(yùn)行的過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。 通常人們定義進(jìn)程為:進(jìn)程是進(jìn)程實(shí)體的運(yùn)行通常人們定義進(jìn)程為:進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。單位。102.1 進(jìn)程的定義和特征進(jìn)程的定義和特征 進(jìn)程的特征:進(jìn)程的特征:v1) 1) 動(dòng)態(tài)性動(dòng)態(tài)性 v2) 2) 并發(fā)性并發(fā)性 v3) 3) 獨(dú)立性獨(dú)立性 v4) 4) 異步性異步性v5 5)結(jié)構(gòu)特征)結(jié)構(gòu)特征11 進(jìn)程的特征:進(jìn)程的特征:1
8、) 1) 動(dòng)態(tài)性動(dòng)態(tài)性v進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,因此,動(dòng)進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,因此,動(dòng)態(tài)性是進(jìn)程最基本的特征。它由創(chuàng)建而產(chǎn)生,態(tài)性是進(jìn)程最基本的特征。它由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消亡,因而具有一定由調(diào)度而執(zhí)行,由撤銷而消亡,因而具有一定的生命期。的生命期。v而程序是而程序是靜態(tài)靜態(tài)的,它是一組有序指令的集合,的,它是一組有序指令的集合,并存放于某種介質(zhì)上,其本身并不具有運(yùn)動(dòng)的并存放于某種介質(zhì)上,其本身并不具有運(yùn)動(dòng)的含義。含義。12 進(jìn)程的特征:進(jìn)程的特征:2) 2) 并發(fā)性并發(fā)性v指多個(gè)進(jìn)程共存于內(nèi)存中,且能指多個(gè)進(jìn)程共存于內(nèi)存中,且能在一段時(shí)間在一段時(shí)間內(nèi)內(nèi)同時(shí)運(yùn)
9、行。同時(shí)運(yùn)行。v并發(fā)性是進(jìn)程的重要特征,也成為并發(fā)性是進(jìn)程的重要特征,也成為OSOS的重要的重要特征。引入進(jìn)程的目的也就是為了使多個(gè)進(jìn)特征。引入進(jìn)程的目的也就是為了使多個(gè)進(jìn)程能夠并發(fā)執(zhí)行;而程序(沒有建立程能夠并發(fā)執(zhí)行;而程序(沒有建立PCBPCB)是不能并發(fā)執(zhí)行的。是不能并發(fā)執(zhí)行的。13 進(jìn)程的特征:進(jìn)程的特征:3) 3) 獨(dú)立性獨(dú)立性v指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行,指進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行,獨(dú)立分配資獨(dú)立分配資源和獨(dú)立接受調(diào)度的基本單位。源和獨(dú)立接受調(diào)度的基本單位。v凡未建立凡未建立PCBPCB的程序都不能作為一個(gè)獨(dú)立的的程序都不能作為一個(gè)獨(dú)立的單位參與運(yùn)行。單位參與運(yùn)行。14 進(jìn)程的特征
10、:進(jìn)程的特征:4) 4) 異步性異步性v指進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向指進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn),或者說進(jìn)程實(shí)體按異步方式運(yùn)行。前推進(jìn),或者說進(jìn)程實(shí)體按異步方式運(yùn)行。15進(jìn)程的特征:進(jìn)程的特征:5) 5) 結(jié)構(gòu)特征結(jié)構(gòu)特征v為了描述進(jìn)程的運(yùn)動(dòng)變化過程,并使之能獨(dú)立為了描述進(jìn)程的運(yùn)動(dòng)變化過程,并使之能獨(dú)立運(yùn)行,應(yīng)為每一個(gè)進(jìn)程都配置一個(gè)進(jìn)程控制塊運(yùn)行,應(yīng)為每一個(gè)進(jìn)程都配置一個(gè)進(jìn)程控制塊PCBPCB。v這樣,從結(jié)構(gòu)上看,每個(gè)進(jìn)程都是由程序段、這樣,從結(jié)構(gòu)上看,每個(gè)進(jìn)程都是由程序段、數(shù)據(jù)段及數(shù)據(jù)段及PCBPCB三個(gè)部分組成。三個(gè)部分組成。16l2.2 2.2 進(jìn)程的三種基本狀態(tài)進(jìn)
11、程的三種基本狀態(tài)v1 1)就緒)就緒(Ready)(Ready)狀態(tài)狀態(tài) v2) 2) 執(zhí)行狀態(tài)執(zhí)行狀態(tài) v3) 3) 阻塞狀態(tài)阻塞狀態(tài) 171 1)就緒)就緒(Ready)(Ready)狀態(tài)狀態(tài)v當(dāng)進(jìn)程已分配到當(dāng)進(jìn)程已分配到除除CPUCPU以外以外的的所有的的所有必要資源必要資源后,只要再獲得后,只要再獲得CPUCPU就可以立即執(zhí)行,這時(shí)的就可以立即執(zhí)行,這時(shí)的進(jìn)程狀態(tài)稱為進(jìn)程狀態(tài)稱為就緒狀態(tài)就緒狀態(tài)。v在一個(gè)系統(tǒng)中處于就緒狀態(tài)的進(jìn)程可能有多在一個(gè)系統(tǒng)中處于就緒狀態(tài)的進(jìn)程可能有多個(gè),通常將他們排成一個(gè)隊(duì)列,稱為個(gè),通常將他們排成一個(gè)隊(duì)列,稱為就緒隊(duì)就緒隊(duì)列列182 2)執(zhí)行狀態(tài))執(zhí)行狀態(tài)v進(jìn)
12、程進(jìn)程已獲得已獲得CPUCPU,其程序正在執(zhí)行。,其程序正在執(zhí)行。v在單處理機(jī)系統(tǒng)中,只有一個(gè)進(jìn)程處于執(zhí)在單處理機(jī)系統(tǒng)中,只有一個(gè)進(jìn)程處于執(zhí)行狀態(tài);行狀態(tài);v在多處理器系統(tǒng)中,則有多個(gè)進(jìn)程處于執(zhí)在多處理器系統(tǒng)中,則有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。行狀態(tài)。193 3)阻塞狀態(tài))阻塞狀態(tài)v正在執(zhí)行的進(jìn)程由于發(fā)生某事件(如需要輸正在執(zhí)行的進(jìn)程由于發(fā)生某事件(如需要輸入或輸出數(shù)據(jù))而暫時(shí)無法繼續(xù)執(zhí)行時(shí),便入或輸出數(shù)據(jù))而暫時(shí)無法繼續(xù)執(zhí)行時(shí),便放棄處理機(jī)而處于暫停狀態(tài),放棄處理機(jī)而處于暫停狀態(tài),v即進(jìn)程的執(zhí)行受到阻塞,這種暫停的狀態(tài)稱即進(jìn)程的執(zhí)行受到阻塞,這種暫停的狀態(tài)稱為為阻塞狀態(tài)阻塞狀態(tài)。20致使進(jìn)程阻塞的
13、典型事件有:致使進(jìn)程阻塞的典型事件有:v請求請求I/OI/O,申請緩沖空間等。,申請緩沖空間等。v通常將阻塞進(jìn)程也排成隊(duì)列,有的系統(tǒng)根據(jù)阻通常將阻塞進(jìn)程也排成隊(duì)列,有的系統(tǒng)根據(jù)阻塞的原因不同,而把處于阻塞狀態(tài)的進(jìn)程排成塞的原因不同,而把處于阻塞狀態(tài)的進(jìn)程排成多個(gè)隊(duì)列。多個(gè)隊(duì)列。21進(jìn)程的三種狀態(tài)及其轉(zhuǎn)換進(jìn)程的三種狀態(tài)及其轉(zhuǎn)換就緒阻塞執(zhí)行時(shí)間片完進(jìn)程調(diào)度I/O 完成I/O 請求22進(jìn)程的另一個(gè)狀態(tài)進(jìn)程的另一個(gè)狀態(tài) 掛起狀態(tài)掛起狀態(tài)v盡管引入了多道程序設(shè)計(jì),在內(nèi)存中有多道程盡管引入了多道程序設(shè)計(jì),在內(nèi)存中有多道程序在共享處理機(jī)和外圍設(shè)備,使得處理機(jī)利用序在共享處理機(jī)和外圍設(shè)備,使得處理機(jī)利用率提高
14、,率提高,v但由于其運(yùn)行速度的懸殊,還可能出現(xiàn)在內(nèi)存但由于其運(yùn)行速度的懸殊,還可能出現(xiàn)在內(nèi)存中的所有進(jìn)程都處在等待狀態(tài)(阻塞狀態(tài)),中的所有進(jìn)程都處在等待狀態(tài)(阻塞狀態(tài)),而此時(shí)而此時(shí)CPUCPU空閑的情形??臻e的情形。v為了充分利用為了充分利用CPUCPU的寶貴資源,又引入了的寶貴資源,又引入了“掛掛起起”狀態(tài)。狀態(tài)。23進(jìn)程的另一個(gè)狀態(tài)進(jìn)程的另一個(gè)狀態(tài) 掛起狀態(tài)(續(xù))掛起狀態(tài)(續(xù))l由于由于I/OI/O操作比操作比CPUCPU計(jì)算慢得多,故常會(huì)出現(xiàn)計(jì)算慢得多,故常會(huì)出現(xiàn)內(nèi)存中內(nèi)存中所有進(jìn)程都等待所有進(jìn)程都等待I/OI/O的現(xiàn)象。的現(xiàn)象。l即使運(yùn)行多個(gè)程序,處理器在大多數(shù)時(shí)間仍即使運(yùn)行多個(gè)程
15、序,處理器在大多數(shù)時(shí)間仍處于空閑狀態(tài)。處于空閑狀態(tài)。l為此可采用為此可采用交換方法交換方法,將內(nèi)存中的一部分進(jìn)將內(nèi)存中的一部分進(jìn)程轉(zhuǎn)移到磁盤中。程轉(zhuǎn)移到磁盤中。24進(jìn)程的另一個(gè)狀態(tài)進(jìn)程的另一個(gè)狀態(tài) 掛起狀態(tài)(續(xù))掛起狀態(tài)(續(xù))l 那么需要在進(jìn)程行為模式中需增加一個(gè)新的那么需要在進(jìn)程行為模式中需增加一個(gè)新的掛起狀態(tài)掛起狀態(tài)l當(dāng)內(nèi)存所有進(jìn)程阻塞時(shí),操作系統(tǒng)可將一進(jìn)程當(dāng)內(nèi)存所有進(jìn)程阻塞時(shí),操作系統(tǒng)可將一進(jìn)程置為置為掛起狀態(tài)掛起狀態(tài)并交換到磁盤,并交換到磁盤,l再將另一個(gè)處于就緒狀態(tài)的進(jìn)程調(diào)入另一進(jìn)程再將另一個(gè)處于就緒狀態(tài)的進(jìn)程調(diào)入另一進(jìn)程執(zhí)行。執(zhí)行。25l掛起狀態(tài)與原有的阻塞和就緒狀態(tài)結(jié)合為起來掛起
16、狀態(tài)與原有的阻塞和就緒狀態(tài)結(jié)合為起來又可形成又可形成阻塞掛起阻塞掛起狀態(tài)狀態(tài)和和就緒掛起就緒掛起狀態(tài)。狀態(tài)。26掛起狀態(tài)的進(jìn)一步理解:掛起狀態(tài)的進(jìn)一步理解:v前面討論的是多個(gè)進(jìn)程同時(shí)在內(nèi)存里并發(fā)執(zhí)前面討論的是多個(gè)進(jìn)程同時(shí)在內(nèi)存里并發(fā)執(zhí)行的過程。行的過程。v但有時(shí)人們希望一些進(jìn)程暫不活動(dòng),不參與但有時(shí)人們希望一些進(jìn)程暫不活動(dòng),不參與進(jìn)程調(diào)度,進(jìn)程調(diào)度,v這時(shí)采取的方式往往就是將一些進(jìn)程調(diào)換到這時(shí)采取的方式往往就是將一些進(jìn)程調(diào)換到磁盤鏡像區(qū)中,叫作將進(jìn)程磁盤鏡像區(qū)中,叫作將進(jìn)程“掛起掛起”。27v可以把一個(gè)掛起進(jìn)程等同于一個(gè)不在主存的可以把一個(gè)掛起進(jìn)程等同于一個(gè)不在主存的進(jìn)程,因此,掛起的進(jìn)程將不
17、參與進(jìn)程調(diào)度,進(jìn)程,因此,掛起的進(jìn)程將不參與進(jìn)程調(diào)度,直到它們被對換進(jìn)主存。直到它們被對換進(jìn)主存。28引入引入“掛起掛起”狀態(tài)的其它原因狀態(tài)的其它原因粗略說來,掛起有四方面的需要:粗略說來,掛起有四方面的需要:v (1) (1)終端用戶的請求。終端用戶的請求。 v (2) (2) 父進(jìn)程請求。父進(jìn)程請求。 v (3) (3) 負(fù)荷調(diào)節(jié)的需要。負(fù)荷調(diào)節(jié)的需要。 v (4) (4) 操作系統(tǒng)的需要操作系統(tǒng)的需要29為了更好地理解為了更好地理解“掛起掛起”,進(jìn)一步說明:,進(jìn)一步說明:l(1 1)進(jìn)程競爭資源,引起系統(tǒng)資源不足,負(fù)荷)進(jìn)程競爭資源,引起系統(tǒng)資源不足,負(fù)荷過重,此時(shí)需要掛起部分進(jìn)程,以調(diào)
18、整系統(tǒng)負(fù)過重,此時(shí)需要掛起部分進(jìn)程,以調(diào)整系統(tǒng)負(fù)荷,保證系統(tǒng)的實(shí)時(shí)性或讓系統(tǒng)正常執(zhí)行;荷,保證系統(tǒng)的實(shí)時(shí)性或讓系統(tǒng)正常執(zhí)行;l(2 2)用戶要求掛起自己的進(jìn)程,以便根據(jù)中間)用戶要求掛起自己的進(jìn)程,以便根據(jù)中間執(zhí)行情況和中間結(jié)果進(jìn)行某些調(diào)試、檢查和改執(zhí)行情況和中間結(jié)果進(jìn)行某些調(diào)試、檢查和改進(jìn)。進(jìn)。l(3 3)系統(tǒng)中的進(jìn)程均處于等待(阻塞)系統(tǒng)中的進(jìn)程均處于等待(阻塞) 狀態(tài),狀態(tài),處理機(jī)空閑,此時(shí)需要把一些等待進(jìn)程對換出處理機(jī)空閑,此時(shí)需要把一些等待進(jìn)程對換出去,以騰出足夠的內(nèi)存裝入就緒進(jìn)程運(yùn)去,以騰出足夠的內(nèi)存裝入就緒進(jìn)程運(yùn)行;行;30引起進(jìn)程掛起的原因(續(xù))引起進(jìn)程掛起的原因(續(xù))l(4
19、4)把一些定期執(zhí)行的進(jìn)程(如審計(jì)程序、)把一些定期執(zhí)行的進(jìn)程(如審計(jì)程序、監(jiān)控程序、記賬程序)兌換出去,以減輕系統(tǒng)監(jiān)控程序、記賬程序)兌換出去,以減輕系統(tǒng)的負(fù)荷;的負(fù)荷;l(5 5)父進(jìn)程要求掛起自己的后代進(jìn)程,以進(jìn))父進(jìn)程要求掛起自己的后代進(jìn)程,以進(jìn)行某些檢查和改正;行某些檢查和改正;l(6 6)操作系統(tǒng)需要掛起某些進(jìn)程,檢查運(yùn)行)操作系統(tǒng)需要掛起某些進(jìn)程,檢查運(yùn)行中的資源使用情況,改善系統(tǒng)性能;當(dāng)系統(tǒng)出中的資源使用情況,改善系統(tǒng)性能;當(dāng)系統(tǒng)出現(xiàn)故障或某些功能受損時(shí),需要掛起某些進(jìn)程現(xiàn)故障或某些功能受損時(shí),需要掛起某些進(jìn)程以排除故障。以排除故障。31引入掛起狀態(tài)后進(jìn)程狀態(tài)的轉(zhuǎn)換引入掛起狀態(tài)后
20、進(jìn)程狀態(tài)的轉(zhuǎn)換v引入掛起狀態(tài)后,又會(huì)增加從掛起狀態(tài)引入掛起狀態(tài)后,又會(huì)增加從掛起狀態(tài)(靜止?fàn)顟B(tài))到非掛起狀態(tài)(活動(dòng)狀態(tài))(靜止?fàn)顟B(tài))到非掛起狀態(tài)(活動(dòng)狀態(tài))的轉(zhuǎn)換;的轉(zhuǎn)換;v或者相反?;蛘呦喾?。32和掛起有關(guān)的幾種狀態(tài)轉(zhuǎn)換:和掛起有關(guān)的幾種狀態(tài)轉(zhuǎn)換:v(1) (1) 活動(dòng)就緒活動(dòng)就緒靜止就緒。靜止就緒。 (通過掛起原語將其掛起(通過掛起原語將其掛起 )v(2) (2) 活動(dòng)阻塞活動(dòng)阻塞靜止阻塞。靜止阻塞。 v(3) (3) 靜止就緒靜止就緒活動(dòng)就緒?;顒?dòng)就緒。 (用激活原語將靜止?fàn)顟B(tài)變?yōu)榛顒?dòng)狀態(tài))(用激活原語將靜止?fàn)顟B(tài)變?yōu)榛顒?dòng)狀態(tài)) v(4) (4) 靜止阻塞靜止阻塞活動(dòng)阻塞。活動(dòng)阻塞。332
21、.3 2.3 進(jìn)程的描述進(jìn)程的描述進(jìn)程控制塊進(jìn)程控制塊l為了描述多道程序設(shè)計(jì)中進(jìn)程的動(dòng)態(tài)變化,便為了描述多道程序設(shè)計(jì)中進(jìn)程的動(dòng)態(tài)變化,便于對進(jìn)程進(jìn)行有效的控制和管理,系統(tǒng)為每一于對進(jìn)程進(jìn)行有效的控制和管理,系統(tǒng)為每一個(gè)進(jìn)程都定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)個(gè)進(jìn)程都定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)程控制塊進(jìn)程控制塊PCBPCB(Process Control BlockProcess Control Block)。)。lPCBPCB是操作系統(tǒng)中最重要的數(shù)據(jù)結(jié)構(gòu),它包含是操作系統(tǒng)中最重要的數(shù)據(jù)結(jié)構(gòu),它包含了進(jìn)程的了進(jìn)程的描述信息描述信息和和控制信息控制信息,是進(jìn)程動(dòng)態(tài)特,是進(jìn)程動(dòng)態(tài)特性的集中反映。性的集中反映。342.3
22、2.3 進(jìn)程的描述進(jìn)程的描述進(jìn)程控制塊進(jìn)程控制塊l當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程的時(shí)候,就是系統(tǒng)為當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程的時(shí)候,就是系統(tǒng)為某個(gè)程序建立一個(gè)某個(gè)程序建立一個(gè)PCBPCB,當(dāng)進(jìn)程運(yùn)行結(jié)束,當(dāng)進(jìn)程運(yùn)行結(jié)束被撤銷時(shí),系統(tǒng)就收回它的被撤銷時(shí),系統(tǒng)就收回它的PCBPCB,該進(jìn)程,該進(jìn)程也就消亡了。也就消亡了。lPCBPCB標(biāo)志著進(jìn)程的存在,操作系統(tǒng)根據(jù)系標(biāo)志著進(jìn)程的存在,操作系統(tǒng)根據(jù)系統(tǒng)中是否有該進(jìn)程的統(tǒng)中是否有該進(jìn)程的PCBPCB來判斷該進(jìn)程存來判斷該進(jìn)程存在與否。所以說,在與否。所以說,PCBPCB是進(jìn)程存在的唯一是進(jìn)程存在的唯一標(biāo)志。標(biāo)志。352.3 2.3 進(jìn)程的描述進(jìn)程的描述進(jìn)程控制塊進(jìn)程控制塊
23、v 進(jìn)程控制塊的作用是使一個(gè)在多道程序環(huán)境進(jìn)程控制塊的作用是使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的下不能獨(dú)立運(yùn)行的程序程序( (含數(shù)據(jù)含數(shù)據(jù)) ),成為一個(gè)能,成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能與其它進(jìn)程并發(fā)獨(dú)立運(yùn)行的基本單位,一個(gè)能與其它進(jìn)程并發(fā)執(zhí)行的執(zhí)行的進(jìn)程進(jìn)程。v或者說,或者說,OSOS是根據(jù)是根據(jù)PCBPCB來對并發(fā)執(zhí)行的進(jìn)程進(jìn)來對并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理的。行控制和管理的。36進(jìn)程控制塊進(jìn)程控制塊PCBPCB中的信息中的信息 進(jìn)程控制塊中包括進(jìn)程控制塊中包括4 4個(gè)方面的內(nèi)容:個(gè)方面的內(nèi)容:l進(jìn)程描述信息:進(jìn)程描述信息:包括進(jìn)程標(biāo)識符、進(jìn)程名、包括進(jìn)程標(biāo)識符、進(jìn)程名、用戶標(biāo)識符
24、、進(jìn)程組等用戶標(biāo)識符、進(jìn)程組等l進(jìn)程控制信息:進(jìn)程控制信息:當(dāng)前狀態(tài)、優(yōu)先級、代碼執(zhí)當(dāng)前狀態(tài)、優(yōu)先級、代碼執(zhí)行入口地址、程序外存地址、運(yùn)行時(shí)間、阻行入口地址、程序外存地址、運(yùn)行時(shí)間、阻塞原因等。塞原因等。l資源占用信息:資源占用信息:進(jìn)程所占用的系統(tǒng)資源列表。進(jìn)程所占用的系統(tǒng)資源列表。l處理器現(xiàn)場保護(hù)結(jié)構(gòu)處理器現(xiàn)場保護(hù)結(jié)構(gòu):保存寄存器的內(nèi)容保存寄存器的內(nèi)容37l2.4 2.4 進(jìn)程的產(chǎn)生和終止進(jìn)程的產(chǎn)生和終止1.1.進(jìn)程產(chǎn)生進(jìn)程產(chǎn)生 通常有通常有4 4種事件會(huì)導(dǎo)致新進(jìn)程產(chǎn)生:種事件會(huì)導(dǎo)致新進(jìn)程產(chǎn)生:v 在一個(gè)交互式環(huán)境中,當(dāng)一個(gè)新用戶在終端在一個(gè)交互式環(huán)境中,當(dāng)一個(gè)新用戶在終端鍵入登錄命令后,
25、若是合法用戶,系統(tǒng)將為該鍵入登錄命令后,若是合法用戶,系統(tǒng)將為該用戶建立一個(gè)進(jìn)程。用戶建立一個(gè)進(jìn)程。v 在一個(gè)批處理環(huán)境中,為了響應(yīng)一個(gè)任務(wù)的在一個(gè)批處理環(huán)境中,為了響應(yīng)一個(gè)任務(wù)的要求而產(chǎn)生進(jìn)程。要求而產(chǎn)生進(jìn)程。 38v在運(yùn)行一個(gè)用戶程序的過程中,當(dāng)獲取用戶在運(yùn)行一個(gè)用戶程序的過程中,當(dāng)獲取用戶程序提出的某種請求后,程序提出的某種請求后,OSOS可以代用戶程序產(chǎn)可以代用戶程序產(chǎn)生進(jìn)程以實(shí)現(xiàn)某種功能,使用戶不必等待。生進(jìn)程以實(shí)現(xiàn)某種功能,使用戶不必等待。 v基于應(yīng)用進(jìn)程的需要,由已存在的進(jìn)程產(chǎn)生基于應(yīng)用進(jìn)程的需要,由已存在的進(jìn)程產(chǎn)生另一個(gè)進(jìn)程,以便使新進(jìn)程以并發(fā)運(yùn)行的方式另一個(gè)進(jìn)程,以便使新進(jìn)程
26、以并發(fā)運(yùn)行的方式完成特定任務(wù)。完成特定任務(wù)。392.4 2.4 進(jìn)程的產(chǎn)生和終止(續(xù))進(jìn)程的產(chǎn)生和終止(續(xù))2.2.進(jìn)程終止進(jìn)程終止 進(jìn)程的終止(或退出)有三種可能:進(jìn)程的終止(或退出)有三種可能:l進(jìn)程完成所要求的功能,正常終止;進(jìn)程完成所要求的功能,正常終止;l由于某種錯(cuò)誤導(dǎo)致非正常終止;由于某種錯(cuò)誤導(dǎo)致非正常終止;l父進(jìn)程要求撤銷某個(gè)子進(jìn)程父進(jìn)程要求撤銷某個(gè)子進(jìn)程402.4 2.4 進(jìn)程的產(chǎn)生和終止(續(xù))進(jìn)程的產(chǎn)生和終止(續(xù))2.2.進(jìn)程終止(續(xù))進(jìn)程終止(續(xù)) 具體來說,導(dǎo)致進(jìn)程終止的事件大致有具體來說,導(dǎo)致進(jìn)程終止的事件大致有1414種種 :正常結(jié)束正常結(jié)束 、內(nèi)存不足、內(nèi)存不足 、
27、超界、超界 、保護(hù)錯(cuò)誤、保護(hù)錯(cuò)誤 、算、算術(shù)錯(cuò)誤術(shù)錯(cuò)誤 、超越時(shí)限、超越時(shí)限 、I/OI/O失敗失敗 、非法指令、非法指令 、特權(quán)指令特權(quán)指令 、錯(cuò)誤使用數(shù)據(jù)、錯(cuò)誤使用數(shù)據(jù) 、操作員或、操作員或OSOS干預(yù)干預(yù) 、父進(jìn)程終止父進(jìn)程終止 、父進(jìn)程需要、父進(jìn)程需要 。41進(jìn)程產(chǎn)生和終止(續(xù))進(jìn)程產(chǎn)生和終止(續(xù))l進(jìn)程的動(dòng)態(tài)性質(zhì)是由其狀態(tài)變化決定的。進(jìn)程的動(dòng)態(tài)性質(zhì)是由其狀態(tài)變化決定的。l通常操作系統(tǒng)中進(jìn)程都具有通常操作系統(tǒng)中進(jìn)程都具有三種狀態(tài):運(yùn)行三種狀態(tài):運(yùn)行態(tài)、就緒態(tài)和阻塞態(tài)態(tài)、就緒態(tài)和阻塞態(tài)。l除此外,進(jìn)程的生命周期中通常還有除此外,進(jìn)程的生命周期中通常還有創(chuàng)建創(chuàng)建和和消失消失兩種狀態(tài)。兩種狀
28、態(tài)。l創(chuàng)建和終止?fàn)顟B(tài)對進(jìn)程管理非常有用。創(chuàng)建和終止?fàn)顟B(tài)對進(jìn)程管理非常有用。 42進(jìn)程狀態(tài)模型(進(jìn)程狀態(tài)模型(5狀態(tài)模型)狀態(tài)模型) 執(zhí)行執(zhí)行:進(jìn)程當(dāng)前處于運(yùn)行狀態(tài)。進(jìn)程當(dāng)前處于運(yùn)行狀態(tài)。 就緒就緒;進(jìn)程已準(zhǔn)備好運(yùn)行。進(jìn)程已準(zhǔn)備好運(yùn)行。 阻塞阻塞;進(jìn)程等待某些事件發(fā)生(如進(jìn)程等待某些事件發(fā)生(如I/OI/O操作)后才能運(yùn)行。操作)后才能運(yùn)行。 創(chuàng)建:創(chuàng)建:進(jìn)程剛產(chǎn)生,但還未被操作系統(tǒng)提交到可運(yùn)行進(jìn)程池中。進(jìn)程剛產(chǎn)生,但還未被操作系統(tǒng)提交到可運(yùn)行進(jìn)程池中。 消失:消失:進(jìn)程被操作系統(tǒng)從可運(yùn)行進(jìn)程池中釋放。進(jìn)程被操作系統(tǒng)從可運(yùn)行進(jìn)程池中釋放。 事件發(fā)生 準(zhǔn)許 創(chuàng) 建 就 緒 分派 執(zhí)行 超時(shí) 釋放
29、消 失 阻塞 等待事件 43l2.5 進(jìn)程控制進(jìn)程控制l在計(jì)算機(jī)系統(tǒng)中,操作系統(tǒng)負(fù)責(zé)在計(jì)算機(jī)系統(tǒng)中,操作系統(tǒng)負(fù)責(zé)調(diào)度進(jìn)程、調(diào)度進(jìn)程、分配資源、響應(yīng)用戶程序服務(wù)的請求分配資源、響應(yīng)用戶程序服務(wù)的請求l可以認(rèn)為操作系統(tǒng)管理整個(gè)系統(tǒng)資源的使用,可以認(rèn)為操作系統(tǒng)管理整個(gè)系統(tǒng)資源的使用,并且控制整個(gè)系統(tǒng)中的事件。并且控制整個(gè)系統(tǒng)中的事件。442.5 進(jìn)程控制(續(xù))進(jìn)程控制(續(xù)) l操作系統(tǒng)操作系統(tǒng)內(nèi)核內(nèi)核負(fù)責(zé)控制和管理負(fù)責(zé)控制和管理進(jìn)程的產(chǎn)生、執(zhí)進(jìn)程的產(chǎn)生、執(zhí)行和消亡的整個(gè)過程,行和消亡的整個(gè)過程,l這主要通過對它們的控制操作實(shí)現(xiàn)。這主要通過對它們的控制操作實(shí)現(xiàn)。l操作系統(tǒng)的進(jìn)程控制操作主要有:操作系統(tǒng)
30、的進(jìn)程控制操作主要有: 創(chuàng)建進(jìn)程、撤消進(jìn)程、掛起進(jìn)程、恢復(fù)進(jìn)創(chuàng)建進(jìn)程、撤消進(jìn)程、掛起進(jìn)程、恢復(fù)進(jìn)程、改變進(jìn)程優(yōu)先級、封鎖進(jìn)程、喚醒進(jìn)程、程、改變進(jìn)程優(yōu)先級、封鎖進(jìn)程、喚醒進(jìn)程、調(diào)度進(jìn)程等。調(diào)度進(jìn)程等。 45引入一個(gè)新概念:引入一個(gè)新概念:處理機(jī)的執(zhí)行模式與執(zhí)行狀態(tài)處理機(jī)的執(zhí)行模式與執(zhí)行狀態(tài) l大多數(shù)處理器都至少支持兩種大多數(shù)處理器都至少支持兩種執(zhí)行模式執(zhí)行模式,一,一種是種是同操作系統(tǒng)有關(guān)的模式同操作系統(tǒng)有關(guān)的模式,另一種則是,另一種則是同同用戶程序有關(guān)的模式。用戶程序有關(guān)的模式。l較低特權(quán)的模式稱為較低特權(quán)的模式稱為用戶模式用戶模式。較高特權(quán)的。較高特權(quán)的模式稱模式稱系統(tǒng)模式系統(tǒng)模式、控制模
31、式或內(nèi)核模式控制模式或內(nèi)核模式。46l內(nèi)核模式能執(zhí)行所有的指令,訪問所有的內(nèi)核模式能執(zhí)行所有的指令,訪問所有的內(nèi)存;內(nèi)存;l用戶模式則只能執(zhí)行有限的指令,訪問規(guī)用戶模式則只能執(zhí)行有限的指令,訪問規(guī)定的內(nèi)存定的內(nèi)存l處理器往往有一個(gè)或多個(gè)寄存器來保存處處理器往往有一個(gè)或多個(gè)寄存器來保存處理器模式信息理器模式信息程序狀態(tài)字(程序狀態(tài)字(PSWPSW)47處理機(jī)的執(zhí)行模式與執(zhí)行狀態(tài)處理機(jī)的執(zhí)行模式與執(zhí)行狀態(tài)l為了防止操作系統(tǒng)及其關(guān)鍵數(shù)據(jù)(如為了防止操作系統(tǒng)及其關(guān)鍵數(shù)據(jù)(如PCBPCB)遭)遭到用戶程序有意或無意的破壞,通常將處理到用戶程序有意或無意的破壞,通常將處理機(jī)的執(zhí)行狀態(tài)分為兩種:機(jī)的執(zhí)行狀態(tài)
32、分為兩種:l核心態(tài)核心態(tài)與與用戶態(tài)用戶態(tài)。48l核心態(tài)又稱管態(tài)、系統(tǒng)態(tài)核心態(tài)又稱管態(tài)、系統(tǒng)態(tài),是,是操作系統(tǒng)管理操作系統(tǒng)管理程序程序執(zhí)行時(shí)機(jī)器所處的狀態(tài)。執(zhí)行時(shí)機(jī)器所處的狀態(tài)。l它具有較高的特權(quán),能執(zhí)行一切指令,能訪它具有較高的特權(quán),能執(zhí)行一切指令,能訪問所有的寄存器和存儲(chǔ)區(qū)。問所有的寄存器和存儲(chǔ)區(qū)。l用戶態(tài)又稱目態(tài),用戶態(tài)又稱目態(tài),是是用戶程序用戶程序執(zhí)行時(shí)機(jī)器所執(zhí)行時(shí)機(jī)器所處的狀態(tài)。處的狀態(tài)。l它具有較低的特權(quán),只能執(zhí)行規(guī)定的指令和它具有較低的特權(quán),只能執(zhí)行規(guī)定的指令和只能訪問指定的寄存器和存儲(chǔ)區(qū)。只能訪問指定的寄存器和存儲(chǔ)區(qū)。492.5 進(jìn)程控制進(jìn)程控制 創(chuàng)建進(jìn)程創(chuàng)建進(jìn)程 一旦一旦OSO
33、S決定創(chuàng)建一個(gè)進(jìn)程時(shí),便調(diào)用進(jìn)程決定創(chuàng)建一個(gè)進(jìn)程時(shí),便調(diào)用進(jìn)程創(chuàng)創(chuàng)建原語建原語Creat( )Creat( ), ,( 注:原語是在核心態(tài)執(zhí)行的)注:原語是在核心態(tài)執(zhí)行的)進(jìn)進(jìn)行如下操作:行如下操作: 給新進(jìn)程一個(gè)編號并申請空白給新進(jìn)程一個(gè)編號并申請空白PCBPCB。 為進(jìn)程分配空間。為進(jìn)程分配空間。 初始化初始化PCBPCB。 設(shè)置合適的鏈接。設(shè)置合適的鏈接。 生成其他一些數(shù)據(jù)結(jié)構(gòu)。生成其他一些數(shù)據(jù)結(jié)構(gòu)。 50增加一個(gè)概念(增加一個(gè)概念(1):):原語原語l內(nèi)核的執(zhí)行是通過各種內(nèi)核的執(zhí)行是通過各種原語操作原語操作實(shí)現(xiàn)的。實(shí)現(xiàn)的。l所謂所謂“原語原語”是由若干條機(jī)器指令構(gòu)成的,是由若干條機(jī)器指
34、令構(gòu)成的,用以完成特定功能的一段程序;用以完成特定功能的一段程序;l而這段程序在執(zhí)行期間是而這段程序在執(zhí)行期間是不能分割的不能分割的,作為,作為一個(gè)基本的執(zhí)行單位出現(xiàn)。一個(gè)基本的執(zhí)行單位出現(xiàn)。51原語(續(xù))原語(續(xù))l內(nèi)核中包含的原語主要有:內(nèi)核中包含的原語主要有:l進(jìn)程控制原語、進(jìn)程通信原語、資源管理原進(jìn)程控制原語、進(jìn)程通信原語、資源管理原語以及其它原語。語以及其它原語。l進(jìn)程控制進(jìn)程控制方面的原語有:進(jìn)程創(chuàng)建原語、進(jìn)方面的原語有:進(jìn)程創(chuàng)建原語、進(jìn)程掛起原語、進(jìn)程阻塞原語、進(jìn)程喚醒原語程掛起原語、進(jìn)程阻塞原語、進(jìn)程喚醒原語和進(jìn)程撤銷原語等。和進(jìn)程撤銷原語等。52增加一個(gè)概念(增加一個(gè)概念(2
35、):):指令的執(zhí)行與中斷指令的執(zhí)行與中斷l(xiāng)計(jì)算機(jī)最基本的功能就是執(zhí)行指令。計(jì)算機(jī)最基本的功能就是執(zhí)行指令。l任何應(yīng)用程序都只有經(jīng)過指令的執(zhí)行才能得以任何應(yīng)用程序都只有經(jīng)過指令的執(zhí)行才能得以完成。完成。l處理機(jī)必須先從內(nèi)存中逐條把指令讀入處理機(jī)必須先從內(nèi)存中逐條把指令讀入寄存器寄存器,然后才能執(zhí)行該指令。然后才能執(zhí)行該指令。53l其中,讀指令是根據(jù)其中,讀指令是根據(jù)程序計(jì)數(shù)器程序計(jì)數(shù)器PCPC所指的地所指的地址讀入,而執(zhí)行的指令則是址讀入,而執(zhí)行的指令則是指令寄存器指令寄存器IRIR中中的的指令指令。l我們把指令的讀入和執(zhí)行過程稱為一個(gè)我們把指令的讀入和執(zhí)行過程稱為一個(gè)執(zhí)行執(zhí)行周期或機(jī)器周期。周
36、期或機(jī)器周期。54復(fù)習(xí)一個(gè)名詞:復(fù)習(xí)一個(gè)名詞:寄存器寄存器v其實(shí),在其實(shí),在CPU內(nèi)部,除了兩個(gè)重要部件(控內(nèi)部,除了兩個(gè)重要部件(控制器和運(yùn)算器)外,還有若干個(gè)存儲(chǔ)單元制器和運(yùn)算器)外,還有若干個(gè)存儲(chǔ)單元寄存器。寄存器。v寄存器寄存器是用來臨時(shí)存放數(shù)據(jù)的高速獨(dú)立的存是用來臨時(shí)存放數(shù)據(jù)的高速獨(dú)立的存儲(chǔ)單元,儲(chǔ)單元,CPU的運(yùn)算離不開寄存器的支持。的運(yùn)算離不開寄存器的支持。v常見的寄存器有數(shù)據(jù)寄存器、指令寄存器、常見的寄存器有數(shù)據(jù)寄存器、指令寄存器、程序寄存器等等。程序寄存器等等。55v數(shù)據(jù)寄存器數(shù)據(jù)寄存器用來存儲(chǔ)來自內(nèi)存的輸入數(shù)據(jù)、用來存儲(chǔ)來自內(nèi)存的輸入數(shù)據(jù)、執(zhí)行后的輸出數(shù)據(jù)以及中間結(jié)果等數(shù)據(jù)
37、信息;執(zhí)行后的輸出數(shù)據(jù)以及中間結(jié)果等數(shù)據(jù)信息;v指令寄存器(指令寄存器(IR)存放逐條從內(nèi)存中取出的存放逐條從內(nèi)存中取出的指令;指令;v程序計(jì)數(shù)器(程序計(jì)數(shù)器(PC)存放當(dāng)前正在執(zhí)行的指令存放當(dāng)前正在執(zhí)行的指令的地址。當(dāng)前指令執(zhí)行完畢,計(jì)數(shù)器加的地址。當(dāng)前指令執(zhí)行完畢,計(jì)數(shù)器加1,指,指向下一條指令。向下一條指令。56復(fù)習(xí)一個(gè)名詞:復(fù)習(xí)一個(gè)名詞:機(jī)器周期機(jī)器周期vCPU利用重復(fù)的機(jī)器周期來執(zhí)行程序中的利用重復(fù)的機(jī)器周期來執(zhí)行程序中的指令。指令。v簡化的周期包括簡化的周期包括3步:步:1.取指令取指令l在該階段,在該階段,控制單元控制單元命令系統(tǒng)將下一條要執(zhí)命令系統(tǒng)將下一條要執(zhí)行的指令復(fù)制到行的
38、指令復(fù)制到CPU的指令計(jì)數(shù)器的指令計(jì)數(shù)器IR中;中;l被復(fù)制指令的地址保存在程序計(jì)數(shù)器被復(fù)制指令的地址保存在程序計(jì)數(shù)器PC中。中。l復(fù)制完成后,程序計(jì)數(shù)器自動(dòng)加復(fù)制完成后,程序計(jì)數(shù)器自動(dòng)加1指向內(nèi)存指向內(nèi)存中的下一條指令。中的下一條指令。57機(jī)器周期機(jī)器周期2.譯碼譯碼l當(dāng)把指令置于指令寄存器(當(dāng)把指令置于指令寄存器(IR)后,該指令)后,該指令由控制單元進(jìn)行譯碼。由控制單元進(jìn)行譯碼。l指令譯碼的結(jié)果是產(chǎn)生系統(tǒng)可以執(zhí)行操作的指令譯碼的結(jié)果是產(chǎn)生系統(tǒng)可以執(zhí)行操作的二進(jìn)制代碼。二進(jìn)制代碼。58機(jī)器周期機(jī)器周期3.執(zhí)行執(zhí)行l(wèi)指令譯碼完成后,控制單元發(fā)送工作命令到指令譯碼完成后,控制單元發(fā)送工作命令到
39、CPU的某個(gè)部件,的某個(gè)部件,l例如控制單元告知系統(tǒng),讓它從內(nèi)存中加載例如控制單元告知系統(tǒng),讓它從內(nèi)存中加載(讀)數(shù)據(jù)項(xiàng),(讀)數(shù)據(jù)項(xiàng),l或者是或者是CPU讓算術(shù)邏輯單元將兩個(gè)輸入寄存器讓算術(shù)邏輯單元將兩個(gè)輸入寄存器中的內(nèi)容相加并將結(jié)果保存到輸出寄存器,這中的內(nèi)容相加并將結(jié)果保存到輸出寄存器,這就是執(zhí)行。就是執(zhí)行。59增加一個(gè)概念(增加一個(gè)概念(2):):指令的執(zhí)行與中斷指令的執(zhí)行與中斷(續(xù))(續(xù))l指令的執(zhí)行涉及到指令的執(zhí)行涉及到處理機(jī)與內(nèi)存之間處理機(jī)與內(nèi)存之間的數(shù)據(jù)傳的數(shù)據(jù)傳輸、輸、處理機(jī)與外部設(shè)備處理機(jī)與外部設(shè)備之間的之間的數(shù)據(jù)傳輸數(shù)據(jù)傳輸?shù)?;等;l指令的執(zhí)行還涉及到指令的執(zhí)行還涉及到數(shù)
40、據(jù)的處理數(shù)據(jù)的處理:如算術(shù)運(yùn)算:如算術(shù)運(yùn)算和邏輯運(yùn)算;和邏輯運(yùn)算;l指令的執(zhí)行還可以是對其它指令的指令的執(zhí)行還可以是對其它指令的控制控制過程。過程。l一條指令的執(zhí)行可以是上述幾種情況的組合。一條指令的執(zhí)行可以是上述幾種情況的組合。60概念解釋(概念解釋(2):):指令的執(zhí)行與指令的執(zhí)行與中斷中斷(續(xù))(續(xù))l在指令的執(zhí)行過程中或一條指令執(zhí)行結(jié)束時(shí),在指令的執(zhí)行過程中或一條指令執(zhí)行結(jié)束時(shí),盡管盡管指令地址計(jì)數(shù)器指令地址計(jì)數(shù)器PC中已經(jīng)指明了下一條中已經(jīng)指明了下一條被訪問指令的地址,但是,外部設(shè)備或計(jì)算被訪問指令的地址,但是,外部設(shè)備或計(jì)算機(jī)內(nèi)部可能會(huì)發(fā)來急需處理的數(shù)據(jù)或其它緊機(jī)內(nèi)部可能會(huì)發(fā)來急需
41、處理的數(shù)據(jù)或其它緊急事件處理信號。急事件處理信號。61v這就需要處理機(jī)暫停正在執(zhí)行的程序,轉(zhuǎn)去處這就需要處理機(jī)暫停正在執(zhí)行的程序,轉(zhuǎn)去處理相應(yīng)的緊急事件,待處理完畢后再返回原處理相應(yīng)的緊急事件,待處理完畢后再返回原處繼續(xù)執(zhí)行,這一過程稱為繼續(xù)執(zhí)行,這一過程稱為中斷中斷。62概念解釋(概念解釋(2):):指令的執(zhí)行與中斷(續(xù))指令的執(zhí)行與中斷(續(xù))l中斷給操作系統(tǒng)設(shè)計(jì)帶來許多好處:中斷給操作系統(tǒng)設(shè)計(jì)帶來許多好處: 使得實(shí)時(shí)處理許多緊急事件成為可能;使得實(shí)時(shí)處理許多緊急事件成為可能; 可以增加處理機(jī)的執(zhí)行效率;可以增加處理機(jī)的執(zhí)行效率; 簡化了操作系統(tǒng)的設(shè)計(jì)簡化了操作系統(tǒng)的設(shè)計(jì) 63v系統(tǒng)發(fā)生中斷
42、時(shí),處理機(jī)收到中斷信號,從系統(tǒng)發(fā)生中斷時(shí),處理機(jī)收到中斷信號,從而不能繼續(xù)執(zhí)行程序計(jì)數(shù)器而不能繼續(xù)執(zhí)行程序計(jì)數(shù)器PCPC中所指向的原中所指向的原程序。程序。v這時(shí)處理機(jī)將保存當(dāng)前的這時(shí)處理機(jī)將保存當(dāng)前的執(zhí)行現(xiàn)場執(zhí)行現(xiàn)場(也就是(也就是各寄存器中的值),并調(diào)用新的程序到處理各寄存器中的值),并調(diào)用新的程序到處理機(jī)上執(zhí)行。機(jī)上執(zhí)行。642.5 進(jìn)程控制進(jìn)程控制-進(jìn)程切換進(jìn)程切換l在某時(shí)刻,一個(gè)正在運(yùn)行的進(jìn)程被中斷,操在某時(shí)刻,一個(gè)正在運(yùn)行的進(jìn)程被中斷,操作系統(tǒng)就將另一個(gè)進(jìn)程置為運(yùn)行狀態(tài),并對作系統(tǒng)就將另一個(gè)進(jìn)程置為運(yùn)行狀態(tài),并對其進(jìn)行控制。其進(jìn)行控制。l當(dāng)操作系統(tǒng)掌握控制權(quán)時(shí),切換隨時(shí)會(huì)發(fā)生。當(dāng)操
43、作系統(tǒng)掌握控制權(quán)時(shí),切換隨時(shí)會(huì)發(fā)生。 l可能將控制權(quán)交給操作系統(tǒng)的事件有:可能將控制權(quán)交給操作系統(tǒng)的事件有: 中斷中斷 、陷阱(自陷、內(nèi)陷、內(nèi)中斷)、陷阱(自陷、內(nèi)陷、內(nèi)中斷)65 引入重要概念引入重要概念:中斷與陷阱(自陷)中斷與陷阱(自陷)v中斷處理是操作系統(tǒng)的一個(gè)重要組成部分中斷處理是操作系統(tǒng)的一個(gè)重要組成部分 操作系統(tǒng)就是由中斷驅(qū)動(dòng)的;操作系統(tǒng)就是由中斷驅(qū)動(dòng)的;v中斷是現(xiàn)代計(jì)算機(jī)系統(tǒng)中基本設(shè)施之一,它中斷是現(xiàn)代計(jì)算機(jī)系統(tǒng)中基本設(shè)施之一,它起著通訊聯(lián)絡(luò)作用,協(xié)調(diào)系統(tǒng)對各種外部事起著通訊聯(lián)絡(luò)作用,協(xié)調(diào)系統(tǒng)對各種外部事件的響應(yīng)和處理;件的響應(yīng)和處理;v中斷是實(shí)現(xiàn)多道程序的必要條件中斷是實(shí)現(xiàn)多
44、道程序的必要條件66 引入重要概念引入重要概念:中斷與陷阱(自陷)中斷與陷阱(自陷)v以下幾種提法幫助大家理解其本質(zhì)含義:以下幾種提法幫助大家理解其本質(zhì)含義:v中斷定義中斷定義1 1 :計(jì)算機(jī)系統(tǒng)內(nèi)發(fā)生了某一急需處理的事件,計(jì)算機(jī)系統(tǒng)內(nèi)發(fā)生了某一急需處理的事件,使得使得CPUCPU暫停正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相暫停正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的應(yīng)的事件處理程序事件處理程序,待處理完畢后又返回,待處理完畢后又返回到原來被中斷處繼續(xù)執(zhí)行到原來被中斷處繼續(xù)執(zhí)行67v中斷定義中斷定義2 2 : 中斷是指某個(gè)事件中斷是指某個(gè)事件(例如,電源掉電、浮點(diǎn)運(yùn)(例如,電源掉電、浮點(diǎn)運(yùn)算溢出、外部設(shè)備傳輸完成或出
45、錯(cuò)等)算溢出、外部設(shè)備傳輸完成或出錯(cuò)等)發(fā)生發(fā)生時(shí),系統(tǒng)因此中止現(xiàn)運(yùn)行程序的執(zhí)行,引出時(shí),系統(tǒng)因此中止現(xiàn)運(yùn)行程序的執(zhí)行,引出處理事件程序處理事件程序?qū)ο鄳?yīng)事件進(jìn)行處理,處理完對相應(yīng)事件進(jìn)行處理,處理完畢后返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。畢后返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。 68v中斷定義中斷定義3 3 :lCPUCPU暫停正在執(zhí)行的程序,保留現(xiàn)場后自動(dòng)暫停正在執(zhí)行的程序,保留現(xiàn)場后自動(dòng)轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序;轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序;l處理完成后返回?cái)帱c(diǎn),繼續(xù)執(zhí)行被打斷的程處理完成后返回?cái)帱c(diǎn),繼續(xù)執(zhí)行被打斷的程序序69 引入重要概念引入重要概念:中斷與陷阱(自陷)中斷與陷阱(自陷)中斷的特點(diǎn):中斷的特點(diǎn): 1) 1
46、) 中斷是隨機(jī)的中斷是隨機(jī)的 2) 2) 中斷是可恢復(fù)的中斷是可恢復(fù)的 3) 3) 中斷是自動(dòng)處理的中斷是自動(dòng)處理的70中斷、自陷(陷阱中斷、自陷(陷阱) 中斷即外中斷,指中斷即外中斷,指來自處理機(jī)和內(nèi)存外來自處理機(jī)和內(nèi)存外部的中斷,部的中斷,包括包括 I/O I/O 設(shè)備發(fā)出的設(shè)備發(fā)出的 I/O I/O 中斷、中斷、外部信號中斷、各種定時(shí)器引起的時(shí)鐘中斷外部信號中斷、各種定時(shí)器引起的時(shí)鐘中斷以及調(diào)試程序中設(shè)置的斷點(diǎn)等引起的調(diào)試中以及調(diào)試程序中設(shè)置的斷點(diǎn)等引起的調(diào)試中斷等斷等。71 l陷阱即內(nèi)中斷陷阱即內(nèi)中斷,主要指在處理機(jī)和內(nèi)存內(nèi)部主要指在處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷產(chǎn)生的中斷由執(zhí)行了現(xiàn)行指令
47、引起的。由執(zhí)行了現(xiàn)行指令引起的。l如程序出錯(cuò)如程序出錯(cuò)( (如溢出如溢出, ,缺頁中斷缺頁中斷, ,缺段中斷缺段中斷, ,地地址越界等址越界等) )、電源故障、系統(tǒng)調(diào)用等。、電源故障、系統(tǒng)調(diào)用等。72 中斷和陷阱的主要區(qū)別:中斷和陷阱的主要區(qū)別:l 陷阱(或自陷)通常由處理機(jī)正在執(zhí)行的現(xiàn)陷阱(或自陷)通常由處理機(jī)正在執(zhí)行的現(xiàn)行指令引起,行指令引起,l 而中斷則是由與現(xiàn)行指令無關(guān)的中斷源引起而中斷則是由與現(xiàn)行指令無關(guān)的中斷源引起的。的。 l 陷阱處理程序提供的服務(wù)為當(dāng)前進(jìn)程所用,陷阱處理程序提供的服務(wù)為當(dāng)前進(jìn)程所用,l而中斷處理程序提供的服務(wù)則不是為了當(dāng)前而中斷處理程序提供的服務(wù)則不是為了當(dāng)前進(jìn)
48、程進(jìn)程73中斷和陷阱的主要區(qū)別:中斷和陷阱的主要區(qū)別:l CPUCPU在執(zhí)行完一條指令之后,下一條指令開始在執(zhí)行完一條指令之后,下一條指令開始之前響應(yīng)之前響應(yīng)中斷中斷,而在一條指令執(zhí)行中也可以響,而在一條指令執(zhí)行中也可以響應(yīng)應(yīng)陷阱陷阱。 l在有的系統(tǒng)中,陷入處理程序被規(guī)定在各自的在有的系統(tǒng)中,陷入處理程序被規(guī)定在各自的進(jìn)程上下文中執(zhí)行,而中斷處理程序則在系統(tǒng)進(jìn)程上下文中執(zhí)行,而中斷處理程序則在系統(tǒng)上下文中執(zhí)行。上下文中執(zhí)行。74中斷有關(guān)的幾個(gè)術(shù)語中斷有關(guān)的幾個(gè)術(shù)語中斷源:中斷源:引起中斷發(fā)生的事件引起中斷發(fā)生的事件中斷響應(yīng):中斷響應(yīng):是處理機(jī)發(fā)現(xiàn)有中斷請求時(shí),中止現(xiàn)是處理機(jī)發(fā)現(xiàn)有中斷請求時(shí),中
49、止現(xiàn)運(yùn)行程序的執(zhí)行并自動(dòng)引出中斷處理程序的過運(yùn)行程序的執(zhí)行并自動(dòng)引出中斷處理程序的過程。程。關(guān)中斷:關(guān)中斷:使使CPUCPU不能響應(yīng)中斷不能響應(yīng)中斷開中斷:開中斷:使使CPUCPU能夠響應(yīng)中斷能夠響應(yīng)中斷75l2.6 2.6 線程線程l線程線程( (Thread)Thread)是近年來操作系統(tǒng)中出現(xiàn)的一是近年來操作系統(tǒng)中出現(xiàn)的一個(gè)非常重要的技術(shù)。個(gè)非常重要的技術(shù)。l線程的引入,進(jìn)一步提高了程序并發(fā)執(zhí)行的線程的引入,進(jìn)一步提高了程序并發(fā)執(zhí)行的程度,從而進(jìn)一步提高了系統(tǒng)的吞吐量。程度,從而進(jìn)一步提高了系統(tǒng)的吞吐量。 76線程及其管理線程及其管理 1.1.線程的引入線程的引入l為了既能提高程序的并發(fā)
50、程度,又能減少為了既能提高程序的并發(fā)程度,又能減少OSOS的的開銷,操作系統(tǒng)設(shè)計(jì)者引入了線程,把進(jìn)程的開銷,操作系統(tǒng)設(shè)計(jì)者引入了線程,把進(jìn)程的兩個(gè)基本屬性分離開來。兩個(gè)基本屬性分離開來。l即以即以進(jìn)程進(jìn)程為單位分配資源,以為單位分配資源,以線程線程為單位進(jìn)行為單位進(jìn)行調(diào)度調(diào)度。77v 引入線程還有一個(gè)好處,就是能較好地支持引入線程還有一個(gè)好處,就是能較好地支持對稱多處理器系統(tǒng)對稱多處理器系統(tǒng)( (Symmetric Symmetric MultiprocessorMultiprocessor,簡稱簡稱SMP)SMP)。78線程及其管理線程及其管理2.2.線程的定義及特征線程的定義及特征 線程是
51、進(jìn)程內(nèi)的一個(gè)相對獨(dú)立的、可獨(dú)立線程是進(jìn)程內(nèi)的一個(gè)相對獨(dú)立的、可獨(dú)立調(diào)度和指派的執(zhí)行單元。調(diào)度和指派的執(zhí)行單元。79線程具有以下性質(zhì):線程具有以下性質(zhì): l線程是進(jìn)程內(nèi)的一個(gè)相對獨(dú)立的可執(zhí)行單元。線程是進(jìn)程內(nèi)的一個(gè)相對獨(dú)立的可執(zhí)行單元。 l線程是操作系統(tǒng)中的基本調(diào)度單元線程是操作系統(tǒng)中的基本調(diào)度單元 。l一個(gè)進(jìn)程中至少應(yīng)有一個(gè)線程一個(gè)進(jìn)程中至少應(yīng)有一個(gè)線程 。l線程并不擁有資源,而是共享和使用包含了它線程并不擁有資源,而是共享和使用包含了它的的進(jìn)程進(jìn)程所擁有的所有資源。所擁有的所有資源。 l線程在需要時(shí)也可創(chuàng)建其他線程線程在需要時(shí)也可創(chuàng)建其他線程。80v有了線程的概念以后,進(jìn)程模型得到了有效有了
52、線程的概念以后,進(jìn)程模型得到了有效的擴(kuò)展。在一個(gè)進(jìn)程中完全可以設(shè)置多個(gè)執(zhí)的擴(kuò)展。在一個(gè)進(jìn)程中完全可以設(shè)置多個(gè)執(zhí)行流程,對應(yīng)多個(gè)執(zhí)行線程。行流程,對應(yīng)多個(gè)執(zhí)行線程。v即在一個(gè)進(jìn)程中可以同時(shí)運(yùn)行多個(gè)不同的線即在一個(gè)進(jìn)程中可以同時(shí)運(yùn)行多個(gè)不同的線程來執(zhí)行不同的任務(wù)。程來執(zhí)行不同的任務(wù)。v例如瀏覽器就是一個(gè)很好的多線程的例子。例如瀏覽器就是一個(gè)很好的多線程的例子。運(yùn)行一次瀏覽器相當(dāng)于啟動(dòng)了一個(gè)進(jìn)程,在運(yùn)行一次瀏覽器相當(dāng)于啟動(dòng)了一個(gè)進(jìn)程,在此進(jìn)程中,你在瀏覽網(wǎng)頁的同時(shí)還可以聽音此進(jìn)程中,你在瀏覽網(wǎng)頁的同時(shí)還可以聽音樂、下載圖片等樂、下載圖片等,這是多個(gè)線程并發(fā)的結(jié)果。這是多個(gè)線程并發(fā)的結(jié)果。81線程及其
53、管理線程及其管理進(jìn)程和線程的區(qū)別與聯(lián)系:進(jìn)程和線程的區(qū)別與聯(lián)系: l調(diào)度調(diào)度l擁有資源擁有資源 l并發(fā)性并發(fā)性 l系統(tǒng)開銷系統(tǒng)開銷 82線程及其管理線程及其管理3.3.線程的狀態(tài)和管理線程的狀態(tài)和管理 l 線程也有一個(gè)從創(chuàng)建到消亡的生命過程,雖線程也有一個(gè)從創(chuàng)建到消亡的生命過程,雖然在不同的操作系統(tǒng),線程的狀態(tài)設(shè)計(jì)不完全然在不同的操作系統(tǒng),線程的狀態(tài)設(shè)計(jì)不完全相同,但相同,但就緒、運(yùn)行、阻塞就緒、運(yùn)行、阻塞3 3個(gè)關(guān)鍵的狀態(tài)是個(gè)關(guān)鍵的狀態(tài)是共有的。共有的。l線程中不具有進(jìn)程中的線程中不具有進(jìn)程中的掛起狀態(tài)掛起狀態(tài)。l對具有多線程的進(jìn)程狀態(tài),若一個(gè)線程被阻塞,對具有多線程的進(jìn)程狀態(tài),若一個(gè)線程被
54、阻塞,整個(gè)進(jìn)程不被阻塞。整個(gè)進(jìn)程不被阻塞。83l線程使用線程控制塊線程使用線程控制塊( (TCB)TCB)來描述其數(shù)據(jù)結(jié)來描述其數(shù)據(jù)結(jié)構(gòu)。構(gòu)。l線程的狀態(tài)轉(zhuǎn)換是通過相關(guān)的線程的狀態(tài)轉(zhuǎn)換是通過相關(guān)的控制原語控制原語來實(shí)來實(shí)現(xiàn)的?,F(xiàn)的。 84多線程的實(shí)現(xiàn)多線程的實(shí)現(xiàn) l 多線程機(jī)制是指多線程機(jī)制是指OSOS支持支持在一個(gè)進(jìn)程內(nèi)執(zhí)行多在一個(gè)進(jìn)程內(nèi)執(zhí)行多個(gè)線程的能力。個(gè)線程的能力。l線程雖在許多系統(tǒng)中實(shí)現(xiàn),但實(shí)現(xiàn)的方式并不線程雖在許多系統(tǒng)中實(shí)現(xiàn),但實(shí)現(xiàn)的方式并不完全相同。完全相同。l對于對于進(jìn)程進(jìn)程來說,無論是系統(tǒng)進(jìn)程還是用戶進(jìn)程,來說,無論是系統(tǒng)進(jìn)程還是用戶進(jìn)程,在進(jìn)行切換時(shí)都要依賴內(nèi)核中的進(jìn)程調(diào)度
55、程序。在進(jìn)行切換時(shí)都要依賴內(nèi)核中的進(jìn)程調(diào)度程序。所以,所以,內(nèi)核內(nèi)核能感知能感知進(jìn)程進(jìn)程的存在。的存在。85l對于線程則不然。根據(jù)線程的切換是否依賴對于線程則不然。根據(jù)線程的切換是否依賴于內(nèi)核可把線程分為于內(nèi)核可把線程分為用戶級線程用戶級線程和和內(nèi)核級線內(nèi)核級線程程。l對于對于內(nèi)核級線程內(nèi)核級線程OSOS,處理機(jī)是以,處理機(jī)是以線程線程為單位為單位進(jìn)行切換;而對于進(jìn)行切換;而對于用戶線程級用戶線程級OSOS,則是以,則是以進(jìn)進(jìn)程程為單位進(jìn)行切換的。為單位進(jìn)行切換的。 86多線程的實(shí)現(xiàn)多線程的實(shí)現(xiàn)1.1.內(nèi)核級線程(內(nèi)核級線程(KLTKLT)l內(nèi)核級線程內(nèi)核級線程KLTKLT中的所有線程的創(chuàng)建、
56、調(diào)度和中的所有線程的創(chuàng)建、調(diào)度和管理全部由管理全部由操作系統(tǒng)內(nèi)核操作系統(tǒng)內(nèi)核負(fù)責(zé)負(fù)責(zé). .l任何應(yīng)用程序都可以設(shè)計(jì)成多線程的程序。任何應(yīng)用程序都可以設(shè)計(jì)成多線程的程序。l當(dāng)提交給當(dāng)提交給多線程操作系統(tǒng)多線程操作系統(tǒng)執(zhí)行時(shí),內(nèi)核首先為執(zhí)行時(shí),內(nèi)核首先為它創(chuàng)建一個(gè)進(jìn)程和一個(gè)線程,線程在執(zhí)行中還它創(chuàng)建一個(gè)進(jìn)程和一個(gè)線程,線程在執(zhí)行中還可以通過內(nèi)核的線程原語來創(chuàng)建新的線程。可以通過內(nèi)核的線程原語來創(chuàng)建新的線程。l這個(gè)應(yīng)用的所有線程均在一個(gè)進(jìn)程中獲得支持。這個(gè)應(yīng)用的所有線程均在一個(gè)進(jìn)程中獲得支持。這就是通常所說的這就是通常所說的“純純KLTKLT方法方法”。87多線程的實(shí)現(xiàn)多線程的實(shí)現(xiàn)1.1.內(nèi)核級線程
57、(內(nèi)核級線程(KLTKLT)vWindows 2000/XPWindows 2000/XP、OS/2OS/2、MachMach等實(shí)現(xiàn)的都等實(shí)現(xiàn)的都是內(nèi)核級線程是內(nèi)核級線程88內(nèi)核級線程的主要優(yōu)點(diǎn)是:內(nèi)核級線程的主要優(yōu)點(diǎn)是:l在多處理機(jī)環(huán)境中,內(nèi)核能同時(shí)將同一進(jìn)程在多處理機(jī)環(huán)境中,內(nèi)核能同時(shí)將同一進(jìn)程的多個(gè)線程調(diào)度到不同的處理機(jī)上并行;的多個(gè)線程調(diào)度到不同的處理機(jī)上并行;l若進(jìn)程的一個(gè)線程被阻塞了,內(nèi)核能調(diào)用同若進(jìn)程的一個(gè)線程被阻塞了,內(nèi)核能調(diào)用同一進(jìn)程的其它線程占據(jù)處理機(jī);一進(jìn)程的其它線程占據(jù)處理機(jī);l不需要改變內(nèi)存信息,切換速度比較快不需要改變內(nèi)存信息,切換速度比較快89內(nèi)核級線程的主要缺點(diǎn):內(nèi)核級線程的主要缺點(diǎn):l由于應(yīng)用程序線程運(yùn)行在由于應(yīng)用程序線程運(yùn)行在用戶態(tài)用戶態(tài),而線程的調(diào),而線程的調(diào)度和管理卻是在度和管理卻是在內(nèi)核內(nèi)核中實(shí)現(xiàn)的。中實(shí)現(xiàn)的。l所以在同一個(gè)進(jìn)程中,處理機(jī)的控制權(quán)從一個(gè)所以在同一個(gè)進(jìn)程中,處理機(jī)的控制權(quán)從一個(gè)線程切換到另一個(gè)線程時(shí),需要經(jīng)過線程切換到另一個(gè)線程時(shí),需要經(jīng)過“用戶用戶態(tài)態(tài)內(nèi)核態(tài)內(nèi)核態(tài)用戶態(tài)用戶態(tài)”的模式轉(zhuǎn)換,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廣告宣傳效果跟蹤合同
- 買賣學(xué)校合同范本
- 買陰地合同范本
- 青島啤酒績效管理制度范文
- 倉儲(chǔ)吊裝服務(wù)合同范例
- 2019-2025年中國魚油制品行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報(bào)告
- 2025年度創(chuàng)新型房屋抵押借款合同樣本
- 2025年低壓組合型成套開關(guān)柜項(xiàng)目投資可行性研究分析報(bào)告-20241226-183014
- 2025-2030年中國圓筒涂復(fù)布行業(yè)深度研究分析報(bào)告
- 油罐項(xiàng)目立項(xiàng)申請報(bào)告
- TSG07-2019鍋爐安裝工藝+焊接專用工藝卡+施工記錄表
- 2024-2025學(xué)年陜西省西安市浐灞區(qū)數(shù)學(xué)三年級第一學(xué)期期末統(tǒng)考試題含解析
- 《鈉離子電池用電解液編制說明》
- 護(hù)理人員的職業(yè)安全防護(hù)
- 2024數(shù)據(jù)中心綜合布線工程設(shè)計(jì)
- 胸外科講課全套
- 醫(yī)療器械GSP相關(guān)
- 2023年海南省公務(wù)員錄用考試《行測》真題卷及答案解析
- 電力工程施工售后保障方案
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
- 多源數(shù)據(jù)整合
評論
0/150
提交評論