2進(jìn)程管理(上).ppt_第1頁
2進(jìn)程管理(上).ppt_第2頁
2進(jìn)程管理(上).ppt_第3頁
2進(jìn)程管理(上).ppt_第4頁
2進(jìn)程管理(上).ppt_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1,第二章 進(jìn)程管理,2,計(jì)算機(jī)硬件簡介 進(jìn)程的概念 進(jìn)程描述 進(jìn)程狀態(tài)及其轉(zhuǎn)換 進(jìn)程控制,3,計(jì)算機(jī)硬件的基本元素,基本硬件有4種:處理器、存儲器、輸入輸出控制與總線、外部設(shè)備。,4,幾種主要的寄存器,寄存器的種類:用戶可編程的寄存器及控制與狀態(tài)寄存器。 數(shù)據(jù)寄存器 地址寄存器 條件碼寄存器 程序計(jì)數(shù)器PC 指令寄存器IR 程序狀態(tài)字PSW 控制與狀態(tài)寄存器 中斷現(xiàn)場保護(hù)寄存器 堆棧指針寄存器,5,指令的執(zhí)行與中斷,執(zhí)行指令的步驟: (PC) (IR),6,指令的執(zhí)行與中斷,中斷 采用中斷技術(shù)后能實(shí)現(xiàn)CPU 和I/O 設(shè)備交換信息使CPU 與I/O 設(shè)備并行工作。此外,在計(jì)算機(jī)運(yùn)行過程中,還

2、有許多事件會隨機(jī)發(fā)生,如硬件故障、電源掉電、人機(jī)聯(lián)系和程序出錯等,這些事件必須及時加以處理。在實(shí)時系統(tǒng),如生產(chǎn)自動控制系統(tǒng)中,必須即時將傳感器傳來的溫度、距離、壓力、濕度等變化信息送給計(jì)算機(jī),計(jì)算機(jī)則暫停當(dāng)前工作,轉(zhuǎn)去處理和解決異常情況。,7,為了請求操作系統(tǒng)服務(wù),提高系統(tǒng)效率,處理突發(fā)事件,滿足實(shí)時要求,需要打斷處理器正常的工作,為此,中斷概念被提出來了。中斷(interrupt)是指程序執(zhí)行過程中,當(dāng)發(fā)生某個事件時,中止CPU 上現(xiàn)行程序的運(yùn)行,引出處理該事件的服務(wù)程序執(zhí)行的過程。,8,進(jìn)程的概念,讓多個作業(yè)同時裝入一個計(jì)算機(jī)系統(tǒng)的主存儲器中,并且同時處于運(yùn)行狀態(tài),共享系統(tǒng)中的各種軟、硬件

3、資源,交替占用處理機(jī)運(yùn)行。這種設(shè)計(jì)技術(shù)稱“多道程序設(shè)計(jì)”,這種計(jì)算機(jī)系統(tǒng)稱“多道程序系統(tǒng)”。,一個程序通常由若干個程序段所組成,它們必須按照程序規(guī)定的先后次序來執(zhí)行,只有在前一個操作結(jié)束之后才能開始后繼操作,這就是程序的順序執(zhí)行。,一、程序的順序執(zhí)行 程序:是具有特定功能的一組指令(或一組語句)的集合,它指出了處理器執(zhí)行操作的步驟。,9,程序順序執(zhí)行的特點(diǎn): 1)順序性 處理機(jī)的操作嚴(yán)格按照程序所規(guī)定的順序執(zhí)行,即每一操作必須在下一操作開始之前結(jié)束。,2封閉性 程序是在封閉的環(huán)境下執(zhí)行的。即程序運(yùn)行時獨(dú)占全機(jī)資源,資源的狀態(tài)(除初始狀態(tài)外)只有本程序才能改變。程序一旦開始運(yùn)行,其執(zhí)行結(jié)果不受外

