計(jì)算機(jī)操作系統(tǒng) 第四版 湯小丹 課件 第2章_第1頁
計(jì)算機(jī)操作系統(tǒng) 第四版 湯小丹 課件 第2章_第2頁
計(jì)算機(jī)操作系統(tǒng) 第四版 湯小丹 課件 第2章_第3頁
計(jì)算機(jī)操作系統(tǒng) 第四版 湯小丹 課件 第2章_第4頁
計(jì)算機(jī)操作系統(tǒng) 第四版 湯小丹 課件 第2章_第5頁
已閱讀5頁,還剩136頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章進(jìn)程的記述和控制、2.1前進(jìn)圖和程序執(zhí)行2.2進(jìn)程的記述2.3進(jìn)程控制2.4進(jìn)程同步2.5古典進(jìn)程同步問題2.6進(jìn)程通訊2.7線程(Threads )的基本概念2.8線程的實(shí)現(xiàn)問題、 2.1前向圖和計(jì)程儀程序執(zhí)行是在OS未早期配置的系統(tǒng)和單程批處理系統(tǒng)中,程序計(jì)程儀程序的執(zhí)行方式是順序執(zhí)行,在內(nèi)存中只裝載一個(gè)用戶程序計(jì)程儀程序,獨(dú)占系統(tǒng)內(nèi)的所有資源,只有在一個(gè)用戶程序計(jì)程儀執(zhí)行完成后,才執(zhí)行另一個(gè)程序由此可知,該方式存在資源浪費(fèi)、系統(tǒng)運(yùn)行效率低等缺點(diǎn)。 2.1.1前瞻性圖介紹描述程序計(jì)程儀執(zhí)行優(yōu)先級(jí)的前瞻性圖,以便更好地描述程序的順序和云同步執(zhí)行情況。 正向格拉夫(Precedence

2、Graph )是用于描述過程之間的執(zhí)行優(yōu)先級(jí)的定向非循環(huán)格拉夫,其被稱作Dag (直接循環(huán)圖)。 圖中的每個(gè)節(jié)點(diǎn)可以用來表示一個(gè)進(jìn)程或段、或語句,其中節(jié)點(diǎn)之間的有向邊表示存在于兩個(gè)節(jié)點(diǎn)之間的粒子順序或正向關(guān)系。 進(jìn)程(或項(xiàng)目群)之間的前置關(guān)系可以用“”表示,如果進(jìn)程Pi和Pj具有前置關(guān)系,則可以表示為(Pi,Pj ),也可以表示為PiPj,表示Pi必須在Pj開始執(zhí)行之前完成。 此時(shí),將Pi稱為Pj的直接向前,將Pj稱為Pi的直接后繼。 在現(xiàn)有格拉夫中,將非先前的節(jié)點(diǎn)稱為初始節(jié)點(diǎn),將非后續(xù)節(jié)點(diǎn)稱為終止節(jié)點(diǎn)。 每個(gè)節(jié)點(diǎn)還具有一個(gè)重量(Weight ),表示該節(jié)點(diǎn)包含的計(jì)程儀項(xiàng)目數(shù)和項(xiàng)目計(jì)程儀項(xiàng)目的

3、執(zhí)行時(shí)間。 在圖2 a所示的前進(jìn)圖中,存在P1P2、P1P3、P1P4、P2P5、P3P5、P4P6、P4P7、P5P8和P6P8。 P4)、(P2,P5)、(P3,P5)、(P4,P6)、(P4,P7)、(P5,P8)、(P6,P8)在如圖2-1(b )所示的先行關(guān)系中存在循環(huán)。 這需要S2在S3開始執(zhí)行之前完成,而S3必須在S2開始執(zhí)行之前完成。 很明顯,這種關(guān)系是不能實(shí)現(xiàn)的。 S2S3,S3S2,圖2-1向前圖, 2.1.2按計(jì)程儀柱的順序執(zhí)行1 .按計(jì)程儀柱的順序執(zhí)行通常,一個(gè)應(yīng)用程序由多個(gè)計(jì)程儀柱段組成,每個(gè)柱段執(zhí)行特定的功能,它們必須在執(zhí)行時(shí)按某種優(yōu)先級(jí)執(zhí)行,例如,進(jìn)行糾正操作請(qǐng)先

