Operating System -Lecture4 進程描述與狀態(tài)_第1頁
Operating System -Lecture4 進程描述與狀態(tài)_第2頁
Operating System -Lecture4 進程描述與狀態(tài)_第3頁
Operating System -Lecture4 進程描述與狀態(tài)_第4頁
Operating System -Lecture4 進程描述與狀態(tài)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Lecture 4:進程表示與進程 狀態(tài)變化目的與要求:理解進程概念,掌握進程在系統(tǒng)中的表示方法,理解進程的創(chuàng)建及其狀態(tài)變化。重點與難點:進程表示與進程創(chuàng)建,狀態(tài)轉換。操作系統(tǒng)中最核心的概念是進程:對正在運行程序的一個抽象。操作系統(tǒng)的其他所有內(nèi)容都是圍繞著進程的概念展開的。在一個多道程序設計系統(tǒng)中,CPU在各進程之間切換。處理機管理進程管理1. 為什么要引入進程的概念?程序的順序執(zhí)行:在任何時刻,機器只執(zhí)行一個操作,只有在前一個操作執(zhí)行完后,才能執(zhí)行后繼操作。例:作業(yè)i的輸入操作、計算操作和打印操作分別用Ii、Ci、Pi表示。則順序執(zhí)行過程為:I1I2I3P1C1P2P3C2C3程序的順序執(zhí)行

2、S1: a = x+y;S2: b = a-5;S3: c = b+1;程序語句的順序執(zhí)行程序順序執(zhí)行特點:順序性資源獨占性,封閉性 程序在運行時獨占全機資源。因此,這些資源的狀態(tài)只能由這個運行的程序決定和改變??稍佻F(xiàn)性 只要初始條件相同,無論程序是連續(xù)運行,還是斷斷續(xù)續(xù)地運行,程序的執(zhí)行結果與其執(zhí)行速度無關。優(yōu)點: 由于順序程序的封閉性和可再現(xiàn)性, 為程序員調(diào)試程序帶來了很大方便。缺點: 由于資源的獨占性,使得系統(tǒng)資源利用率非常低。多道程序設計:同一時刻內(nèi)存中存放了多個作業(yè),處理器交替運行不同的作業(yè)。提高了系統(tǒng)的效率,尤其是資源利用率。特點:多道宏觀上并行微觀上串行 問題系統(tǒng)管理復雜化程序的

3、并發(fā)執(zhí)行:計算機同時運行幾個程序, CPU要不斷地在幾個程序之間切換。程序A程序BCPUI/Otime資源例: 作業(yè)i的輸入、計算和輸出操作分別用Ii、Ci、Pi表示。雖然同一作業(yè)中的輸入、計算和輸出必須順序執(zhí)行,但對一批作業(yè)而言,情況就不同了。I1I2I3I4P1C1P2P3C2C3P4C4并發(fā)執(zhí)行并發(fā)執(zhí)行程序并發(fā)執(zhí)行帶來的新特征:資源共享性,失去了封閉性; 在并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)將由多個程序來改變,致使程序的運行失去了封閉性。制約性; 因共享資源或協(xié)調(diào)完成同一任務而引起的。程序執(zhí)行的間斷性;結果不可再現(xiàn)。例: 有程序A和B,共享一個變量N。以不同的速

4、度運行。 program A: program B:S1: N = 1 ; S3: N = 0 ; S2: N=N+1; print(N); S1,S2和S3的運行順序 print(N)S1-S2-S3 0S1-S3-S2 1S3-S1-S2 2a = n /n表示剩余的票數(shù)if (a=1) a = a-1; /售出一張票 n = a; a = n /n表示剩余的票數(shù)if (a=1) a = a-1; /售出一張票 n = a; 因為這種錯誤和相對執(zhí)行速度有關,因此稱為與時間有關的錯誤。服務器售票員A售票員B分時系統(tǒng)結論: 程序的并發(fā)執(zhí)行使得程序的執(zhí)行情況不可預見,其結果不再唯一,成為一個動態(tài)

