




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2.12.22.3本章講述內容:本章講述內容:2.4進程控制塊;程序A程序B程序C0469141820232630423542334程序A程序B程序C0469131822121517(a) 單道程序設計環境(b) 多道程序設計環境時間時間打印機輸出CPU執行圖例:.1.資源的獨占性.執行的順序性結果的再現性2.執行的并發性.相互的制約性狀態的多變性 機車頭從車尾把到達場里的貨車推向駝峰,在那里按照不同去向(即進路)把車廂間的掛鉤摘開,一組車廂(稱一勾車)借助駝峰的高度,將根據自己的去向溜到編組場的不同軌道,組成一列新的貨車。 1.進程是程序的一次運行活動;進程的運行活動是建立在某個數據集合之上
2、;進程要在獲得資源的基礎上從事自己的運行活動。2. 所謂“進程”,是指一個程序在給定數據集合上的一次執行過程,是系統進行資源分配和運行調度的獨立單位。駝峰到達場編組場溜放中的一勾車雷達測速、測長道岔(軌道電路)一列新貨車一列解體貨車緩行器12345678股道號溜放中的一勾車駝峰溜放控制過程中的進程。 例:例:.扳道岔程序 .緩行器控制程序 雷達測速程序 雷達測長程序 巡回檢測程序 用戶進程:可以并發執行的用戶程序段,它們是操作系統的服務對象,是系統資源的實際享用者。 系統進程:操作系統中用于管理系統資源的那些并發程序,它們向用戶提供系統服務,分配系統的資源。 系統進程間的相互關系由操作系統負責
3、協調,以便有利于增加系統的并發性,提高資源的整體利用率;用戶進程間的相互關系要由用戶自己(在程序中)安排,操作系統會向用戶提供一定的協調手段(以命令的形式)。 3.4. 系統進程直接管理有關的軟、硬件資源的活動;用戶進程不得插手資源管理。在需要使用某種資源時,必須向系統提出申請,由系統統一調度與分配。 系統進程與用戶進程都需要使用系統中的各種資源,在雙方出現競爭時,系統進程有優先獲得資源、優先得以運行的權利。. 進程是程序的一次執行過程,程序是進程賴以存在的基礎。這就是說,進程與程序之間有一種必然的聯系。但進程又不等同于程序,它們是兩個完全不同的概念。 1. 進程間會相互制約。由于進程是系統中
4、資源分配和運行調度的單位,因此在對資源共享和競爭中,必然會相互制約,影響了各自向前推進的速度。 進程之間具有并發性。在一個系統中,同時會存在多個進程,與它們對應的多個程序同時在系統中運行,輪流占用CPU和各種資源。這正是多道程序設計的初衷,說明這些進程在系統中并發執行著。 每個進程都有自己的生命期。當要完成某一項工作時,就“創建”一個進程。一個進程創建后,系統就感知到它的存在;完成預定的任務后,系統就“撤銷”這個進程,收回它所占用的資源。撤消后,系統就無法再感知到它。于是,從創建到撤消,這個時間段就是一個進程的“生命期”。 不同進程可以執行同一個程序。從進程定義知,區分進程的條件一是所執行的程
5、序,二是數據集合。因此,即使多個進程執行同一個程序,只要它們運行在不同的數據集合上,那么它們就是不同的進程。 “進程”是一個動態的概念。進程強調的是程序的一次“執行”過程,因此它是一個動態的概念;程序是一組有序指令的集合,在多道程序設計環境下,它不涉及“執行”,因此是一個靜態的概念。 2.1. 就緒提交運行阻塞終止調度撤銷超時事件發生等待事件三種最基本的狀態創建 進程間由于共同協作和共享資源,導致在生命期中進程的狀態不斷發生變化。. 終止狀態:一個進程或正常結束,或因某種原因被強制結束。這時,系統正在為其進行善后處理。 創建狀態:進程正在初創期,操作系統還沒有把它列入到可執行的進程行列中。.
6、就緒狀態:一個進程已經具備了運行的條件,只要有機會獲得CPU,它就可以投入運行。. 運行狀態:一個進程獲得了CPU正在執行中。若系統中只有一個CPU,那么任何時候系統中最多只有一個進程處于運行狀態。. 阻塞狀態:進程正在等待某事件(比如I/O的完成)的發生。在事件到來前,即使把CPU分配給這個進程,它也無法運行。阻塞狀態有時也被稱為“等待狀態”。.2. 一個進程的狀態,可隨自身的推進和外界環境的變化而變化,從一種狀態“變遷”到另一種狀態。進程狀態變遷圖中,箭頭表示狀態變遷的方向,文字是引起這種狀態變遷的原因。. 就緒運行:需要一個新進程運行時,操作系統就在處于就緒狀態的進程里挑選目標,選中者的
7、狀態就從就緒變為運行。所以, “調度”是從就緒變到運行的原因。 一個處于運行狀態的進程,比如會由于提出輸入/輸出請求而使自己的狀態變成為阻塞。這屬于進程自身推進過程中引起的狀態變化。 并不是所有的進程狀態之間都可以發生變遷的。可能的變遷如下所列。 在輸入/輸出操作完成后,會使某個進程的狀態由阻塞變為就緒。這屬于由于外界環境的變化而引起的狀態變化。 .(1) 創建就緒:一個進程創建完畢,就可被列入到可執行的進程行列中。于是,系統通過提交,把它的狀態從創建變為就緒。 (2)運行就緒:引起進程狀態從運行變到就緒,最常見的原因是“超時”。(3) 運行阻塞:如果一個運行進程必須等待某個事件的發生而暫時無
8、法再運行,那么它的狀態就由運行變為阻塞。這種需要進程等待的事件是很多的。比如,進程發一個系統調用命令,操作系統卻無法立即提供服務;比如進程發出一個資源請求,但卻一時無法得到滿足;又比如進程要等待I/O的完成、等待另一個進程提供的輸入數據、等待來自另一個進程的消息等,都會使進程的狀態從運行變為阻塞。 (4) 阻塞就緒:當進程等待的事件發生時,處于阻塞狀態的進程就變成了就緒。 (5) 運行終止:正在運行的進程完成了自己的工作,或由于其他原因必須異常結束,那么該進程就會被撤消,由運行狀態變為終止狀態。 (6).在這五種狀態里,最基本、最實質性的是三種狀態:就緒、運行、阻塞。 就緒/掛起狀態:進程在輔
9、存。只要被激活,進程就可以調入內存,如果獲得CPU就可以投入運行。2.就緒/掛起就緒激活運行阻塞終止調度撤銷超時事件發生等待事件掛起阻塞/掛起激活掛起事件發生創建提交提交掛起 可在進程五種狀態基礎上,增加兩種狀態:“就緒/掛起”狀態和“阻塞/掛起”狀態。處于這兩種狀態的進程,都表示它們是在輔存而不是內存。只有通過“激活”,才可使這些進程的狀態變遷為“就緒”或“阻塞”,從而進入內存。 . 阻塞/掛起狀態:進程在輔存等待事件的發生。只要被激活,進程就可以調入到內存里去等待事件的發生。.對幾個變遷的解釋 就緒/掛起狀態:進程在輔存。只要被激活,進程就可調入內存,如果獲得CPU就可以投入運行。(1)
10、阻塞阻塞/掛起:若當前沒就緒進程可運行,且內存又缺少空閑區域裝入新進程,那就可從內存換出一個阻塞進程到輔存,使其狀態成為阻塞/掛起,騰出內存區域。(2) 阻塞/掛起就緒/掛起:如果一個處于阻塞/掛起狀態的進程所等待的事件發生了,那么它的狀態將變遷成為就緒/掛起狀態,進程仍在輔存。 (3) 現場信息:進程暫時讓出處理機時,須把當前各種現場信息保存在PCB的固定單元里。這樣,當進程再次獲得處理機時,就可以把這些信息置入處理機的相應寄存器中,恢復到被中斷時的原有狀態,保證進程正常執行。 標識信息:代表了一個進程的身份,是系統內部區分不同進程的依據 。進程控制塊.程序數據集合PCB程序數據集合.進程名
11、進程狀態程序存放位置數據存放位置通用寄存器內容控制寄存器內容斷點地址進程優先數隊列指針標識信息說明信息現場信息管理信息說明信息:隨時反映進程的情況 。 管理信息:系統通過這些信息管理、調度進程,使它們有條不紊地工作。 為管理和控制進程,系統創建每個進程時,都為其開辟一個專用的存儲區,隨時記錄它的動態特性。當一個進程被撤消時,系統就收回分配給它的存儲區。通常,把這一存儲區稱為該進程的“進程控制塊PCB” 。1. 比如,CPU先執行左邊的進程P0。若在運行到點x處時,進程P0的執行被打斷。為充分利用CPU,須將CPU分配給別的進程使用,即進行進程間的切換,讓CPU從執行一個進程轉而去執行另一個進程
12、。2. 所謂“進程間的切換”,是指將CPU的執行從一個進程切換到另一個進程。在有的書里,把進程間的切換稱為“進程間的上下文切換”。操作系統是通過進程PCB中的現場保護區來實現進程間的切換的 。.進程P0進程P1操作系統中斷或系統調用保護現場到PCB0從PCB1現場保護區獲取現場信息中斷或系統調用保護現場到PCB1從PCB0現場保護區獲取現場信息執行執行執行 被打斷的斷點x從斷點x恢復執行 被打斷的斷點y 到點y時,若進程P1的運行被打斷,又進入操作系統去做進程間的切換。若現在是要運行進程P0,那么先把當前CPU的運行現場保護到進程P1的PCB里,然后用進程P0的PCB里的現場信息對CPU進行加
13、載。這樣,CPU就開始從點x往下運行左邊的進程P0了。. 為此進入操作系統。若現在是要運行進程P1,那就先把當前CPU的運行現場保護到進程P0的PCB里,然后用進程P1的PCB里的現場信息對CPU進行加載(即恢復進程P1的運行現場)。這樣,CPU就開始運行右邊的進程P1了。. 就緒隊列:系統中所有處于就緒狀態的進程的PCB排成一隊,稱其為“就緒隊列”。一般地,就緒隊列里會有多個進程的PCB排在里面,它們形成處理機分配的侯選對象。 阻塞隊列:所有處于阻塞狀態的進程的PCB,應該根據阻塞的原因進行排隊,每一個都稱為一個“阻塞隊列”。 PCB1PCB2PCB5PCB10PCB3PCB7PCB6PCB
14、8PCB9PCB4-1-1-1運行隊列頭指針就緒隊列頭指針阻塞隊列1頭指針阻塞隊列2頭指針運行隊列:就緒隊列:阻塞隊列1:阻塞隊列2:. 運行隊列:處于運行狀態的PCB構成運行隊列。在單CPU系統,任何時刻系統里都只有一個進程處于運行狀態,因此運行隊列里只能有一個PCB 。.A1. 先來先服務調度算法ABCD調度就緒隊列到達阻塞隊列完成I/O完成阻塞CPUI/O 基本思想:調度時以到達就緒隊列的先后次序選擇占用處理機的進程。進程一旦占有處理機,就一直用下去,直至結束或因等待某事件而讓出處理機。2. 時間片輪轉調度算法 基本思想:調度時為進程分配一個稱為“時間片”的時間段,在使用完一個時間片后,
15、即使進程沒運行完,也要釋放處理機,讓給另一個進程使用,自己則排到就緒隊列末尾,等待下一次調度。 ABCD調度就緒隊列到達阻塞隊列完成I/O完成阻塞CPUI/O時間片到 UNIX操作系統里,為動態改變一個進程的優先數,采取了設置和系統計算并用的方法。設置用于一個進程變為阻塞時,系統會根據不同的阻塞原因,賦予阻塞進程不同的優先數。這個優先數將在進程被喚醒后發揮作用。計算進程優先數的公式是:p_pri=min127,(p_cpu/16+PUSER+p_nice) 3. 基本思想:為系統中的每個進程規定一個優先數,就緒隊列中具有最高優先數的進程有優先獲得處理機的權利;如果幾個進程的優先數相同,則對它們
16、實行先來先服務的調度。 確定進程優先數的幾個因素 .(1)根據進程的類型 (2)根據進程執行任務的重要性 (3)根據進程程序的性質 (4)根據對資源的要求 (5)根據用戶的請求 進程的優先數可分靜態和動態兩類。所謂靜態,是指在進程的整個生命期內優先數保持不變。其優點是實現簡單,但欠靈活。所謂動態,是指在進程的整個生命期內可隨時修正它的優先級別,以適應系統環境和條件的變化。 .例例:p_cpu p_pri 進程的 進程被調度 優先級 到的可能性進程被調度 進程的 p_pri p_cpu到的可能性 優先級圖例:-上升-下降 一開始,進入就緒隊列的進程被安排在隊列0里,每個進程都可獲得8ms長的時間
17、片。如果進程不能在該時間區間內完成自己的工作,那它就被下移到隊列1的尾部去等待調度。如果隊列0為空,位于隊列1首的進程將被調度,并可獲得16ms長的時間片。如果進程不能在該時間區間內完成自己的工作,那么它就要被下移到隊列2的尾部去等待調度。只有在隊列0和1都為空時,隊列2里的進程才可根據先來先服務的調度算法投入運行。4. 多級反饋隊列調度的中心思想是,以使用CPU時間的長短,來區分進程,讓進程在各就緒隊列里移動。如果進程需要使用很多的CPU時間,那么它就會被移到優先級較低的就緒隊列去。 . 比如,有多級反饋隊列,它維持三個就緒隊列,從隊列0到隊列2。先來先服務時間片=8ms時間片=16ms隊列
18、0隊列1完成完成阻塞/解除阻塞時間片到阻塞/解除阻塞時間片到隊列2完成到達 調度程序總是先執行隊列0里的所有進程,只有當隊列0為空時,它才會去調度隊列1中的進程。類似地,只有當隊列0和1都為空時,它才會去調度隊列2中的進程。到達隊列1的進程會搶占隊列2的進程的執行。同樣,到達隊列0的進程會搶占隊列1的進程的執行。.5.6.記錄系統中所有進程的有關情況,比如進程的當前狀態,優先數等 。.確定分配處理機的算法,這是它的一項主要工作。 .完成處理機的分配和回收。.不可剝奪方式:只能由占用處理機的進程自己自愿放棄處理機。 進程調度程序負責具體的處理機分配,完成進程間的切換工作,因此它的執行頻率是相當高
19、的,是一個操作系統的真正核心。 一個進程從運行狀態變成阻塞狀態(如請求進行輸入/輸出操作); (1)(2)一個進程正常運行結束后被撤銷。 一個進程從運行狀態變成就緒狀態(如分時系統中,已運行滿一個時間片);(3)(4)一個進程從阻塞狀態變成就緒狀態(如等待的輸入/輸出操作完成);. 注意:(1)、(4)兩種情況肯定會引起進程調度程序工作,它將從就緒隊列里選擇一個進程占用處理機,完成進程間的切換;(2)、(3)兩種情況可能會引起進程調度,也可能是繼續運行原進程,這與系統所采用的調度算法有關。 7. 剝奪方式:當系統出現某條件時,就立即從當前運行進程手中搶奪過處理機,重新進行分配。在進程調度算法中
20、,時間片輪轉調度算法屬于剝奪方式。 功能:在等待的事件發生后,由喚醒進程原語把等待進程從相應的阻塞隊列里解放出來,進入就緒隊列,重新參與調度。 撤消進程原語 功能:為新建進程申請進程控制塊PCB,將創建者提供的信息填入PCB,將新建進程設置為就緒狀態,按照調度算法把PCB排入就緒隊列中。 1. 操作系統提供若干基本操作,以便創建、撤消、阻塞和喚醒進程。為保證執行的正確,要求它們以一個整體出現,不可分割。即一旦啟動了相應的程序,就要保證做完,中間不能插入其它程序的執行序列。具有這種特性的程序被稱為“原語”。為保證這種不可分割性,通常是利用屏蔽中斷的方法。 2.創建進程原語阻塞進程原語喚醒進程原語
21、 功能:收回該進程占用的資源,將該進程的PCB從所在隊列里摘下,把PCB所占用的存儲區歸還給系統。 功能:將被阻塞進程的現場信息保存到PCB中,狀態改為阻塞; 將其PCB排到相應的阻塞隊列中。若被阻塞的是自己,調用了該原語后,就重新分配處理機。 命令接口:操作系統提供各種操作命令,以便用戶通過鍵盤控制程序的運行。這是系統在作業控制一級給予用戶的支持。1. 程序接口:操作系統提供各種系統調用命令,以讓用戶在編程時獲得所需的功能服務。這是系統在程序一級給予用戶的支持。2.特權指令與非特權指令 把CPU的指令分為兩類:一類是操作系統和用戶都能使用的指令,稱為“非特權指令”;一類是只能由操作系統使用的
22、指令,稱為“特權指令”。 管態與目態 這是CPU的兩種工作狀態:當其處于管態時,可執行包括特權指令在內的一切機器指令;當其處于目態時,只能執行非特權指令,禁止使用特權指令。 一般的過程調用,執行完后徑直返回斷點繼續執行;但系統調用可能會招致進程狀態的變化,從而引起系統重新分配處理機,因此系統調用處理結束后,不一定是返回調用者斷點處繼續執行。 一般的過程調用,調用者與被調用者都運行在相同的CPU狀態;但發生系統調用時,發出調用命令的調用者運行在目態,而被調用的對象則運行在管態。 .系統調用命令 操作系統里預先編制了不同功能的子程序,用戶可在自己的程序里調用它們,以求操作系統提供功能服務。這些子程
23、序被稱為“系統功能調用”程序,簡稱“系統調用”。 訪管指令是一條非特權指令,功能是執行它就會產生一個軟中斷,促使中央處理機由目態轉為管態,進入操作系統 。用戶程序只有通過 訪管指令,才能由目態轉為管態、以達到調用系統調用命令的目的。 .訪管指令3. 一般的過程調用,直接通過轉移指令轉向被調用的程序;但系統調用時,只能通過訪管指令提供的統一的入口,由目態進入管態,然后轉向相應的系統調用命令。 4.脫機命令接口和聯機命令接口。 后備作業與后備作業隊列:被系統接納的作業,在未投入運行之前,稱為后備作業。這些作業存放在輔助存儲器里,由它們的JCB聯接在一起,形成后備作業隊列。后備作業隊列里的作業,不參與對處理機的競爭,但系統是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件設計師考試知識點梳理試題及答案
- 突破難關的2025年軟件設計師考試試題答案
- 網絡工程師工作環境了解試題及答案
- 西方政治制度與全球治理體系的關系試題及答案
- 公共政策中的公平與效率辯證關系試題及答案
- 網絡連接的優化策略試題及答案
- 探索西方政治制度中的現代挑戰試題及答案
- 醫療器械國產化替代進程中的國際市場拓展與本土化策略報告(2025年)
- 可持續發展的公共政策框架探討試題及答案
- 安全審計與網絡監控試題及答案
- word基礎入門公開課課件
- 綜合、專科醫院執業校驗標準
- 學習羅陽青年隊故事PPT在急難險重任務中攜手拼搏奉獻PPT課件(帶內容)
- 稀土元素的分離方法-icaredbd課件
- 四年級下數學課件-火車過橋-通用版
- 版式設計課件3,網格系統全攻略
- 船舶防臺風安全安全知識
- 國家開放大學《人文英語3》章節測試參考答案
- 用雙棱鏡干涉測光波(20149)
- 靜音房聲學設計方案
- 四年級滬教版語文下冊閱讀理解專項習題含答案
評論
0/150
提交評論