4、運(yùn)行用于輸入用戶的計(jì)程儀程序和數(shù)據(jù)的輸入計(jì)程儀程序,然后運(yùn)行修正程序計(jì)程儀程序,修正輸入的數(shù)據(jù)。最后運(yùn)行打印程序計(jì)程儀程序,打印修正結(jié)果。 各段的操作用節(jié)點(diǎn)(Node )表示(圖21中用圓圈表示),I是輸入操作,c是修正計(jì)算操作,p是打印操作,用箭頭表示操作的優(yōu)先順序。 這樣,在上述3個(gè)子搖滾樂之間存在IiCiPi,其執(zhí)行順序可以在前向圖2-2(a )中記述。 即使是一個(gè)段,也可能存在執(zhí)行順序的問題,如下表示包含三個(gè)句子的段: S1: a :=x y; S2: b :=a-5。 S3: c :=b 1。 在這里,語句S2必須在語句S1 (即,替換a之后)之后執(zhí)行,且語句S3也只在b替換之后執(zhí)行

5、。因此,在三個(gè)語句中存在著S1S2S3按圖2 b所示的順序執(zhí)行的先行關(guān)系。、圖2-2的程序執(zhí)行的先行圖、2 .計(jì)程儀程序執(zhí)行時(shí)的特征以上可知,在執(zhí)行程序計(jì)程儀時(shí),處理器嚴(yán)格按照程序計(jì)程儀程序中規(guī)定的程序執(zhí)行, 即各操作在下一個(gè)操作開始前必須結(jié)束的封閉性:在關(guān)閉的環(huán)境下執(zhí)行項(xiàng)目計(jì)程儀程序,即在執(zhí)行項(xiàng)目計(jì)程儀程序時(shí)獨(dú)占所有機(jī)器資源,資源的狀態(tài)(初始狀態(tài)除外)只有本項(xiàng)目計(jì)程儀程序能夠改變它,當(dāng)開始執(zhí)行項(xiàng)目計(jì)程儀程序時(shí), 其執(zhí)行結(jié)果不受外在因素影響的再現(xiàn)性是指,如果計(jì)程儀程序執(zhí)行時(shí)的環(huán)境和初始條件相同,則在反復(fù)執(zhí)行程序計(jì)程儀程序時(shí),無論是不停止從頭至尾而執(zhí)行,還是“亞麻跌走道兒”執(zhí)行,都得到相同的結(jié)果

6、。 執(zhí)行計(jì)程儀程序時(shí)的這種特性為程序設(shè)計(jì)師檢測(cè)、修正程序中的錯(cuò)誤提供了很大的便利。 2.1.3執(zhí)行計(jì)程儀程序云同步1 .執(zhí)行計(jì)程儀程序的云同步通過常見的例子說明執(zhí)行計(jì)程儀程序的順序和執(zhí)行云同步。 在圖2-2的輸入計(jì)程儀程序、修正運(yùn)算計(jì)程儀程序和打印計(jì)程儀程序三者之間存在IiCiPi那樣的先行關(guān)系,一個(gè)作業(yè)的輸入、修正運(yùn)算和打印這三個(gè)程序段必須被順序執(zhí)行。 在處理一批工作時(shí),每個(gè)工作的輸入、校正和打印工作搖滾樂的執(zhí)行狀況如圖2-3所示。 使云同步執(zhí)行圖2-3的項(xiàng)目群時(shí)的向前圖從圖2-3可知,存在向前關(guān)系IiCi、IiIi 1、CiPi、CiCi 1、PiPi 1,Ii 1、Ci和Pi-1重合,即

7、為pi 我知道S3必須在分配了a和b之后才能執(zhí)行,S4必須在S3之后執(zhí)行,但是S1和S2彼此無關(guān),所以可以在云同步上執(zhí)行。 圖24的四個(gè)句子的先行關(guān)系,2 .引入了方案間的云同步執(zhí)行功能后,系統(tǒng)的吞吐量和資源利用率提高了,但它們共享系統(tǒng)資源,為了實(shí)現(xiàn)相同的塔斯克,在這些個(gè)的同時(shí)執(zhí)行程序之間形成了相互制約的關(guān)系,從而(2)失去封閉性。 (3)不可再現(xiàn)性。2.2進(jìn)程的描述2.2.1進(jìn)程的定義和特征1 .進(jìn)程的定義在多個(gè)進(jìn)程環(huán)境下,進(jìn)程的執(zhí)行屬于云同步執(zhí)行,那時(shí)它們失去了封閉性,具有斷斷續(xù)續(xù)的及其執(zhí)行結(jié)果的重現(xiàn)性的特征。 據(jù)此,決定了通常的程序計(jì)程儀不參與云同步執(zhí)行,否則程序計(jì)程儀程序的執(zhí)行也失去了

