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

下載本文檔

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

文檔簡(jiǎn)介

1、第3章進(jìn)程管理操作系統(tǒng)(第三版)操作系統(tǒng)(第三版)操作系統(tǒng)第三版操作系統(tǒng)第三版本章要點(diǎn)本章要點(diǎn)進(jìn)程的概念線程 進(jìn)程的控制進(jìn)程的同步與互斥 進(jìn)程之間的高級(jí)通信進(jìn)程調(diào)度死鎖Windows進(jìn)程管理操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程的概念進(jìn)程的概念 1、前趨圖前趨圖是一個(gè)有向無(wú)循環(huán)圖,每個(gè)結(jié)點(diǎn)用于表示一條語(yǔ)句、一個(gè)程序段或一個(gè)進(jìn)程;結(jié)點(diǎn)間的有向邊表示兩個(gè)結(jié)點(diǎn)之間存在的前趨關(guān)系“”。右圖的前趨關(guān)系:P1 P2,P1 P3,P1 P4,P2 P5,P3 P5,P3 P6,P4 P6,P5 P7,P6 P7操作系統(tǒng)第三版操作系統(tǒng)第三版2、程序的順序執(zhí)行和并發(fā)執(zhí)行程序的順序執(zhí)行例:語(yǔ)句的順序執(zhí)行。一個(gè)程序段中的

2、三個(gè)語(yǔ)句: S1:a= x+y S2:b=a+8 S3:c=b-9 其中,語(yǔ)句S2 必須在a被賦值后才能執(zhí)行,同樣,S3 也只能在b被賦值后才能執(zhí)行。因此其前趨圖為:S1 S2 S3。程序順序執(zhí)行時(shí)的特征(1)順序性(2)封閉性(3)可再現(xiàn)性操作系統(tǒng)第三版操作系統(tǒng)第三版程序的并發(fā)執(zhí)行程序的并發(fā)執(zhí)行是指多個(gè)程序所包含的各項(xiàng)操作可以在同一時(shí)間段內(nèi)同時(shí)執(zhí)行。例:程序段中有四個(gè)語(yǔ)句:S1:a=x+1S2:b=y+2 S3:c=a+b S4:d=c+a 可畫(huà)出如下圖所示的前趨圖,顯然S1和S2可并發(fā)執(zhí)行操作系統(tǒng)第三版操作系統(tǒng)第三版例:有兩個(gè)循環(huán)程序A和B,它們共享一個(gè)變量n。A和B的程序內(nèi)容如下:A:

3、S1: n=n+1B: S2: print ( n ) S3: n=0如果A和B以不同的順序運(yùn)行,可能出現(xiàn)下述三種情況:(程序開(kāi)始運(yùn)行前n的值為a)( 1 ) S1S2S3 運(yùn)行結(jié)果為打印出“a+1”且n值為0 ;( 2 ) S2S3S1 運(yùn)行結(jié)果為打印出“a”且n值為1 ;( 3 ) S2S1S3 運(yùn)行結(jié)果為打印出“a”且n值為0 ;操作系統(tǒng)第三版操作系統(tǒng)第三版程序并發(fā)執(zhí)行時(shí)的特性l間斷性l通信性l失去封閉性l不可再現(xiàn)性l獨(dú)立性操作系統(tǒng)第三版操作系統(tǒng)第三版3 3、進(jìn)程的定義及特征進(jìn)程的定義及特征進(jìn)程(Process)的定義進(jìn)程是可并發(fā)執(zhí)行的程序段在某個(gè)數(shù)據(jù)集合上的一次運(yùn)行過(guò)程,它是系統(tǒng)進(jìn)行資