5、的過程。而程序是一個靜態(tài)的概念,不再能切實反映程序執(zhí)行的各種特征(獨立性、并發(fā)性、動態(tài)性)?!斑M程”MIT:60年代初,MULTICS系統(tǒng)中提出;IBM:CTSS/360系統(tǒng),Linux系統(tǒng)等稱為“任務”(task)。進程的概念是為了描述系統(tǒng)中各并發(fā)活動而引入的。較典型的進程定義有: (1) 進程是程序的一次執(zhí)行。 (2) 進程是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動。 (3) 進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。 我們可以把傳統(tǒng)OS中的進程定義為:“進程是程序的運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位”。 進程具有的特性動態(tài)性。進

6、程是程序的一次執(zhí)行過程,是臨時的,有生命期的。獨立性。進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。并發(fā)性。多個進程可在處理機上交替執(zhí)行。結構性。系統(tǒng)為每個進程建立一個進程控制塊。內(nèi)存進程與程序的區(qū)別和聯(lián)系(1)程序是靜態(tài)的,進程是動態(tài)的。程序是有序代碼的集合;進程是程序的一次執(zhí)行。(2)進程是暫時的,程序的永久的。進程是一個變化的過程,有生命周期,暫時存在,程序沒有生命周期,可長久保存。(3)進程是操作系統(tǒng)資源分配和保護的基本單位,程序沒有此功能。(4)進程與程序的對應關系。通過多次執(zhí)行,一個程序可對應多個進程;通過調(diào)用關系,一個進程可包括多個程序。進程可創(chuàng)建其他進程,而程序并不能形成新的程序

7、。(5)進程與程序的結構不同,進程包括程序、數(shù)據(jù)、進程控制塊。磁盤2.進程的描述進程的組成:PCB Process Control Block 靈魂,進程存在的唯一標志。數(shù)據(jù)程序 程序:描述了進程要完成的功能,是 進程執(zhí)行時不可修改的部分。 數(shù)據(jù):進程執(zhí)行時用到的數(shù)據(jù)(用 戶輸入的數(shù)據(jù)、常量、靜態(tài)變量)。 工作區(qū) 工作區(qū):參數(shù)傳遞、系統(tǒng)調(diào)用時使 用的動態(tài)區(qū)域(堆棧區(qū))。實體進程映像:進程執(zhí)行程序,數(shù)據(jù),棧。進程映像如何存放在內(nèi)存取決于存儲管理機制。進程控制塊PCB:系統(tǒng)管理控制進程運行用的信息集合(含核心棧)。用戶空間系統(tǒng)空間進程組成結構進程控制塊(PCB)定義:是操作系統(tǒng)用來記錄進程詳細狀態(tài)

8、和相關信息的基本數(shù)據(jù)結構,它和進程是一一對應的,是進程存在的唯一標識。作用:提供進程的各種信息,以便操作系統(tǒng)控制和管理。類型內(nèi)容作用標識信息1)進程標識2)用戶標識3)父進程標識標識一個進程現(xiàn)場信息1)CPU通用寄存器內(nèi)容2)CPU控制和狀態(tài)寄存器內(nèi)容3)堆棧指針等記錄處理機現(xiàn)場信息,以備恢復之用控制信息1)進程狀態(tài)2)調(diào)度信息3)隊列指針4)位置信息5)資源占用信息用于進程的調(diào)度管理PCB結構PCB含有三大類信息描述:進程標識信息。如本進程的標識;本進程的產(chǎn)生者標識(父進程標識);進程所屬用戶標識。處理機狀態(tài)信息保存區(qū)(棧式結構)。實質(zhì)就是核心棧。保存進程的運行現(xiàn)場信息: 通用寄存器。這是指