8、意義。 引入了“進(jìn)程”概念,以允許云同步執(zhí)行計(jì)程儀程序,描述和控制云同步執(zhí)行的程序計(jì)程儀程序。 對(duì)于過程的定義,可以從不同的角度進(jìn)行不同的定義。 其中,典型的定義是: (1)進(jìn)程是計(jì)程儀定程序的一次執(zhí)行。 (2)進(jìn)程是當(dāng)在處理器上順序執(zhí)行節(jié)目計(jì)程儀節(jié)目和數(shù)據(jù)時(shí)發(fā)生的活動(dòng)。 (3)過程是在一個(gè)數(shù)據(jù)定徑套上執(zhí)行具有獨(dú)立功能的計(jì)程儀項(xiàng)目的過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立的單位。 2 .工藝特點(diǎn)進(jìn)程和方案計(jì)程儀是兩個(gè)完全不同的概念,進(jìn)程具有方案計(jì)程儀方案中沒有的PCB結(jié)構(gòu),此外,(1)具有動(dòng)態(tài)性。 (2)并發(fā)性。 (3)獨(dú)立性。 (4)非同步性。 此外,2.2.2基本狀態(tài)和轉(zhuǎn)變1.2進(jìn)程基本狀態(tài)的

9、三個(gè)進(jìn)程可能在其生命周期中具有多個(gè)狀態(tài),因?yàn)槎鄠€(gè)進(jìn)程共享云同步運(yùn)行時(shí)的系統(tǒng)資源,以指示執(zhí)行中的間斷執(zhí)行規(guī)則。 一般情況下,每個(gè)進(jìn)程必須至少處于(1)就緒(Ready )狀態(tài)的三個(gè)基本狀態(tài)之一。 (2)執(zhí)行(Running )狀態(tài)。 (3)封搖滾樂狀態(tài)。 2 .三個(gè)基本狀態(tài)的轉(zhuǎn)變過程在執(zhí)行過程中經(jīng)常發(fā)生狀態(tài)轉(zhuǎn)變。例如,由于在調(diào)度器分配了處理器之后能夠執(zhí)行處于準(zhǔn)備完成狀態(tài)的過程,所以該狀態(tài)從準(zhǔn)備完成狀態(tài)遷移到執(zhí)行狀態(tài)的執(zhí)行中的過程(當(dāng)前的過程),在由于所分配的考勤卡完成而中斷了處理器的執(zhí)行的情況下, 如果出現(xiàn)一個(gè)從運(yùn)行到就緒的上通告,并且當(dāng)前進(jìn)程的運(yùn)行受到阻礙(例如,進(jìn)程網(wǎng)站數(shù)據(jù)庫到極限資源,而該

10、資源由另一個(gè)進(jìn)程網(wǎng)站數(shù)據(jù)庫),則進(jìn)程的狀態(tài)從運(yùn)行變?yōu)閾u滾樂。 圖2-5顯示了過程的三個(gè)基本狀態(tài)及其狀態(tài)之間的轉(zhuǎn)換關(guān)系。圖2-5過程的三個(gè)基本狀態(tài)及其轉(zhuǎn)變,3 .創(chuàng)建狀態(tài)和結(jié)束狀態(tài)1 )創(chuàng)建狀態(tài)如前所述,該過程通過創(chuàng)建而產(chǎn)生。 創(chuàng)建進(jìn)程是一個(gè)復(fù)雜的進(jìn)程,通常需要幾個(gè)步驟,如進(jìn)程申請(qǐng)空白的PCB,在PCB中填寫用于控制和管理進(jìn)程的信息,然后將運(yùn)行時(shí)所需的資源分配給進(jìn)程。最后,將此進(jìn)程置于就緒狀態(tài)然而,如果進(jìn)程所需的資源不滿足,例如,系統(tǒng)沒有一盞茶內(nèi)存不能加載進(jìn)程,則將放置在此時(shí)的進(jìn)程狀態(tài)稱為創(chuàng)建狀態(tài),這是因?yàn)閯?chuàng)建工作還沒有完成,并且進(jìn)程不能被調(diào)度并執(zhí)行。 2 )終止?fàn)顟B(tài)過程也經(jīng)歷兩個(gè)步驟:首先等待