4、源分配和調(diào)度的一個(gè)獨(dú)立單位。 操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程的特征l動(dòng)態(tài)性 l并發(fā)性l獨(dú)立性 l異步性l結(jié)構(gòu)特征:系統(tǒng)為每個(gè)進(jìn)程設(shè)立一個(gè)進(jìn)程控制塊(PCB)。每個(gè)進(jìn)程實(shí)體都是由程序段、相關(guān)的數(shù)據(jù)段和一個(gè)進(jìn)程控制塊三部分組成。進(jìn)程和程序的區(qū)別和聯(lián)系進(jìn)程是一個(gè)動(dòng)態(tài)概念,而程序則是一個(gè)靜態(tài)概念一個(gè)程序可以對(duì)應(yīng)一個(gè)或多個(gè)進(jìn)程,一個(gè)進(jìn)程至少對(duì)應(yīng)一個(gè)或多個(gè)程序 程序可作為軟件資源長(zhǎng)期保存,進(jìn)程只是一次執(zhí)行過(guò)程,是暫時(shí)存在的 進(jìn)程是一個(gè)能獨(dú)立調(diào)度并可以和其他進(jìn)程并發(fā)運(yùn)行的單位,而程序段通常是不能作為獨(dú)立調(diào)度運(yùn)行單位的 進(jìn)程具有并行特征,而程序沒(méi)有 操作系統(tǒng)第三版操作系統(tǒng)第三版4 4、進(jìn)程的進(jìn)程的狀態(tài)及轉(zhuǎn)換

5、狀態(tài)及轉(zhuǎn)換三種基本狀態(tài)就緒狀態(tài)執(zhí)行狀態(tài)阻塞狀態(tài)操作系統(tǒng)第三版操作系統(tǒng)第三版掛起狀態(tài) 掛起會(huì)使進(jìn)程處于靜止?fàn)顟B(tài)(對(duì)正在執(zhí)行的進(jìn)程暫停執(zhí)行,對(duì)就緒的進(jìn)程暫時(shí)不接受調(diào)度,而對(duì)阻塞的進(jìn)程,即使引起阻塞的事件消失,也不能進(jìn)入就緒隊(duì)列)操作系統(tǒng)第三版操作系統(tǒng)第三版5 5、進(jìn)程進(jìn)程實(shí)體實(shí)體進(jìn)程控制塊PCB(Process Control Block)PCB應(yīng)包含如下信息:u進(jìn)程標(biāo)識(shí)符u當(dāng)前狀態(tài)u現(xiàn)場(chǎng)保護(hù)區(qū)u位置信息u資源清單u進(jìn)程優(yōu)先級(jí)u通信信息u家族關(guān)系操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程實(shí)體 由三部分組成:程序段相關(guān)的數(shù)據(jù)段進(jìn)程控制塊PCB操作系統(tǒng)第三版操作系統(tǒng)第三版1、線程的基本概念線程(Thread)的

6、定義進(jìn)程既是資源分配的基本單位,又是可以獨(dú)立調(diào)度執(zhí)行的基本單位,這是進(jìn)程的兩個(gè)基本屬性。為了減少操作系統(tǒng)對(duì)進(jìn)程處理的開(kāi)銷,提高系統(tǒng)中進(jìn)程并發(fā)執(zhí)行的程度, 20世紀(jì)80年代中期,人們引入了線程(Thread)的概念。線程有時(shí)也被稱為輕量進(jìn)程(Light Weight Process簡(jiǎn)稱LWP)。在引入線程的操作系統(tǒng)中,人們把進(jìn)程的兩個(gè)屬性分開(kāi)處理,將進(jìn)程作為系統(tǒng)資源分配的單位,但不作為處理機(jī)調(diào)度的單位,而是在進(jìn)程中創(chuàng)建一個(gè)或多個(gè)線程,它們并發(fā)執(zhí)行,作為處理機(jī)調(diào)度的基本單位。 線程線程操作系統(tǒng)第三版操作系統(tǒng)第三版線程實(shí)體線程是一個(gè)可獨(dú)立運(yùn)行的實(shí)體。在一個(gè)進(jìn)程實(shí)體中可以包含一個(gè)或多個(gè)線程實(shí)體。當(dāng)一個(gè)