4、界因素的影響。,3可再現(xiàn)性 只要程序執(zhí)行時的環(huán)境和初始條件相同,當(dāng)程序重復(fù)執(zhí)行時,不論它是從頭到尾不停頓地執(zhí)行,還是“停停走走”地執(zhí)行,都將獲得相同的結(jié)果。,10,二、程序的并發(fā)執(zhí)行,下圖給出了系統(tǒng)對一批作業(yè)進(jìn)行處理時,輸入操作、計(jì)算操作和打印操作各程序段執(zhí)行的先后次序。,程序段的并發(fā)執(zhí)行的有向圖 (前趨圖),11,程序并發(fā)執(zhí)行的特點(diǎn),1. 失去了程序的封閉性和可再現(xiàn)性,例如:某交通路口設(shè)置了一個自動計(jì)數(shù)系統(tǒng),該系統(tǒng)由觀察者和報(bào)告者共同組成。,12,由于觀察者和報(bào)告者程序可以并發(fā)執(zhí)行,它們并發(fā)執(zhí)行時可能有如下兩種情況:,1)報(bào)告者執(zhí)行時無卡車通過。 2)報(bào)告者執(zhí)行時有卡車通過。,設(shè)某時刻N(yùn)的當(dāng)

5、前值為m,可能出現(xiàn)的情況和結(jié)果: 情況: (1)a (1)b (2) 之前通過 之后通過 之中通過 結(jié)果: m+1 m m 當(dāng)前的N值: 0 1 0,13,2. 程序與它的執(zhí)行過程不再一一對應(yīng),3. 并發(fā)程序之間的相互制約性 當(dāng)具有有一定的邏輯關(guān)系的各程序(或程序段)之間需要相互合作來完成同一任務(wù)時,它們之間具有直接的相互制約關(guān)系。 并發(fā)程序(或程序段)之間由于共享資源而競爭同一資源時,致使并發(fā)程序(或程序段)之間形成了間接的相互制約關(guān)系。,14,例如:,由于程序活動之間的相互依賴和相互制約,這就使得程序的活動與它的運(yùn)行環(huán)境密切相關(guān),并呈現(xiàn):執(zhí)行暫停執(zhí)行”的活動規(guī)律。,15,三、進(jìn)程的定義,在

6、多道程序工作的環(huán)境下,各個程序是并發(fā)執(zhí)行的,它們共享系統(tǒng)資源,共同決定這些資源的狀態(tài)。,在這種情況下,使用程序這個傳統(tǒng)的靜態(tài)的概念已經(jīng)無法描述并發(fā)活動的特性、規(guī)律和變化。也就是說,用程序作為描述并發(fā)活動的執(zhí)行過程以及管理共享資源的基本單位是不合適的。為此,人們引入了新的概念進(jìn)程,以便從變化的角度,動態(tài)地分析、研究并發(fā)程序的活動。,16,定義:,(1) 進(jìn)程是程序的一次執(zhí)行,亦即進(jìn)程是在指定內(nèi)存區(qū)域中的一組指令序列的執(zhí)行過程。,(2) 進(jìn)程是可以和別的計(jì)算并發(fā)執(zhí)行的計(jì)算。,(3)進(jìn)程可定義為一個數(shù)據(jù)結(jié)構(gòu)和能在其上進(jìn)行操作的一個程序。,(4) 進(jìn)程是程序在一個數(shù)據(jù)集合上運(yùn)行的過程,它是系統(tǒng)進(jìn)行資源

7、分配和調(diào)度的一個獨(dú)立單位。,進(jìn)程的定義: 進(jìn)程是一個具有獨(dú)立功能的程序?qū)δ硞€數(shù)據(jù)集在處理機(jī)上的執(zhí)行過程和分配資源的基本單位。,17,進(jìn)程與程序的區(qū)別:,1)進(jìn)程是一次運(yùn)行的過程,屬于一種動態(tài)的概念;而程序是指令的集合,是一個靜態(tài)的概念。,5)一個進(jìn)程可以包含幾個程序 ;一個程序也可以對應(yīng)多個進(jìn)程。當(dāng)同一程序同時運(yùn)行于若干個不同的數(shù)據(jù)集合上時,它將屬于若干個不同的進(jìn)程。,3)進(jìn)程是有生命期的;而程序是永久的。,2)進(jìn)程可以并發(fā)執(zhí)行;而程序不能。,4)進(jìn)程是系統(tǒng)資源分配的基本單位,而程序則不行。,18,進(jìn)程的特征: 1)動態(tài)性。進(jìn)程具有一定的生命期,是動態(tài)地產(chǎn)生、變化和消亡的。動態(tài)性是進(jìn)程最本質(zhì)的