9、任何程序都可以使用的數(shù)據(jù)、地址寄存器。控制和狀態(tài)寄存器。如程序計數(shù)器(PC);處理機狀態(tài)字(PS) 進程控制信息調(diào)度和狀態(tài)信息,用于操作系統(tǒng)調(diào)度進程占用處理機。 進程間通訊信息,為支持進程間的通訊相關的各種標識,信號,信件等,這些信息存在接收方的進程控制塊中。存儲管理信息。包含有指向本進程映像存儲空間的數(shù)據(jù)結構。進程所用資源。說明由進程打開,使用的系統(tǒng)資源,如打開的文件等。有關數(shù)據(jù)結構鏈接信息,進程可以鏈接到一個進程隊列中,或鏈接到相關的其它進程PCB。Unix:struct proc; Linux: struct task_struct;Windows NT/2000/XP執(zhí)行體進程塊(EP

10、ROCESS)包含了管理地址空間的域、跟蹤分配給進程資源的域等,基本信息同Linux進程描述符。EPROCESSKPROCESSETHREADKTHREAD內(nèi)核實現(xiàn)線程調(diào)度,調(diào)度信息在KTHREAD結構中實例操作系統(tǒng)對PCB的管理:集中統(tǒng)一管理內(nèi)存PCB表PCBPCBPCBPCB輔存非常駐信息非常駐信息非常駐信息非常駐信息3.進程的狀態(tài)進程的創(chuàng)建操作系統(tǒng)為進程創(chuàng)建進程控制塊和分配地址空間的過程就是進程創(chuàng)建的過程。 創(chuàng)建進程標識 分配內(nèi)存和其它資源初始化進程控制塊將創(chuàng)建的進程置于就緒隊列 PCBPCBPCBPCB就緒隊列進程創(chuàng)建處理過程大致為:接收進程運行所需參數(shù):如初始優(yōu)先級,執(zhí)行程序描述及輸

11、入?yún)?shù),其它資源等參數(shù)。請求分配進程描述塊PCB空間,得到一個內(nèi)部數(shù)字進程標識。用傳來的參數(shù)初始化PCB表。產(chǎn)生用于描述進程空間的數(shù)據(jù)結構,用初始執(zhí)行文件初始化進程空間,建立程序段,數(shù)據(jù)段、用戶棧段等。進程的創(chuàng)建與結束等系統(tǒng)調(diào)用用進程運行輸入?yún)?shù)等設置處理機現(xiàn)場保護區(qū),造一個進程運行棧幀。置好父進程等關系域。 將進程置成就緒狀態(tài)。將PCB表掛入就緒隊列,等待時機被調(diào)度運行。進程結束大致處理過程如下:將進程狀態(tài)改到結束狀態(tài);關閉所有打開文件、設備;釋放進程程序文件和其他資源;進行相關信息統(tǒng)計;清理其相關進程的鏈接關系,如在Linux中,將該結束進程的所有子進程鏈到1號進程,作為1號進程的子進程,

12、并通知父進程自己已結束;釋放進程映像空間;釋放進程控制塊(PCB);調(diào)進程調(diào)度與切換程序。進程等待系統(tǒng)調(diào)用如waitpid(pid,&statloc,opts)系統(tǒng)調(diào)用。 進程發(fā)出此系統(tǒng)調(diào)用阻塞于內(nèi)核等待pid所指進程運行結束。進程的狀態(tài)進程在其生命期內(nèi)一直處在一個狀態(tài)不斷變化的過程中。為了刻畫這種變化過程,操作系統(tǒng)把進程分成若干種狀態(tài),并約定各種狀態(tài)之間的轉換條件。狀態(tài)信息記錄在進程的PCB結構中。進程的執(zhí)行運行Running被調(diào)度時間片用完,中斷資源釋放或事件完成阻塞Blocked等待資源和事件進程占有處理機,處理機正在執(zhí)行該進程的程序。進程已獲得除處理機外的所需資源,等待分配處理機執(zhí)行。