7、進(jìn)程開(kāi)始執(zhí)行時(shí),根據(jù)需要可以創(chuàng)建一個(gè)或多個(gè)線程,線程也可以創(chuàng)建它的子線程。每一個(gè)線程有一個(gè)線程控制塊TCB,用來(lái)記錄線程的標(biāo)識(shí)符、執(zhí)行時(shí)的寄存器和堆棧等現(xiàn)場(chǎng)狀態(tài)信息。此外,每個(gè)線程有自己的堆棧(系統(tǒng)?;蛴脩魲#┖图拇嫫?用來(lái)存儲(chǔ)線程內(nèi)的局部變量,但不能存儲(chǔ)其它線程的相關(guān)變量)。堆棧、寄存器和線程的TCB共同構(gòu)成線程實(shí)體。線程的類型內(nèi)核級(jí)線程用戶級(jí)線程操作系統(tǒng)第三版操作系統(tǒng)第三版擁有資源調(diào)度切換通信關(guān)系系統(tǒng)開(kāi)銷和并發(fā)性 動(dòng)態(tài)性構(gòu)成2、線程與進(jìn)程的比較操作系統(tǒng)第三版操作系統(tǒng)第三版在Windows NT/2000/XP系統(tǒng)中線程的狀態(tài): 就緒狀態(tài)(Ready)備用狀態(tài)(Standby)運(yùn)行狀態(tài)(Ru

8、nning)等待狀態(tài)(Waiting)轉(zhuǎn)換狀態(tài)(Transition)終止?fàn)顟B(tài)(Terminated)初始化狀態(tài)(Initialized)3、線程的狀態(tài)與轉(zhuǎn)換操作系統(tǒng)第三版操作系統(tǒng)第三版4、Windows XP系統(tǒng)的進(jìn)程和線程使用“任務(wù)管理器” 查看進(jìn)程的相關(guān)信息 在計(jì)算機(jī)的鍵盤上同時(shí)按住Ctrl+Alt+Del三鍵,啟動(dòng)Windows任務(wù)管理器,用鼠標(biāo)單擊“進(jìn)程”選項(xiàng)卡,顯示關(guān)于計(jì)算機(jī)上正在運(yùn)行的進(jìn)程的信息。使用“系統(tǒng)監(jiān)視器”查看進(jìn)程和線程的相關(guān)信息 單擊“開(kāi)始”運(yùn)行輸入perfmon.msc來(lái)啟動(dòng);或者單擊“開(kāi)始”“所有程序” “管理工具” “性能”來(lái)啟動(dòng)操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程的

9、控制進(jìn)程的控制1、創(chuàng)建和撤銷進(jìn)程圖 一個(gè)進(jìn)程可以創(chuàng)建 另一個(gè)新進(jìn)程 進(jìn)程的創(chuàng)建 由進(jìn)程創(chuàng)建原語(yǔ)實(shí)現(xiàn)進(jìn)程的撤銷 由進(jìn)程撤銷原語(yǔ)實(shí)現(xiàn)操作系統(tǒng)第三版操作系統(tǒng)第三版2、阻塞與喚醒進(jìn)程的阻塞 如果正在執(zhí)行的進(jìn)程期待的某一事件尚未發(fā)生時(shí),該進(jìn)程調(diào)用阻塞原語(yǔ)把自己轉(zhuǎn)到阻塞狀態(tài)進(jìn)程的喚醒 當(dāng)被阻塞的進(jìn)程期待的某一事件發(fā)生時(shí),由“喚醒進(jìn)程”調(diào)用喚醒原語(yǔ),將該阻塞進(jìn)程喚醒 操作系統(tǒng)第三版操作系統(tǒng)第三版3、掛起與激活進(jìn)程的掛起 當(dāng)由于用戶進(jìn)程或父進(jìn)程的請(qǐng)求以及其它原因需要把某進(jìn)程掛起時(shí),系統(tǒng)使用掛起原語(yǔ)將該進(jìn)程掛起 進(jìn)程的激活 當(dāng)由于用戶進(jìn)程或父進(jìn)程的請(qǐng)求以及其它原因需要把某進(jìn)程激活時(shí),系統(tǒng)使用激活原語(yǔ)將該進(jìn)程激活