8、特征。,2)并發(fā)性。進(jìn)程之間的活動在時間上可以重疊。 引入進(jìn)程的目的正是為了使其程序能和其它程序并發(fā)執(zhí)行,以提高系統(tǒng)資源利用率。,3)獨(dú)立性。進(jìn)程是一個能獨(dú)立運(yùn)行的基本單位同時也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位。,4)異步性。由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性。即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。,5)結(jié)構(gòu)特征。一個進(jìn)程由三部分組成,即程序、數(shù)據(jù)和進(jìn)程控制塊。其中進(jìn)程控制塊是進(jìn)程的一個運(yùn)行情況的登記表。,19,進(jìn)程的描述,一、進(jìn)程的組成 進(jìn)程通常由三部分組成:程序、數(shù)據(jù)和進(jìn)程控制塊PCB 。,20,二、進(jìn)程控制塊,進(jìn)程是動態(tài)的,為了記錄進(jìn)程的情況以及控制進(jìn)程的運(yùn)行,系統(tǒng)為每一個

9、進(jìn)程設(shè)置了一個數(shù)據(jù)結(jié)構(gòu)進(jìn)程控制塊(PCB)。,系統(tǒng)根據(jù)PCB而感知進(jìn)程的存在,通過PCB對進(jìn)程進(jìn)行管理,PCB是進(jìn)程存在的惟一標(biāo)志。 當(dāng)系統(tǒng)創(chuàng)建一個進(jìn)程時,必須為它設(shè)置一個PCB,在進(jìn)程的生命期內(nèi)利用PCB對進(jìn)程實(shí)施控制管理,進(jìn)程運(yùn)行結(jié)束后,系統(tǒng)要收回它的PCB,進(jìn)程也隨之消亡。,1.進(jìn)程控制塊(PCB)及其作用:,21,2進(jìn)程控制塊(PCB)的內(nèi)容: 1)描述信息 進(jìn)程標(biāo)識,用戶名,家族關(guān)系 2)控制信息 進(jìn)程當(dāng)前狀態(tài),進(jìn)程優(yōu)先級,程序開始地址,各種計(jì)時信息,通信信息 3)資源管理信息 占用內(nèi)存大小,占用外設(shè)情況,指向文件系統(tǒng)的指針 4) CPU現(xiàn)場保護(hù)區(qū),3.進(jìn)程隊(duì)列: 為了便于對進(jìn)程實(shí)施

10、有效的管理,通常把具有相同狀態(tài)的進(jìn)程的PCB按照某種原則鏈接在一起,組成各種隊(duì)列,稱為“進(jìn)程隊(duì)列”。,22,將所有處于就緒狀態(tài)的進(jìn)程鏈在一起稱為就緒隊(duì)列。 把所有因等待某事件而處于等待狀態(tài)的進(jìn)程鏈在一起就組成了各種等待(或阻塞)隊(duì)列。 運(yùn)行隊(duì)列在單處理機(jī)系統(tǒng)中則只有一個運(yùn)行指針。,23,一、進(jìn)程的基本狀態(tài),在操作系統(tǒng)中,進(jìn)程至少要有三種基本狀態(tài):運(yùn)行狀態(tài),就緒狀態(tài)和等待狀態(tài)。,1) 就緒狀態(tài)。進(jìn)程等待分配處理機(jī)時所處的狀態(tài)。 進(jìn)程已獲得了除中央處理機(jī)以外的所有資源,具備了運(yùn)行條件,只因處理機(jī)被其它進(jìn)程占用而不能執(zhí)行,一旦獲得處理機(jī),便可立即執(zhí)行。,2.3 進(jìn)程的狀態(tài)及其轉(zhuǎn)換,2) 運(yùn)行狀態(tài)。當(dāng)

11、一個進(jìn)程已獲得必要的資源,并占有中央處理機(jī)執(zhí)行時進(jìn)程所處的狀態(tài)。,在單處理機(jī)系統(tǒng)中,任一時刻,處于運(yùn)行狀態(tài)的進(jìn)程只能有一個。,24,3) 等待狀態(tài)(阻塞狀態(tài),封鎖狀態(tài),睡眠狀態(tài))。正在執(zhí)行的進(jìn)程,由于發(fā)生某事件(如等待輸入/輸出完成)而暫時無法執(zhí)行下去時,便放棄處理機(jī),此時進(jìn)程所處的狀態(tài)。,引起進(jìn)程等待的事件有:請求I/O、申請緩沖區(qū)、等待信件(信號)等等。處于等待狀態(tài)的進(jìn)程本身不具備運(yùn)行條件,即使分配給它處理機(jī)也不能運(yùn)行。,二、進(jìn)程狀態(tài)的轉(zhuǎn)換及其轉(zhuǎn)換的原因,1)就緒-運(yùn)行:對就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序按一種選定的策略從中選中一個就緒進(jìn)程,為之分配了處理機(jī)后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài)

