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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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 )所示的先行關系中存在循環(huán)。 這需要S2在S3開始執(zhí)行之前完成,而S3必須在S2開始執(zhí)行之前完成。 很明顯,這種關系是不能實現的。 S2S3,S3S2,圖2-1向前圖, 2.1.2按計程儀柱的順序執(zhí)行1 .按計程儀柱的順序執(zhí)行通常,一個應用程序由多個計程儀柱段組成,每個柱段執(zhí)行特定的功能,它們必須在執(zhí)行時按某種優(yōu)先級執(zhí)行,例如,進行糾正操作請先

4、運行用于輸入用戶的計程儀程序和數據的輸入計程儀程序,然后運行修正程序計程儀程序,修正輸入的數據。最后運行打印程序計程儀程序,打印修正結果。 各段的操作用節(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í)行的先行關系。、圖2-2的程序執(zhí)行的先行圖、2 .計程儀程序執(zhí)行時的特征以上可知,在執(zhí)行程序計程儀時,處理器嚴格按照程序計程儀程序中規(guī)定的程序執(zhí)行, 即各操作在下一個操作開始前必須結束的封閉性:在關閉的環(huán)境下執(zhí)行項目計程儀程序,即在執(zhí)行項目計程儀程序時獨占所有機器資源,資源的狀態(tài)(初始狀態(tài)除外)只有本項目計程儀程序能夠改變它,當開始執(zhí)行項目計程儀程序時, 其執(zhí)行結果不受外在因素影響的再現性是指,如果計程儀程序執(zhí)行時的環(huán)境和初始條件相同,則在反復執(zhí)行程序計程儀程序時,無論是不停止從頭至尾而執(zhí)行,還是“亞麻跌走道兒”執(zhí)行,都得到相同的結果

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

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

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

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

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

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

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

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

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

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

16、的下一個進程的PCB的起始地址。 4 .過程特羅爾子搖滾樂的組織方案可以在一個系統中通常可以具有幾十個、幾百個、甚至幾千個PCB。 應該以適當的方式組織這些個的PCB以便有效地管理這些個。 現在普遍使用的組織方式有以下3種。 (1)線性方式、即將系統內的所有PCB組織成一個線性表,并將該表的地址存儲在存儲器的一個專用區(qū)域中。 該方式實現簡單,開銷小,但每次檢索都需要掃描整個表,因此適用于進程數少的系統。 圖210表示線性表的PCB組織方式。圖2-10 PCB線性表示示意圖,(2)網絡鏈接方式將具有相同狀態(tài)的過程的PCB分別以PCB中的網絡鏈接字在一個隊列中網絡鏈接。 相應地,可以形成就緒隊列、

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

溫馨提示

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

評論

0/150

提交評論