10、 操作系統(tǒng)第三版操作系統(tǒng)第三版在多道程序系統(tǒng)中,由于資源共享與進(jìn)程合作,使進(jìn)程之間可能產(chǎn)生兩種形式的制約關(guān)系: (1)間接相互制約 (2)直接相互制約 1、基本概念 臨界資源與臨界區(qū) 臨界資源(Critical Resource)是指在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問(wèn)的資源。 臨界區(qū)(Critical Section)是指進(jìn)程中訪問(wèn)臨界資源的那段代碼。 進(jìn)程同步與互斥進(jìn)程同步與互斥操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程的互斥系統(tǒng)對(duì)臨界區(qū)的調(diào)度原則空閑讓進(jìn)忙則等待有限等待讓權(quán)等待喚醒等待進(jìn)程進(jìn)程的同步 進(jìn)程的同步是指并發(fā)進(jìn)程之間存在一種制約關(guān)系,一個(gè)進(jìn)程的執(zhí)行依賴另一個(gè)進(jìn)程的消息,當(dāng)一個(gè)進(jìn)程沒(méi)有得到另一個(gè)

11、進(jìn)程的消息時(shí)應(yīng)等待,直到消息到達(dá)才被喚醒 操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程同步機(jī)制進(jìn)程同步就是多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上的協(xié)調(diào)。用于保證這種同步關(guān)系的相應(yīng)機(jī)制稱為進(jìn)程同步機(jī)制。進(jìn)程同步機(jī)制可以用硬件方法實(shí)現(xiàn),也可以用軟件方法實(shí)現(xiàn)。常見(jiàn)的進(jìn)程同步機(jī)制有鎖機(jī)制、信號(hào)量機(jī)制、管程機(jī)制等。操作系統(tǒng)第三版操作系統(tǒng)第三版2、鎖機(jī)制進(jìn)程進(jìn)入臨界區(qū)的操作按三步進(jìn)行:加鎖操作。執(zhí)行臨界區(qū)程序開(kāi)鎖操作 開(kāi)、關(guān)中斷 (單CPU系統(tǒng)) 使用CPU的硬件中斷標(biāo)志位作為臨界區(qū)的鎖 lock和unlock原語(yǔ) 取值只能是0或1。為0表示資源可以使用,為1表示資源已被占用。加鎖原語(yǔ)lock()描述為: while(=1); =

12、1; 開(kāi)鎖原語(yǔ)unlock():0操作系統(tǒng)第三版操作系統(tǒng)第三版3、信號(hào)量機(jī)制 實(shí)現(xiàn)中應(yīng)注意的問(wèn)題 整型信號(hào)量記錄型信號(hào)量AND型“信號(hào)量集”機(jī)制 一般“信號(hào)量集”機(jī)制 整型信號(hào)量信號(hào)量的應(yīng)用 實(shí)現(xiàn)進(jìn)程互斥 實(shí)現(xiàn)進(jìn)程同步 描述前趨關(guān)系 操作系統(tǒng)第三版操作系統(tǒng)第三版4、管程機(jī)制管程的引入把所有進(jìn)程對(duì)某一臨界資源的使用進(jìn)行集中控制,為每個(gè)共享資源設(shè)立一個(gè)專門的管程,統(tǒng)一管理各進(jìn)程對(duì)該資源的訪問(wèn) 。管程的定義一個(gè)管程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程調(diào)用的在該數(shù)據(jù)結(jié)構(gòu)上的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)。管程的主要特點(diǎn)模塊化抽象數(shù)據(jù)類型信息封裝操作系統(tǒng)第三版操作系統(tǒng)第三版5、經(jīng)典進(jìn)程同步問(wèn)