12、;,25,2)運(yùn)行-等待:正在執(zhí)行的進(jìn)程因發(fā)生某等待事件而無法執(zhí)行,則進(jìn)程由執(zhí)行狀態(tài)變?yōu)榈却隣顟B(tài),如:進(jìn)程提出輸入/輸出請求而變成等待外部設(shè)備傳輸信息的狀態(tài),進(jìn)程申請資源(主存空間或外部設(shè)備)得不到滿足時變成等待資源狀態(tài),進(jìn)程運(yùn)行中出現(xiàn)了故障(程序出錯或主存儲器讀寫錯等)變成等待干預(yù)狀態(tài)等等;,26,3)等待-就緒:處于等待狀態(tài)的進(jìn)程,在其等待的事件已經(jīng)完成,如輸入/輸出完成,資源得到滿足或錯誤處理完畢時,處于等待狀態(tài)的進(jìn)程并不馬上轉(zhuǎn)入執(zhí)行狀態(tài),而是先轉(zhuǎn)入就緒狀態(tài),然后再由系統(tǒng)進(jìn)程調(diào)度程序在適當(dāng)?shù)臅r候?qū)⒃撨M(jìn)程轉(zhuǎn)為執(zhí)行狀態(tài);,27,4)執(zhí)行-就緒:正在執(zhí)行的進(jìn)程,因時間片用完而被暫停執(zhí)行,或在采

13、用搶先式優(yōu)先級調(diào)度算法的系統(tǒng)中,當(dāng)有更高優(yōu)先級的進(jìn)程要運(yùn)行而被迫讓出處理機(jī)時,該進(jìn)程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。,28,掛起狀態(tài)的引入,29,三、進(jìn)程狀態(tài)的擴(kuò)展及其轉(zhuǎn)換,就緒,等待,創(chuàng)建,終止,30,2.4 進(jìn)程控制,進(jìn)程控制的職責(zé)是對系統(tǒng)中的全部進(jìn)程實(shí)施有效的管理,它是處理機(jī)管理的一部分。 具體是指系統(tǒng)統(tǒng)使用一些具有特定功能的程序段來創(chuàng)建、撤消進(jìn)程以及完成進(jìn)程各狀態(tài)間的轉(zhuǎn)換,從而達(dá)到多進(jìn)程高效率并發(fā)執(zhí)行和協(xié)調(diào)、實(shí)現(xiàn)資源共享的目的。,一、進(jìn)程控制的概念,31,處理機(jī)的執(zhí)行狀態(tài)分為兩種: 系統(tǒng)態(tài)(核心態(tài)、管態(tài)):有特權(quán),能執(zhí)行所有指令,能訪問所有寄存器和存儲區(qū)。 用戶態(tài)(目態(tài)、算態(tài)):無特權(quán),只

14、能執(zhí)行規(guī)定指令,只能訪問指定的寄存器和存儲區(qū)。 用戶程序運(yùn)行在用戶態(tài),它不能執(zhí)行OS指令不能訪問OS區(qū)域,防止對OS的破壞。OS內(nèi)核運(yùn)行在系統(tǒng)態(tài)。進(jìn)程控制包含在OS的內(nèi)核(Kernel)中,它常駐內(nèi)存,執(zhí)行效率高。 原語運(yùn)行在核心態(tài)。,32,原語:是機(jī)器指令的延伸,是由若干條機(jī)器指令構(gòu)成的,用以完成操作系統(tǒng)特定功能的程序段。為保證原語操作的正確性,原語在執(zhí)行期間是不可分割(被中斷)的。 原語又稱為“原子操作(Atomic Operation)”過程,作為一個整體而不可分割要么全都完成,要么全都不做。,進(jìn)程控制原語:進(jìn)程創(chuàng)建原語,進(jìn)程撤消原語,進(jìn)程阻塞原語,進(jìn)程喚醒原語。,33,進(jìn)程的建立有兩種