11、OS進(jìn)行善后處理,最后將PCB清零,并將PCB空間返回系統(tǒng)。 一個(gè)進(jìn)程到達(dá)自然終點(diǎn)、發(fā)生無法克服的錯(cuò)誤、由執(zhí)行操作系統(tǒng)終止、或由其他有終止權(quán)的進(jìn)程終止時(shí),將成為終止?fàn)顟B(tài)。 進(jìn)入退出狀態(tài)的進(jìn)程以后無法運(yùn)行,但執(zhí)行操作系統(tǒng)上仍有存儲(chǔ)狀態(tài)塔斯科和時(shí)間節(jié)點(diǎn)修訂,其他進(jìn)程可收集的查詢密碼。 當(dāng)另一過程完成提取信息時(shí),執(zhí)行操作系統(tǒng)將該過程(即PCB )清零,并將空PCB返回給系統(tǒng)。 圖2-6圖示了用于添加狀態(tài)和退出狀態(tài)的過程的五種狀態(tài)和轉(zhuǎn)變函數(shù)系譜圖。圖2-6進(jìn)程的5個(gè)基本狀態(tài)和轉(zhuǎn)變、2.2.3掛起操作和進(jìn)程狀態(tài)的轉(zhuǎn)變1 .掛起操作的引入掛起操作的原因是,(1)基于最終用戶的需要。 (2)父進(jìn)程要求。 (

12、3)負(fù)荷調(diào)節(jié)的必要性。 (四)執(zhí)行操作系統(tǒng)需求。 2 .在引入掛起基元操作之后的三個(gè)進(jìn)程狀態(tài)的轉(zhuǎn)變導(dǎo)致引入掛起基元Suspend并且激活基元Active之后,由于它們的作用,進(jìn)程可能發(fā)生以下狀態(tài)的轉(zhuǎn)變: (1)活動(dòng)就緒靜止?fàn)顟B(tài)(2)活動(dòng)堵塞、靜止堵塞。 (3)靜止準(zhǔn)備活動(dòng)做好了。 (4)靜止堵車、活動(dòng)堵車。 3 .引入掛起操作后的5個(gè)進(jìn)程狀態(tài)的轉(zhuǎn)變圖2-8顯示具有添加創(chuàng)建狀態(tài)和終止?fàn)顟B(tài)的掛起狀態(tài)的進(jìn)程狀態(tài)和轉(zhuǎn)變圖。 如圖2-8所示,在引入創(chuàng)建結(jié)束狀態(tài)之后,當(dāng)進(jìn)行進(jìn)程狀態(tài)轉(zhuǎn)變時(shí),與圖2-7所示的進(jìn)程5狀態(tài)轉(zhuǎn)變相比,(1)空創(chuàng)建: (2)創(chuàng)建活動(dòng)準(zhǔn)備: (3)創(chuàng)建靜止準(zhǔn)備: (4 2.2.4過程管

13、理中的用于數(shù)據(jù)結(jié)構(gòu)1 .執(zhí)行操作系統(tǒng)中的管理控制的數(shù)據(jù)我們稱為資源信息表或進(jìn)程信息表,包含資源或過程的識(shí)別、說明、狀態(tài)等信息和一系列指針。 利用這些個(gè)指針,可以將同類資源、進(jìn)程信息表或同一進(jìn)程占用的資源信息表分類到不同的隊(duì)列中進(jìn)行網(wǎng)絡(luò)鏈接,從而使執(zhí)行操作系統(tǒng)的檢索變得容易。 另外,如圖2-9所示,OS所管理的這些個(gè)的數(shù)據(jù)結(jié)構(gòu)一般被分類為存儲(chǔ)器表、數(shù)據(jù)表、文件表、用于過程管理的工藝表這4種,通常工藝表也稱作工藝聯(lián)合特羅爾搖滾樂PCB。、圖2-9執(zhí)行操作系統(tǒng)控制表的一般構(gòu)成、2 .過程控制子搖滾樂PCB的作用(1)設(shè)為獨(dú)立運(yùn)行基本單位的標(biāo)志。 (2)能夠?qū)崿F(xiàn)斷續(xù)的運(yùn)行方式。 (三)為過程管理提供必

14、要的信息。 (四)向調(diào)度過程提供必要的信息。 (5)實(shí)現(xiàn)與其他進(jìn)程的同步和通訊。 3 .進(jìn)程控件堆特羅爾搖滾樂中的信息進(jìn)程控件特羅爾定搖滾樂主要包括四個(gè)方面的信息: 1 )進(jìn)程標(biāo)識(shí)用于唯一地標(biāo)識(shí)進(jìn)程標(biāo)識(shí)進(jìn)程。 進(jìn)程通常有兩個(gè)標(biāo)識(shí)符: (1)外部標(biāo)識(shí)符。 (2)內(nèi)部識(shí)別符。 (2)處理器狀態(tài)處理器狀態(tài)信息有時(shí)也稱為處理器的上下文,主要由處理器的各種暫存器的內(nèi)容組成。 3 )當(dāng)調(diào)度過程信息OS進(jìn)行調(diào)度時(shí),需要知道有關(guān)進(jìn)程狀態(tài)和調(diào)度過程的信息。 這些個(gè)的信息顯示了進(jìn)程狀態(tài)、進(jìn)程的當(dāng)前狀態(tài),是與調(diào)度過程交換的依據(jù)。 進(jìn)程優(yōu)先級(jí)是用于描述進(jìn)程所使用的處理器優(yōu)先級(jí)的整數(shù)。高優(yōu)先級(jí)進(jìn)程是調(diào)度過程需要優(yōu)先獲得