13、題生產(chǎn)者消費(fèi)者問(wèn)題 item Buffern; /*緩沖池有n個(gè)緩沖區(qū),用來(lái)放產(chǎn)品 */semaphore empty=n; /* 空緩沖區(qū)的數(shù)量*/semaphore full= 0; /* 滿緩沖區(qū)的數(shù)量 */semaphore mutex= 1; /* 互斥訪問(wèn)緩沖區(qū) */int in = 0, out = 0; /* 放入/取出緩沖區(qū)指針 */main ( )cobeginproducer( );/*生產(chǎn)者*/consumer( ); /*消費(fèi)者*/coend producer( ) while(TRUE) 生產(chǎn)一件產(chǎn)品;P(empty); /* 申請(qǐng)空緩沖區(qū),如沒(méi)有則等待 */P(m

14、utex); /* 有空緩沖區(qū),進(jìn)程互斥使用緩沖區(qū) */Bufferin = 把產(chǎn)品放在這里; /* 把生產(chǎn)的產(chǎn)品放在緩沖區(qū)*/in = (in + 1) % n;/* 輸入指針調(diào)整,為下次放入作準(zhǔn)備 */V(mutex);/* 釋放緩沖區(qū),若有其它進(jìn)程等待則喚醒之 */V(full); /* 滿緩沖區(qū)的數(shù)量加1 */consumer( ) while(TRUE) P(full);P(mutex);從這里取出產(chǎn)品 = Bufferout;out = (out + 1) % n;V(mutex);V(empty);消費(fèi)這件產(chǎn)品; 操作系統(tǒng)第三版操作系統(tǒng)第三版讀者寫者問(wèn)題int rc = 0; /

15、* 讀進(jìn)程的數(shù)量 */semaphore wmutex= 1, rmutex= 1;main ( )cobeginreader( ); /*讀者進(jìn)程*/writer( ); /*寫者進(jìn)程*/coend reader( )while(TRUE)P(rmutex); /*等待無(wú)人讀rc時(shí)再繼續(xù)*/rc+; /*讀者進(jìn)程數(shù)量加1*/if (rc = 1) P(wmutex); /* 只有自己一個(gè)讀者進(jìn)程時(shí),測(cè)試是否有寫者進(jìn)程 */V(rmutex);讀文件;P(rmutex);rc-; /*讀完后讀者進(jìn)程數(shù)量減1*/if (rc = 0) V(wmutex); /*沒(méi)有讀者進(jìn)程,允許寫*/V(rmu

16、tex); writer( )while(TRUE) P(wmutex);寫文件;V(wmutex); 操作系統(tǒng)第三版操作系統(tǒng)第三版進(jìn)程之間的信息交換稱為進(jìn)程通信,用IPC(Inter-Process Communication)表示。并發(fā)進(jìn)程為了能夠協(xié)同工作,必須互相交換信息,但交換的信息量可大可小。進(jìn)程間只能交換少量信息的通信被稱為低級(jí)通信。進(jìn)程間大批量數(shù)據(jù)信息的交換被稱為高級(jí)通信,通常簡(jiǎn)稱為進(jìn)程通信。 進(jìn)程間高級(jí)通信方式可分為三大類 共享存儲(chǔ)器系統(tǒng) 消息傳遞系統(tǒng) 共享文件方式(管道通信) 進(jìn)程通信進(jìn)程通信操作系統(tǒng)第三版操作系統(tǒng)第三版1、共享存儲(chǔ)器系統(tǒng) (Shared-Memory Sys

17、tem)基于共享數(shù)據(jù)結(jié)構(gòu)的通信方式基于共享存儲(chǔ)區(qū)的通信方式 2、消息傳遞系統(tǒng) ( Message passing system ) 直接通信方式(消息緩沖通信機(jī)制) 間接通信方式(信箱通信方式) 消息傳遞系統(tǒng)的特點(diǎn) 3、共享文件方式 (Shared File)(管道通信)管道:用于連接一個(gè)讀進(jìn)程和一個(gè)寫進(jìn)程,以實(shí)現(xiàn)它們之間通信的共享文件管道按FIFO方式傳送大量數(shù)據(jù),且只能單向傳送數(shù)據(jù)操作系統(tǒng)第三版操作系統(tǒng)第三版1、調(diào)度的基本概念 高級(jí)、中級(jí)、低級(jí)調(diào)度 高級(jí)調(diào)度(High Level scheduling) 低級(jí)調(diào)度(Low Level Scheduling) 中級(jí)調(diào)度(Intermediat

18、e Level Scheduling) 進(jìn)程調(diào)度方式 非搶占式調(diào)度 (Non-Preemptive Mode) 搶占式調(diào)度 (Preemptive Mode)進(jìn)程調(diào)度進(jìn)程調(diào)度操作系統(tǒng)第三版操作系統(tǒng)第三版 2、進(jìn)程調(diào)度的實(shí)現(xiàn)進(jìn)程切換 操作系統(tǒng)中的進(jìn)程調(diào)度程序使當(dāng)前正在執(zhí)行的進(jìn)程讓出處理機(jī),選擇另外一個(gè)進(jìn)程占用處理機(jī)的過(guò)程稱為進(jìn)程切換,也叫進(jìn)程上下文切換。進(jìn)程切換的步驟:首先保存現(xiàn)場(chǎng)然后選擇要運(yùn)行的程序最后恢復(fù)現(xiàn)場(chǎng)操作系統(tǒng)第三版操作系統(tǒng)第三版3、進(jìn)程的調(diào)度算法先來(lái)先服務(wù)算法(FCFS) FCFS(First Come First Served) 算法也可稱為先進(jìn)先出算法FIFO(First In

19、First Out),是最簡(jiǎn)單的調(diào)度算法,適用于作業(yè)調(diào)度和進(jìn)程調(diào)度,采用非搶占式調(diào)度方式。 最短進(jìn)程優(yōu)先算法(SPF) SPF (Shortest Process First ) 算法適用于作業(yè)調(diào)度和進(jìn)程調(diào)度,采用非搶占式調(diào)度方式。最高優(yōu)先權(quán)優(yōu)先調(diào)度算法(FPF)最高優(yōu)先級(jí)優(yōu)先算法(HPFHighest Priority First) 本算法考慮到緊迫型進(jìn)程進(jìn)入系統(tǒng)后能得到優(yōu)先處理,適用于作業(yè)調(diào)度和進(jìn)程調(diào)度,是常用的一種調(diào)度算法,可以采用非搶占式或搶占式調(diào)度方式。操作系統(tǒng)第三版操作系統(tǒng)第三版時(shí)間片輪轉(zhuǎn)算法(RRRound Robin) 前面幾種算法主要用于批處理系統(tǒng),不能作為分時(shí)系統(tǒng)的主要調(diào)度