15、方式: 系統(tǒng)生成時就建立起一些系統(tǒng)進(jìn)程。主要用于創(chuàng)建常駐內(nèi)存的系統(tǒng)進(jìn)程; 由父進(jìn)程創(chuàng)建。如父進(jìn)程創(chuàng)建子進(jìn)程以完成并行工作。創(chuàng)建進(jìn)程稱為父進(jìn)程,被創(chuàng)建的進(jìn)程稱為子進(jìn)程,子進(jìn)程還可以通過創(chuàng)建原語創(chuàng)建自己的子進(jìn)程,這樣就形成一個進(jìn)程家族樹。,進(jìn)程樹,系統(tǒng)統(tǒng)一創(chuàng)建的進(jìn)程之間關(guān)系是平等的。而屬于某個家族的一個進(jìn)程可以繼承其父進(jìn)程所擁有的資源。,二、進(jìn)程創(chuàng)建,34,創(chuàng)建原語的形式為: Create (name, Priority, start_addr),創(chuàng)建原語的主要功能:創(chuàng)建一個指定標(biāo)識符的進(jìn)程。,過程: 1)申請一個空白的進(jìn)程控制塊PCB表,并向其中填入進(jìn)程標(biāo)識符、進(jìn)程優(yōu)先級、進(jìn)程起始地址等有關(guān)參數(shù)

16、; 2)置該進(jìn)程為“就緒”狀態(tài),其它資源從父進(jìn)程那里繼承; 3)將該P(yáng)CB插入就緒隊(duì)列和進(jìn)程家族隊(duì)列。,進(jìn)程優(yōu)先級,35,36,三、進(jìn)程撤消,進(jìn)程何時中止? 正常結(jié)束。 批處理系統(tǒng)中,進(jìn)程已運(yùn)行完成遇到 Halt 指令;分時系統(tǒng)中, 用戶退出登錄 異常結(jié)束。 本進(jìn)程發(fā)生出錯和故障事件 存儲區(qū)越界、保護(hù)性錯(如:寫只讀文件)、特權(quán)指令錯、非法指令(如:程序錯轉(zhuǎn)到數(shù)據(jù)區(qū))、算術(shù)運(yùn)算錯、運(yùn)行超時、等待超過時、I/O 失敗 外界干預(yù)。 操作系統(tǒng)干預(yù)、父進(jìn)程請求、父進(jìn)程終止,37,三、進(jìn)程撤消,撤消原語的主要功能:收回被撤消進(jìn)程占用的所有資源,并撤消它的PCB。,進(jìn)程的撤消過程:,1)從PCB集合中檢索

17、出被撤消進(jìn)程的PCB,讀出該進(jìn)程的狀態(tài);,2)若被撤消的進(jìn)程正在執(zhí)行,應(yīng)立即中止該進(jìn)程的執(zhí)行,并設(shè)置調(diào)度標(biāo)志為真以指示該進(jìn)程被撤消后系統(tǒng)應(yīng)重新調(diào)度;,3)若該進(jìn)程還有子進(jìn)程,則還應(yīng)將其所有子進(jìn)程撤消;,4)將該進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,或者歸還給系統(tǒng);,5)將被撤消進(jìn)程(其PCB)從所在隊(duì)列(或鏈表)中清除,放回到空白PCB隊(duì)列中。,38,撤消原語的形式為: destroy (name),39,四、進(jìn)程阻塞(等待),阻塞原語的作用:將進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)換為等待狀態(tài)。,處于運(yùn)行狀態(tài)的進(jìn)程,在其運(yùn)行過程中期待某一事件發(fā)生,如等待鍵盤輸入;等待磁盤的數(shù)據(jù)傳輸完成,或等待其它進(jìn)程發(fā)送一個

18、信息等,當(dāng)被等待的事件還沒有發(fā)生時,該進(jìn)程調(diào)用阻塞原語將自己阻塞。一旦被阻塞,它只能由另一個進(jìn)程喚醒。,阻塞原語的過程:,1)中斷處理機(jī)的執(zhí)行,并保存該進(jìn)程的CPU現(xiàn)場信息;,2)將被阻塞進(jìn)程的狀態(tài)設(shè)置為“阻塞”狀態(tài),把該進(jìn)程的PCB插入到相應(yīng)的阻塞隊(duì)列中去;,3)轉(zhuǎn)進(jìn)程調(diào)度程序從就緒隊(duì)列中選擇一個新的進(jìn)程投入運(yùn)行。,40,阻塞原語的形式為:block( ),41,五、進(jìn)程喚醒,當(dāng)被等待進(jìn)程所期待的事件,如IO操作完成,其所期待的數(shù)據(jù)已經(jīng)到達(dá)時,則由有關(guān)進(jìn)程(比如,用完并釋放了該IO設(shè)備的進(jìn)程)調(diào)用喚醒原語,將等待該事件的進(jìn)程喚醒。,喚醒原語的作用:將進(jìn)程由阻塞狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。,喚醒原語的