15、處理器的其他信息。 與調(diào)度過程算法(進(jìn)程等待電腦CPU的時(shí)間的修訂、進(jìn)程執(zhí)行的時(shí)間的修訂等)相關(guān)。 上通告是等待進(jìn)程從執(zhí)行狀態(tài)遷移到塊搖滾樂狀態(tài)的上通告,即塊搖滾樂原因。 4 )過程控制特羅爾信息是指過程控制特羅爾所需的信息,包括過程和數(shù)據(jù)的地址、過程實(shí)體內(nèi)的程序計(jì)程儀和數(shù)據(jù)的存儲(chǔ)器或外部(開頭)地址,在該過程執(zhí)行時(shí)能夠從PCB中發(fā)現(xiàn)該程序計(jì)程儀和數(shù)據(jù)的進(jìn)程同步實(shí)現(xiàn)進(jìn)程同步和進(jìn)程通訊所需的反應(yīng)歷程(消息隊(duì)列指針、信號(hào)量等),這些個(gè)的全部或一部分可能位于PCB上。 列出執(zhí)行進(jìn)程時(shí)所需的所有資源(電腦CPU除外)以及分配給該進(jìn)程的資源的資源清單。 網(wǎng)絡(luò)鏈接指針,指示該進(jìn)程(PCB )所駐留的隊(duì)列中

16、的下一個(gè)進(jìn)程的PCB的起始地址。 4 .過程特羅爾子搖滾樂的組織方案可以在一個(gè)系統(tǒng)中通??梢跃哂袔资畟€(gè)、幾百個(gè)、甚至幾千個(gè)PCB。 應(yīng)該以適當(dāng)?shù)姆绞浇M織這些個(gè)的PCB以便有效地管理這些個(gè)。 現(xiàn)在普遍使用的組織方式有以下3種。 (1)線性方式、即將系統(tǒng)內(nèi)的所有PCB組織成一個(gè)線性表,并將該表的地址存儲(chǔ)在存儲(chǔ)器的一個(gè)專用區(qū)域中。 該方式實(shí)現(xiàn)簡單,開銷小,但每次檢索都需要掃描整個(gè)表,因此適用于進(jìn)程數(shù)少的系統(tǒng)。 圖210表示線性表的PCB組織方式。圖2-10 PCB線性表示示意圖,(2)網(wǎng)絡(luò)鏈接方式將具有相同狀態(tài)的過程的PCB分別以PCB中的網(wǎng)絡(luò)鏈接字在一個(gè)隊(duì)列中網(wǎng)絡(luò)鏈接。 相應(yīng)地,可以形成就緒隊(duì)列、

17、多個(gè)阻塞隊(duì)列、空閑隊(duì)列等。 對(duì)于準(zhǔn)備完成隊(duì)列,大多按照進(jìn)程的優(yōu)先順序?qū)CB以高的順序排列,將優(yōu)先順序高的進(jìn)程PCB排列在隊(duì)列的開頭。 同樣,也可以將處于擁擠狀態(tài)的進(jìn)程的PCB,根據(jù)其擁擠原因,排列成等待I/O操作完成的隊(duì)列或等待分配內(nèi)存的隊(duì)列等多個(gè)擁擠隊(duì)列。圖2-11顯示了網(wǎng)絡(luò)鏈接隊(duì)列的組織方法。圖2-11 PCB網(wǎng)絡(luò)鏈接隊(duì)列圖像、(3)目錄索引方式、即系統(tǒng)根據(jù)所有進(jìn)程的狀態(tài),生成多個(gè)目錄索引表,例如準(zhǔn)備完成的目錄索引表、布搖滾樂目錄索引表等,并將各目錄索引表記錄在存儲(chǔ)器的開頭地址。 每個(gè)目錄索引表的條目都記錄PCB的PCB表中具有相應(yīng)狀態(tài)的地址。 圖2-12表示目錄索引方式的PCB組織。以圖2-12目錄索引方式組織PCB,2.3過程控

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論