20、算法,因?yàn)樗鼰o(wú)法滿足分時(shí)系統(tǒng)中終端對(duì)響應(yīng)時(shí)間的要求。在分時(shí)系統(tǒng)中,常采用時(shí)間片輪轉(zhuǎn)調(diào)度算法,它是搶占式調(diào)度算法。該算法又分為簡(jiǎn)單輪轉(zhuǎn)法和多隊(duì)列輪轉(zhuǎn)法兩種。多級(jí)反饋隊(duì)列算法(Round Robin with Multiple Feedback Queues) 多級(jí)反饋隊(duì)列調(diào)度算法是時(shí)間片輪轉(zhuǎn)算法和優(yōu)先級(jí)調(diào)度算法的綜合和發(fā)展,是目前公認(rèn)較好的一種進(jìn)程調(diào)度算法。它采用搶占式調(diào)度方式,通過(guò)動(dòng)態(tài)調(diào)整進(jìn)程優(yōu)先級(jí)和時(shí)間片大小,不必事先估計(jì)進(jìn)程的執(zhí)行時(shí)間,可兼顧多方面的系統(tǒng)目標(biāo),是一種考慮全面又靈活實(shí)用的調(diào)度算法。 操作系統(tǒng)第三版操作系統(tǒng)第三版1、資源可搶占資源和不可搶占資源共享資源和獨(dú)享資源(獨(dú)占資源) 永

21、久性資源和臨時(shí)性資源 進(jìn)程使用一個(gè)資源的順序是:申請(qǐng)資源系統(tǒng)為進(jìn)程分配資源使用資源釋放資源。如果申請(qǐng)失敗,不同的系統(tǒng)可能采用不同的對(duì)策:有的系統(tǒng)中,進(jìn)程自動(dòng)被阻塞、等待喚醒;有的系統(tǒng)給申請(qǐng)進(jìn)程返回錯(cuò)誤代碼,由申請(qǐng)進(jìn)程等待一段時(shí)間后重試。 死死 鎖鎖操作系統(tǒng)第三版操作系統(tǒng)第三版2、死鎖的產(chǎn)生及原因 死鎖的產(chǎn)生和定義 在一組并發(fā)的進(jìn)程中,如果每個(gè)進(jìn)程都在等待被該組內(nèi)其它進(jìn)程所占有的資源,而不釋放自己占有的被其它進(jìn)程所等待的資源,就會(huì)出現(xiàn)僵持局面,導(dǎo)致這些進(jìn)程因一直得不到所需資源而無(wú)法執(zhí)行,這種現(xiàn)象稱為進(jìn)程死鎖,這組進(jìn)程稱為死鎖進(jìn)程。 死鎖的定義:死鎖是指多個(gè)并發(fā)的進(jìn)程競(jìng)爭(zhēng)資源而形成的一種僵局,若無(wú)

