




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第二章進程的記述和控制、2.1前進圖和程序執(zhí)行2.2進程的記述2.3進程控制2.4進程同步2.5古典進程同步問題2.6進程通訊2.7線程(Threads )的基本概念2.8線程的實現(xiàn)問題、 2.1前向圖和計程儀程序執(zhí)行是在OS未早期配置的系統(tǒng)和單程批處理系統(tǒng)中,程序計程儀程序的執(zhí)行方式是順序執(zhí)行,在內(nèi)存中只裝載一個用戶程序計程儀程序,獨占系統(tǒng)內(nèi)的所有資源,只有在一個用戶程序計程儀執(zhí)行完成后,才執(zhí)行另一個程序由此可知,該方式存在資源浪費、系統(tǒng)運行效率低等缺點。 2.1.1前瞻性圖介紹描述程序計程儀執(zhí)行優(yōu)先級的前瞻性圖,以便更好地描述程序的順序和云同步執(zhí)行情況。 正向格拉夫(Precedence
2、Graph )是用于描述過程之間的執(zhí)行優(yōu)先級的定向非循環(huán)格拉夫,其被稱作Dag (直接循環(huán)圖)。 圖中的每個節(jié)點可以用來表示一個進程或段、或語句,其中節(jié)點之間的有向邊表示存在于兩個節(jié)點之間的粒子順序或正向關(guān)系。 進程(或項目群)之間的前置關(guān)系可以用“”表示,如果進程Pi和Pj具有前置關(guān)系,則可以表示為(Pi,Pj ),也可以表示為PiPj,表示Pi必須在Pj開始執(zhí)行之前完成。 此時,將Pi稱為Pj的直接向前,將Pj稱為Pi的直接后繼。 在現(xiàn)有格拉夫中,將非先前的節(jié)點稱為初始節(jié)點,將非后續(xù)節(jié)點稱為終止節(jié)點。 每個節(jié)點還具有一個重量(Weight ),表示該節(jié)點包含的計程儀項目數(shù)和項目計程儀項目的
3、執(zhí)行時間。 在圖2 a所示的前進圖中,存在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)系是不能實現(xiàn)的。 S2S3,S3S2,圖2-1向前圖, 2.1.2按計程儀柱的順序執(zhí)行1 .按計程儀柱的順序執(zhí)行通常,一個應(yīng)用程序由多個計程儀柱段組成,每個柱段執(zhí)行特定的功能,它們必須在執(zhí)行時按某種優(yōu)先級執(zhí)行,例如,進行糾正操作請先
4、運行用于輸入用戶的計程儀程序和數(shù)據(jù)的輸入計程儀程序,然后運行修正程序計程儀程序,修正輸入的數(shù)據(jù)。最后運行打印程序計程儀程序,打印修正結(jié)果。 各段的操作用節(jié)點(Node )表示(圖21中用圓圈表示),I是輸入操作,c是修正計算操作,p是打印操作,用箭頭表示操作的優(yōu)先順序。 這樣,在上述3個子搖滾樂之間存在IiCiPi,其執(zhí)行順序可以在前向圖2-2(a )中記述。 即使是一個段,也可能存在執(zhí)行順序的問題,如下表示包含三個句子的段: S1: a :=x y; S2: b :=a-5。 S3: c :=b 1。 在這里,語句S2必須在語句S1 (即,替換a之后)之后執(zhí)行,且語句S3也只在b替換之后執(zhí)行
5、。因此,在三個語句中存在著S1S2S3按圖2 b所示的順序執(zhí)行的先行關(guān)系。、圖2-2的程序執(zhí)行的先行圖、2 .計程儀程序執(zhí)行時的特征以上可知,在執(zhí)行程序計程儀時,處理器嚴格按照程序計程儀程序中規(guī)定的程序執(zhí)行, 即各操作在下一個操作開始前必須結(jié)束的封閉性:在關(guān)閉的環(huán)境下執(zhí)行項目計程儀程序,即在執(zhí)行項目計程儀程序時獨占所有機器資源,資源的狀態(tài)(初始狀態(tài)除外)只有本項目計程儀程序能夠改變它,當開始執(zhí)行項目計程儀程序時, 其執(zhí)行結(jié)果不受外在因素影響的再現(xiàn)性是指,如果計程儀程序執(zhí)行時的環(huán)境和初始條件相同,則在反復(fù)執(zhí)行程序計程儀程序時,無論是不停止從頭至尾而執(zhí)行,還是“亞麻跌走道兒”執(zhí)行,都得到相同的結(jié)果
6、。 執(zhí)行計程儀程序時的這種特性為程序設(shè)計師檢測、修正程序中的錯誤提供了很大的便利。 2.1.3執(zhí)行計程儀程序云同步1 .執(zhí)行計程儀程序的云同步通過常見的例子說明執(zhí)行計程儀程序的順序和執(zhí)行云同步。 在圖2-2的輸入計程儀程序、修正運算計程儀程序和打印計程儀程序三者之間存在IiCiPi那樣的先行關(guān)系,一個作業(yè)的輸入、修正運算和打印這三個程序段必須被順序執(zhí)行。 在處理一批工作時,每個工作的輸入、校正和打印工作搖滾樂的執(zhí)行狀況如圖2-3所示。 使云同步執(zhí)行圖2-3的項目群時的向前圖從圖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的四個句子的先行關(guān)系,2 .引入了方案間的云同步執(zhí)行功能后,系統(tǒng)的吞吐量和資源利用率提高了,但它們共享系統(tǒng)資源,為了實現(xiàn)相同的塔斯克,在這些個的同時執(zhí)行程序之間形成了相互制約的關(guān)系,從而(2)失去封閉性。 (3)不可再現(xiàn)性。2.2進程的描述2.2.1進程的定義和特征1 .進程的定義在多個進程環(huán)境下,進程的執(zhí)行屬于云同步執(zhí)行,那時它們失去了封閉性,具有斷斷續(xù)續(xù)的及其執(zhí)行結(jié)果的重現(xiàn)性的特征。 據(jù)此,決定了通常的程序計程儀不參與云同步執(zhí)行,否則程序計程儀程序的執(zhí)行也失去了
8、意義。 引入了“進程”概念,以允許云同步執(zhí)行計程儀程序,描述和控制云同步執(zhí)行的程序計程儀程序。 對于過程的定義,可以從不同的角度進行不同的定義。 其中,典型的定義是: (1)進程是計程儀定程序的一次執(zhí)行。 (2)進程是當在處理器上順序執(zhí)行節(jié)目計程儀節(jié)目和數(shù)據(jù)時發(fā)生的活動。 (3)過程是在一個數(shù)據(jù)定徑套上執(zhí)行具有獨立功能的計程儀項目的過程,是系統(tǒng)進行資源分配和調(diào)度的獨立的單位。 2 .工藝特點進程和方案計程儀是兩個完全不同的概念,進程具有方案計程儀方案中沒有的PCB結(jié)構(gòu),此外,(1)具有動態(tài)性。 (2)并發(fā)性。 (3)獨立性。 (4)非同步性。 此外,2.2.2基本狀態(tài)和轉(zhuǎn)變1.2進程基本狀態(tài)的
9、三個進程可能在其生命周期中具有多個狀態(tài),因為多個進程共享云同步運行時的系統(tǒng)資源,以指示執(zhí)行中的間斷執(zhí)行規(guī)則。 一般情況下,每個進程必須至少處于(1)就緒(Ready )狀態(tài)的三個基本狀態(tài)之一。 (2)執(zhí)行(Running )狀態(tài)。 (3)封搖滾樂狀態(tài)。 2 .三個基本狀態(tài)的轉(zhuǎn)變過程在執(zhí)行過程中經(jīng)常發(fā)生狀態(tài)轉(zhuǎn)變。例如,由于在調(diào)度器分配了處理器之后能夠執(zhí)行處于準備完成狀態(tài)的過程,所以該狀態(tài)從準備完成狀態(tài)遷移到執(zhí)行狀態(tài)的執(zhí)行中的過程(當前的過程),在由于所分配的考勤卡完成而中斷了處理器的執(zhí)行的情況下, 如果出現(xiàn)一個從運行到就緒的上通告,并且當前進程的運行受到阻礙(例如,進程網(wǎng)站數(shù)據(jù)庫到極限資源,而該
10、資源由另一個進程網(wǎng)站數(shù)據(jù)庫),則進程的狀態(tài)從運行變?yōu)閾u滾樂。 圖2-5顯示了過程的三個基本狀態(tài)及其狀態(tài)之間的轉(zhuǎn)換關(guān)系。圖2-5過程的三個基本狀態(tài)及其轉(zhuǎn)變,3 .創(chuàng)建狀態(tài)和結(jié)束狀態(tài)1 )創(chuàng)建狀態(tài)如前所述,該過程通過創(chuàng)建而產(chǎn)生。 創(chuàng)建進程是一個復(fù)雜的進程,通常需要幾個步驟,如進程申請空白的PCB,在PCB中填寫用于控制和管理進程的信息,然后將運行時所需的資源分配給進程。最后,將此進程置于就緒狀態(tài)然而,如果進程所需的資源不滿足,例如,系統(tǒng)沒有一盞茶內(nèi)存不能加載進程,則將放置在此時的進程狀態(tài)稱為創(chuàng)建狀態(tài),這是因為創(chuàng)建工作還沒有完成,并且進程不能被調(diào)度并執(zhí)行。 2 )終止狀態(tài)過程也經(jīng)歷兩個步驟:首先等待
11、OS進行善后處理,最后將PCB清零,并將PCB空間返回系統(tǒng)。 一個進程到達自然終點、發(fā)生無法克服的錯誤、由執(zhí)行操作系統(tǒng)終止、或由其他有終止權(quán)的進程終止時,將成為終止狀態(tài)。 進入退出狀態(tài)的進程以后無法運行,但執(zhí)行操作系統(tǒng)上仍有存儲狀態(tài)塔斯科和時間節(jié)點修訂,其他進程可收集的查詢密碼。 當另一過程完成提取信息時,執(zhí)行操作系統(tǒng)將該過程(即PCB )清零,并將空PCB返回給系統(tǒng)。 圖2-6圖示了用于添加狀態(tài)和退出狀態(tài)的過程的五種狀態(tài)和轉(zhuǎn)變函數(shù)系譜圖。圖2-6進程的5個基本狀態(tài)和轉(zhuǎn)變、2.2.3掛起操作和進程狀態(tài)的轉(zhuǎn)變1 .掛起操作的引入掛起操作的原因是,(1)基于最終用戶的需要。 (2)父進程要求。 (
12、3)負荷調(diào)節(jié)的必要性。 (四)執(zhí)行操作系統(tǒng)需求。 2 .在引入掛起基元操作之后的三個進程狀態(tài)的轉(zhuǎn)變導(dǎo)致引入掛起基元Suspend并且激活基元Active之后,由于它們的作用,進程可能發(fā)生以下狀態(tài)的轉(zhuǎn)變: (1)活動就緒靜止狀態(tài)(2)活動堵塞、靜止堵塞。 (3)靜止準備活動做好了。 (4)靜止堵車、活動堵車。 3 .引入掛起操作后的5個進程狀態(tài)的轉(zhuǎn)變圖2-8顯示具有添加創(chuàng)建狀態(tài)和終止狀態(tài)的掛起狀態(tài)的進程狀態(tài)和轉(zhuǎn)變圖。 如圖2-8所示,在引入創(chuàng)建結(jié)束狀態(tài)之后,當進行進程狀態(tài)轉(zhuǎn)變時,與圖2-7所示的進程5狀態(tài)轉(zhuǎn)變相比,(1)空創(chuàng)建: (2)創(chuàng)建活動準備: (3)創(chuàng)建靜止準備: (4 2.2.4過程管
13、理中的用于數(shù)據(jù)結(jié)構(gòu)1 .執(zhí)行操作系統(tǒng)中的管理控制的數(shù)據(jù)我們稱為資源信息表或進程信息表,包含資源或過程的識別、說明、狀態(tài)等信息和一系列指針。 利用這些個指針,可以將同類資源、進程信息表或同一進程占用的資源信息表分類到不同的隊列中進行網(wǎng)絡(luò)鏈接,從而使執(zhí)行操作系統(tǒng)的檢索變得容易。 另外,如圖2-9所示,OS所管理的這些個的數(shù)據(jù)結(jié)構(gòu)一般被分類為存儲器表、數(shù)據(jù)表、文件表、用于過程管理的工藝表這4種,通常工藝表也稱作工藝聯(lián)合特羅爾搖滾樂PCB。、圖2-9執(zhí)行操作系統(tǒng)控制表的一般構(gòu)成、2 .過程控制子搖滾樂PCB的作用(1)設(shè)為獨立運行基本單位的標志。 (2)能夠?qū)崿F(xiàn)斷續(xù)的運行方式。 (三)為過程管理提供必
14、要的信息。 (四)向調(diào)度過程提供必要的信息。 (5)實現(xiàn)與其他進程的同步和通訊。 3 .進程控件堆特羅爾搖滾樂中的信息進程控件特羅爾定搖滾樂主要包括四個方面的信息: 1 )進程標識用于唯一地標識進程標識進程。 進程通常有兩個標識符: (1)外部標識符。 (2)內(nèi)部識別符。 (2)處理器狀態(tài)處理器狀態(tài)信息有時也稱為處理器的上下文,主要由處理器的各種暫存器的內(nèi)容組成。 3 )當調(diào)度過程信息OS進行調(diào)度時,需要知道有關(guān)進程狀態(tài)和調(diào)度過程的信息。 這些個的信息顯示了進程狀態(tài)、進程的當前狀態(tài),是與調(diào)度過程交換的依據(jù)。 進程優(yōu)先級是用于描述進程所使用的處理器優(yōu)先級的整數(shù)。高優(yōu)先級進程是調(diào)度過程需要優(yōu)先獲得
15、處理器的其他信息。 與調(diào)度過程算法(進程等待電腦CPU的時間的修訂、進程執(zhí)行的時間的修訂等)相關(guān)。 上通告是等待進程從執(zhí)行狀態(tài)遷移到塊搖滾樂狀態(tài)的上通告,即塊搖滾樂原因。 4 )過程控制特羅爾信息是指過程控制特羅爾所需的信息,包括過程和數(shù)據(jù)的地址、過程實體內(nèi)的程序計程儀和數(shù)據(jù)的存儲器或外部(開頭)地址,在該過程執(zhí)行時能夠從PCB中發(fā)現(xiàn)該程序計程儀和數(shù)據(jù)的進程同步實現(xiàn)進程同步和進程通訊所需的反應(yīng)歷程(消息隊列指針、信號量等),這些個的全部或一部分可能位于PCB上。 列出執(zhí)行進程時所需的所有資源(電腦CPU除外)以及分配給該進程的資源的資源清單。 網(wǎng)絡(luò)鏈接指針,指示該進程(PCB )所駐留的隊列中
16、的下一個進程的PCB的起始地址。 4 .過程特羅爾子搖滾樂的組織方案可以在一個系統(tǒng)中通常可以具有幾十個、幾百個、甚至幾千個PCB。 應(yīng)該以適當?shù)姆绞浇M織這些個的PCB以便有效地管理這些個。 現(xiàn)在普遍使用的組織方式有以下3種。 (1)線性方式、即將系統(tǒng)內(nèi)的所有PCB組織成一個線性表,并將該表的地址存儲在存儲器的一個專用區(qū)域中。 該方式實現(xiàn)簡單,開銷小,但每次檢索都需要掃描整個表,因此適用于進程數(shù)少的系統(tǒng)。 圖210表示線性表的PCB組織方式。圖2-10 PCB線性表示示意圖,(2)網(wǎng)絡(luò)鏈接方式將具有相同狀態(tài)的過程的PCB分別以PCB中的網(wǎng)絡(luò)鏈接字在一個隊列中網(wǎng)絡(luò)鏈接。 相應(yīng)地,可以形成就緒隊列、
17、多個阻塞隊列、空閑隊列等。 對于準備完成隊列,大多按照進程的優(yōu)先順序?qū)CB以高的順序排列,將優(yōu)先順序高的進程PCB排列在隊列的開頭。 同樣,也可以將處于擁擠狀態(tài)的進程的PCB,根據(jù)其擁擠原因,排列成等待I/O操作完成的隊列或等待分配內(nèi)存的隊列等多個擁擠隊列。圖2-11顯示了網(wǎng)絡(luò)鏈接隊列的組織方法。圖2-11 PCB網(wǎng)絡(luò)鏈接隊列圖像、(3)目錄索引方式、即系統(tǒng)根據(jù)所有進程的狀態(tài),生成多個目錄索引表,例如準備完成的目錄索引表、布搖滾樂目錄索引表等,并將各目錄索引表記錄在存儲器的開頭地址。 每個目錄索引表的條目都記錄PCB的PCB表中具有相應(yīng)狀態(tài)的地址。 圖2-12表示目錄索引方式的PCB組織。以圖2-12目錄索引方式組織PCB,2.3過程控
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 村元宵節(jié)舞龍活動方案
- 村干部拍攝活動方案
- 最美書記投票活動方案
- 景區(qū)開展五四活動方案
- 暑假班里活動方案
- 暑假建材活動方案
- 智障人士活動方案
- 機關(guān)清明徒步活動方案
- 普法品牌活動方案
- 機構(gòu)雙十二活動方案
- DB37T 1913-2011 金屬非金屬地下礦山特種作業(yè)人員配置
- 《不同頻次低強度脈沖超聲治療男性輕中度勃起功能障礙的臨床療效觀察》
- 湖南中考英語2022-2024真題匯編-教師版-07 語法填空
- 部編版(新教材)七年級上冊語文第2課《濟南的冬天》教學(xué)課件
- 中醫(yī)診所各項工作制度
- 青藍工程指導(dǎo)教師(師傅)個人工作總結(jié)
- 合伙意向合同協(xié)議書
- 房地產(chǎn)代理撤場協(xié)議2024年
- 教學(xué)設(shè)計原理加涅完整筆記
- QCT1171-2022汽車漆面保護膜
- DZ∕T 0207-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硅質(zhì)原料類(正式版)
評論
0/150
提交評論