13、也叫等待、掛起、睡眠態(tài),此時進程因等待某種條件(如I/O操作或進程同步)無法運行。引起進程阻塞的原因很多,系統(tǒng)將根據(jù)不同的阻塞原因將進程插入某個相應的阻塞隊列中。就緒Ready進程狀態(tài)轉換及原因狀態(tài)轉換原因就緒運行進程被調(diào)度程序選中占用CPU。運行阻塞進程出讓CPU,等待系統(tǒng)分配資源或某些事件的發(fā)生,如:暫時不能訪問某一資源,操作系統(tǒng)尚未完成服務,系統(tǒng)正在初始化I/O設備,等待用戶的輸入信息等。阻塞就緒處于等待隊列中的進程,當其等待的事件已經(jīng)發(fā)生,或等待的資源可用時,此進程將進入就緒隊列競爭CPU。運行就緒進程分配的時間片已用完,或者在中斷機制下,有更高優(yōu)先級的進程進入系統(tǒng),這時進程進入就緒隊

14、列等待下一次被選中而占用CPU。運行狀態(tài)(Running):當一個進程正在處理機上運行時。就緒狀態(tài)(Ready):一個進程獲得了除處理機之外的一切所需資源,一旦得到處理機即可運行.阻塞狀態(tài)又稱等待狀態(tài)(Blocked):一個進程正在等待某一事件而暫停運行時,如等待某資源成為可用,等待輸入/輸出完成。創(chuàng)建狀態(tài)(New):一個進程正在被創(chuàng)建,還沒到轉到就緒狀態(tài)之前的狀態(tài)。結束狀態(tài)(Exit):一個進程正在從系統(tǒng)中消失時的狀態(tài),這是因為進程結束或其它原因終止所導致。運行就緒阻塞被調(diào)度時間片用完,中斷資源釋放或事件完成等待資源和事件新建創(chuàng)建完畢結束結束執(zhí)行五種進程狀態(tài)轉換可能的狀態(tài)變化如下:空創(chuàng)建:一

15、個新進程被產(chǎn)生來執(zhí)行一個程序。創(chuàng)建就緒:當進程被創(chuàng)建完成,初始化后,一切就緒準備運行時變到就緒態(tài)。就緒運行:處于就緒狀態(tài)的進程被進程調(diào)度程序選中后,在處理機上運行。運行結束:當進程指示它已經(jīng)完成或者因錯終止,當前運行進程會由操作系統(tǒng)作結束處理。運行就緒:進程在其運行過程中,分給它的處理機時間片用完而讓出處理機;在可剝奪的操作系統(tǒng)中,當有更高優(yōu)先級的進程就緒,在準備從內(nèi)核返回用戶態(tài)運行時運行調(diào)度程序可以將正運行進程從運行狀態(tài)改變?yōu)榫途w狀態(tài),讓更高優(yōu)先級進程運行。運行阻塞:當進程請求某樣東西且必須等待時,如,當進程請求操作系統(tǒng)服務,而操作系統(tǒng)得不到所需的資源,或進程請求一個輸入/輸出操作,操作系統(tǒng)

16、已啟動外設,但輸入/輸出尚未完成,或進程要與其它進程通訊,要接收對方還未發(fā)出的信件時進程都會被阻塞。阻塞就緒:當進程要等待事件到來時,它從阻塞變到就緒。進程的組織(1)線性表組織方式:把所有進程的PCB存放在一個數(shù)組中,系統(tǒng)通過數(shù)組下標訪問每個PCB。 PCB(0) PCB(1) PCB(2). PCB(n-1) PCB(n)進程控制塊采用線性表管理(2)鏈表組織方式:把具有相同狀態(tài)的PCB組成一個隊列。 處于就緒態(tài)的進程可按照某種策略排成多個就緒隊列。 處于阻塞態(tài)的進程又可以根據(jù)阻塞的原因不同組織成多個阻塞隊列。如,等待磁盤I/O隊列,等待磁帶I/O隊列等。接收進程就緒隊列1就緒隊列2.就緒隊列n超時

溫馨提示

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

評論

0/150

提交評論