22、外力作用,這些進(jìn)程將永遠(yuǎn)不能再向前推進(jìn)。 產(chǎn)生死鎖的原因 系統(tǒng)競(jìng)爭(zhēng)臨界資源 進(jìn)程推進(jìn)順序不當(dāng)操作系統(tǒng)第三版操作系統(tǒng)第三版3、產(chǎn)生死鎖的必要條件 互斥條件保持和等待條件 不可搶占條件循環(huán)等待條件操作系統(tǒng)第三版操作系統(tǒng)第三版4、解決死鎖的基本策略 鴕鳥(niǎo)策略 l象鴕鳥(niǎo)一樣對(duì)死鎖視而不見(jiàn)、不予理睬。 不允許死鎖發(fā)生l靜態(tài)策略就是預(yù)防死鎖 l動(dòng)態(tài)策略就是避免死鎖 允許死鎖發(fā)生l檢測(cè)和解除 解決死鎖的基本方法有以下三種:預(yù)防死鎖避免死鎖檢測(cè)和解除死鎖 操作系統(tǒng)第三版操作系統(tǒng)第三版1、使用“任務(wù)管理器”實(shí)現(xiàn)進(jìn)程管理 “任務(wù)管理器”提供了正在計(jì)算上運(yùn)行的程序和進(jìn)程的相關(guān)信息,也顯示最常用的度量進(jìn)程性能的單位。

23、使用任務(wù)管理器,可以查看正在運(yùn)行的程序的狀態(tài),并終止已停止響應(yīng)的程序。也可以使用多達(dá) 15 個(gè)參數(shù)評(píng)估正在運(yùn)行的進(jìn)程的活動(dòng),查看反映 CPU 和內(nèi)存使用情況的圖形和數(shù)據(jù)。查看進(jìn)程的相關(guān)信息終止進(jìn)程查看進(jìn)程的優(yōu)先級(jí)更改進(jìn)程的優(yōu)先級(jí)給處理器指派進(jìn)程使用“任務(wù)管理器” 的其它功能Windows系統(tǒng)的進(jìn)程管理系統(tǒng)的進(jìn)程管理操作系統(tǒng)第三版操作系統(tǒng)第三版2、使用Windows XP中的命令行工具實(shí)現(xiàn)進(jìn)程管理Windows XP中的命令行工具tasklist 用來(lái)顯示應(yīng)用程序和本地或遠(yuǎn)程系統(tǒng)上運(yùn)行的相關(guān)任 務(wù)/進(jìn)程的列表,執(zhí)行tasklist /? 顯示詳細(xì)的幫助信息。 Windows XP中的命令行工具t

24、askkill TASKKILL /F /IM notepad.exe /T TASKKILL /PID 1630 /PID 1641 /T Windows XP中的命令行工具ntsd命令 NTSD -C Q -P PID 操作系統(tǒng)第三版操作系統(tǒng)第三版習(xí) 題1. 畫(huà)出下面四條語(yǔ)句的前趨圖:S1:a=x+m;S2:b=y+n;S3:c=a+b;S4:d=c+e。 2. 程序并發(fā)執(zhí)行時(shí)有哪些特征? 3. 程序與進(jìn)程之間有哪些區(qū)別和聯(lián)系?4. 進(jìn)程實(shí)體由哪幾個(gè)部分組成,進(jìn)程控制塊的作用是什么? 5. 進(jìn)程有哪幾種基本狀態(tài)?進(jìn)程是否可從阻塞狀態(tài)直接轉(zhuǎn)換到運(yùn)行狀態(tài)?為什么? 6. 并發(fā)的進(jìn)程之間相互制約