19、形式為:wakeup(name),喚醒原語執(zhí)行的操作: 1)在等待隊(duì)列中找到相應(yīng)進(jìn)程的PCB,將其從等待隊(duì)列中摘下;,2)設(shè)置其狀態(tài)為就緒狀態(tài),把該進(jìn)程的PCB插入就緒隊(duì)列;,3)轉(zhuǎn)進(jìn)程調(diào)度程序或返回現(xiàn)行進(jìn)程。,42,43,八、進(jìn)程狀態(tài)的轉(zhuǎn)換及進(jìn)程控制,時間片到,運(yùn)行,就緒,等待,進(jìn)程調(diào)度,等待某事件發(fā)生,阻塞,進(jìn)程狀態(tài)轉(zhuǎn)換及進(jìn)程控制,撤消,創(chuàng)建,44,2.8 線程,一、什么是線程,進(jìn)程的概念和結(jié)構(gòu)是傳統(tǒng)操作系統(tǒng)工作的基礎(chǔ)。但是,隨著計(jì)算機(jī)體系結(jié)構(gòu)從早期的單處理機(jī)結(jié)構(gòu)發(fā)展到目前的多處理機(jī)結(jié)構(gòu),在多任務(wù)的環(huán)境中,為了減少處理機(jī)的空轉(zhuǎn)時間以及處理機(jī)調(diào)度切換時的時間和空間開銷,提高系統(tǒng)的并行能力,因

20、此產(chǎn)生了更小的控制單位:線程。,線程:進(jìn)程內(nèi)的一個基本調(diào)度單位?;蛘撸M(jìn)程內(nèi)的一個執(zhí)行體。,線程又稱為輕型進(jìn)程,這是因?yàn)榫€程的執(zhí)行環(huán)境很小,負(fù)擔(dān)也很小。,45,(1)進(jìn)程管理開銷大。比如在進(jìn)程切換時,現(xiàn)場的保護(hù)(PCB、各種相關(guān)隊(duì)列、和存儲相關(guān)的表等等),還要轉(zhuǎn)換為新進(jìn)程的地址空間,以及裝配新進(jìn)程的運(yùn)行環(huán)境。進(jìn)程切換的繁復(fù)操作導(dǎo)致系統(tǒng)付出較大的時空開銷,同樣在創(chuàng)建與撤銷時也一樣。這就限制了進(jìn)程并發(fā)程度的進(jìn)一步提高。 (2)進(jìn)程的局限性,比如某些相互獨(dú)立的并發(fā)進(jìn)程想要共享一個公共的地址空間和其它資源(例如數(shù)據(jù)庫管理服務(wù)器、事務(wù)處理監(jiān)測程序、網(wǎng)絡(luò)協(xié)議等等),但由于每個進(jìn)程都擁有自己獨(dú)立的地址空間和

21、資源,因此很難讓并發(fā)執(zhí)行的進(jìn)程共享同一地址空間及資源,這使得系統(tǒng)只能為它們串行服務(wù)。這種局限也不利于進(jìn)程在多處理機(jī)上執(zhí)行,如同一作業(yè)的若干子進(jìn)程被調(diào)度到不同的處理機(jī)上運(yùn)行,客觀上要求它們共享同一地址空間及資源,但傳統(tǒng)的進(jìn)程難以支持這種需要。 由于進(jìn)程的負(fù)載過重,于是提出了比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位線程。,進(jìn)程的缺點(diǎn),46,線程的定義 進(jìn)程內(nèi)一個執(zhí)行單元或一個可調(diào)度實(shí)體。 線程只擁有一點(diǎn)在運(yùn)行中必不可省的資源(程序計(jì)數(shù)器、一組寄存器和棧),但它可與同屬一個進(jìn)程的其它線程共享進(jìn)程擁有的全部資源。 在具有多線程的操作系統(tǒng)中,處理機(jī)調(diào)度的基本單位是線程。一個進(jìn)程可以有多個線程,而且至少有一個可執(zhí)行線程。,47,進(jìn)程 控制塊 PCB,用戶地址空間,線程 控制塊 TCB 用戶棧 核心棧,線程 控制塊 TCB 用戶棧 核心棧,線程 控制塊 T

溫馨提示

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

最新文檔

評論

0/150

提交評論