25、關(guān)系有哪兩種形式?請(qǐng)舉例說(shuō)明。7. 請(qǐng)舉例說(shuō)明什么是臨界資源、臨界區(qū)、進(jìn)程同步、進(jìn)程互斥?進(jìn)程同步與互斥二者之間有何關(guān)系?操作系統(tǒng)對(duì)臨界區(qū)的調(diào)度原則是什么?8. 為某臨界區(qū)設(shè)置一把鎖w,當(dāng)w=1時(shí),表示關(guān)鎖;w=0時(shí),表示開(kāi)鎖。請(qǐng)寫出開(kāi)鎖原語(yǔ)和關(guān)鎖原語(yǔ),并利用它們實(shí)現(xiàn)進(jìn)程互斥。9. P、V操作的物理意義是什么? 在信號(hào)量S上執(zhí)行P、V操作時(shí),S的值發(fā)生什么變化?當(dāng)S0,S=0,S0時(shí),它們的物理意義是什么? 10. 有三個(gè)進(jìn)程A、B、C,進(jìn)程A通過(guò)一個(gè)緩沖區(qū)不斷地向進(jìn)程B、C發(fā)送信息,A 每向緩沖區(qū)送入一個(gè)信息后,必須等進(jìn)程B、C都取走后才可以發(fā)送下一個(gè)信息,B、C對(duì)A 送入的每一信息各取一次

26、,請(qǐng)用P、V操作實(shí)現(xiàn)它們之間的同步工作。操作系統(tǒng)第三版操作系統(tǒng)第三版11. 兩個(gè)并發(fā)進(jìn)程的程序如下:int a=9; main( ) cobeginprocess1( );process2( );coend process1( ) while (TRUE) a=a+1; process2( ) while (TRUE) print(a);a=0; 在process1先執(zhí)行了二次循環(huán)后,process1和process2又并發(fā)執(zhí)行了一次循環(huán),會(huì)出現(xiàn)哪幾種情況?a的打印值應(yīng)該是多少?如果要求process1必須先執(zhí)行二次循環(huán),然后process1和process2開(kāi)始并發(fā)循環(huán)執(zhí)行,執(zhí)行時(shí)不出現(xiàn)與時(shí)

27、間有關(guān)的錯(cuò)誤,如何用PV操作來(lái)實(shí)現(xiàn)?12. 設(shè)有n個(gè)進(jìn)程共享一臨界區(qū),對(duì)于下述情況,說(shuō)明信號(hào)量的初值、含義,并用PV操作寫出有關(guān)進(jìn)程的互斥算法:(1)一次只允許一個(gè)進(jìn)程進(jìn)入臨界區(qū)。(2)一次允許m(mn個(gè)進(jìn)程進(jìn)入臨界區(qū)。13. 某計(jì)算機(jī)機(jī)房有40臺(tái)計(jì)算機(jī),最多可同時(shí)容納40個(gè)人上機(jī),機(jī)房門很窄,每次只允許一個(gè)人出入。開(kāi)始時(shí)機(jī)房沒(méi)有人上機(jī)。上機(jī)過(guò)程為:當(dāng)機(jī)房?jī)?nèi)有40個(gè)人上機(jī)時(shí),等待;機(jī)房有空位置時(shí),機(jī)房門沒(méi)有人出入,就進(jìn)入機(jī)房上機(jī)。上機(jī)完成后,機(jī)房門沒(méi)有人出入,就離開(kāi)機(jī)房。多個(gè)上機(jī)進(jìn)程可以并發(fā)執(zhí)行。請(qǐng)用PV操作實(shí)現(xiàn)上機(jī)進(jìn)程的同步算法。14. 請(qǐng)用PV操作寫出下面前趨圖的并發(fā)程序。(圖見(jiàn)教材P85)15. 什么是高級(jí)、低級(jí)和中級(jí)調(diào)度?

溫馨提示

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

評(píng)論

0/150

提交評(píng)論