3.2進程控制與調度_第1頁
3.2進程控制與調度_第2頁
3.2進程控制與調度_第3頁
3.2進程控制與調度_第4頁
3.2進程控制與調度_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第六講 進程控制與調度目的與要求:理解進程切換過程理解進程切換過程; ;理解進程調理解進程調度原因及調度切換時機度原因及調度切換時機; ;掌握進程調度方式掌握進程調度方式與實現及各種調度算法與實現及各種調度算法; ;弄清作業(yè)和進程的弄清作業(yè)和進程的關系;了解線程的引入原因。關系;了解線程的引入原因。重點與難點:進程調度切換的實現進程調度切換的實現. .作業(yè):8、10、213.3進程控制與調度3.3.1 進程執(zhí)行系統(tǒng)運行機制:系統(tǒng)運行機制:內核嵌入進程運行模型。內核嵌入進程運行模型。執(zhí)行模式執(zhí)行模式:進程可在用戶態(tài)和核心態(tài)下運行:進程可在用戶態(tài)和核心態(tài)下運行. .進程模式切換進程模式切換:一個用

2、戶進程既運行用戶態(tài):一個用戶進程既運行用戶態(tài)程序程序, ,在系統(tǒng)調用和中斷時轉換到核心態(tài)時在系統(tǒng)調用和中斷時轉換到核心態(tài)時運行操作系統(tǒng)核心程序運行操作系統(tǒng)核心程序. .進程切換:進程切換:指進程進入操作系統(tǒng)核心后因為指進程進入操作系統(tǒng)核心后因為自身等事件或有更迫切需要運行的進程就緒自身等事件或有更迫切需要運行的進程就緒而失去處理機而失去處理機, ,處理機轉去運行其他進程處理機轉去運行其他進程. .* *進程切換過程進程切換過程l保存處理機的上下文,包括程序計數器保存處理機的上下文,包括程序計數器PCPC、處理機狀態(tài)字處理機狀態(tài)字PSPS、其它寄存器。其它寄存器。l修改當前運行進程的進程控制塊內

3、容,包修改當前運行進程的進程控制塊內容,包括將進程狀態(tài)從運行態(tài)改成其它狀態(tài)。括將進程狀態(tài)從運行態(tài)改成其它狀態(tài)。l選擇另一個進程執(zhí)行。選擇另一個進程執(zhí)行。l修改被調度進程的進程控制塊,包括把其修改被調度進程的進程控制塊,包括把其狀態(tài)改變到運行態(tài)。狀態(tài)改變到運行態(tài)。l修改系統(tǒng)當前運行進程有關存儲管理數據修改系統(tǒng)當前運行進程有關存儲管理數據結構,如將系統(tǒng)當前運行進程頁表指針改為結構,如將系統(tǒng)當前運行進程頁表指針改為指向選定的進程頁表。指向選定的進程頁表。l恢復被選進程上次切換出處理機時的處理恢復被選進程上次切換出處理機時的處理機現場,按原保護的程序計數器值重置程序機現場,按原保護的程序計數器值重置程

4、序計數器,運行新選進程。計數器,運行新選進程。* *3.3.2.進程調度特指選擇進程占用處理機特指選擇進程占用處理機一、一般調度概念什么是調度什么是調度:操作系統(tǒng)管理了系統(tǒng)的有限操作系統(tǒng)管理了系統(tǒng)的有限資源,當有多個進程(即多個進程發(fā)出的請資源,當有多個進程(即多個進程發(fā)出的請求)要使用這些資源時,因為資源的有限性,求)要使用這些資源時,因為資源的有限性,必須按照一定的原則選擇進程(請求)來占必須按照一定的原則選擇進程(請求)來占用資源。這就是調度。用資源。這就是調度。 調度目的調度目的:控制資源使用者的數量控制資源使用者的數量, ,選取資源選取資源使用者許可占用資源或占用資源使用者許可占用資

5、源或占用資源.幾個調度例子幾個調度例子高級調度高級調度:選取輸入井中的作業(yè)(僅限于批:選取輸入井中的作業(yè)(僅限于批作業(yè)調度作業(yè)調度) ),生成根進程,生成根進程. .目的是控制使用系目的是控制使用系統(tǒng)資源的進程數。統(tǒng)資源的進程數。中級調度中級調度:選取進程占用內存或有資格占用:選取進程占用內存或有資格占用內存,又稱進程滾入滾出。內存,又稱進程滾入滾出。低級調度低級調度:選取進程占用處理機:選取進程占用處理機, ,又稱進程又稱進程調度。調度。二、進程調度方式: :當進程運行時可以被系統(tǒng)以某當進程運行時可以被系統(tǒng)以某種原則剝奪其處理機種原則剝奪其處理機. .: :只有當處理機上的進程因變成阻只有當

6、處理機上的進程因變成阻塞狀態(tài)而主動放棄處理機時才重新調度塞狀態(tài)而主動放棄處理機時才重新調度. .1. 進程調度在核心態(tài)進行。進程1內核調度 進程2 內核 調度進程3 內核 調度進程1內核調度進程3 時間片到 I/O請求 時間片到 時間片到 時間片到處理機的執(zhí)行次序.三、引起進程調度因素三、引起進程調度因素: :1 1、進程主動放棄處理機時、進程主動放棄處理機時:正在執(zhí)行的進程執(zhí)行完畢。操作系統(tǒng)在處理進程正在執(zhí)行的進程執(zhí)行完畢。操作系統(tǒng)在處理進程結束系統(tǒng)調用后應請求重新調度。結束系統(tǒng)調用后應請求重新調度。正在執(zhí)行的進程發(fā)出正在執(zhí)行的進程發(fā)出I/OI/O請求,當操作系統(tǒng)代其啟請求,當操作系統(tǒng)代其啟

7、動外設動外設I/OI/O后,在后,在I/OI/O請求沒有完成前要將進程變成請求沒有完成前要將進程變成阻塞狀態(tài),應該請求重新調度。阻塞狀態(tài),應該請求重新調度。正在執(zhí)行的進程要等待其它進程或系統(tǒng)發(fā)出的事正在執(zhí)行的進程要等待其它進程或系統(tǒng)發(fā)出的事件時。如等待另一個進程通訊數據,這時操作系統(tǒng)件時。如等待另一個進程通訊數據,這時操作系統(tǒng)應將現運行進程掛到等待隊列,并且請求重新調度。應將現運行進程掛到等待隊列,并且請求重新調度。* *2 2、為了支持可剝奪的進程調度方式,在以、為了支持可剝奪的進程調度方式,在以下情況發(fā)生時,因為新就緒的進程可能會按下情況發(fā)生時,因為新就緒的進程可能會按某種調度原則剝奪正運

8、行的進程,因此也應某種調度原則剝奪正運行的進程,因此也應該申請進行進程調度該申請進行進程調度:當中斷處理程序處理完中斷,如當中斷處理程序處理完中斷,如I/OI/O中斷、通訊中中斷、通訊中斷,引起某個阻塞進程變成就緒狀態(tài)時,應該請斷,引起某個阻塞進程變成就緒狀態(tài)時,應該請求重新調度。求重新調度。其它任何原因引起有進程從其它狀態(tài)變成就緒狀其它任何原因引起有進程從其它狀態(tài)變成就緒狀態(tài)。態(tài)。* *3 3、為了支持可剝奪調度,即使沒有新就緒、為了支持可剝奪調度,即使沒有新就緒進程進程, ,為了讓所有就緒進程輪流占用處理機,為了讓所有就緒進程輪流占用處理機,可在下述情況下申請進行進程調度可在下述情況下申請

9、進行進程調度:當時鐘中斷發(fā)生當時鐘中斷發(fā)生, ,時鐘中斷處理程序調用有關時間時鐘中斷處理程序調用有關時間片的處理程序,發(fā)現正運行進程時間片到,應請片的處理程序,發(fā)現正運行進程時間片到,應請求重新調度。以便讓其他進程占用處理機。求重新調度。以便讓其他進程占用處理機。在按進程優(yōu)先級進行進程調度的操作系統(tǒng)中,任在按進程優(yōu)先級進行進程調度的操作系統(tǒng)中,任何原因引起進程的優(yōu)先級發(fā)生變化時,應請求重何原因引起進程的優(yōu)先級發(fā)生變化時,應請求重新調度。如進程通過系統(tǒng)調用自愿改變優(yōu)先級時新調度。如進程通過系統(tǒng)調用自愿改變優(yōu)先級時或者系統(tǒng)處理時鐘中斷時,根據各進程等待處理或者系統(tǒng)處理時鐘中斷時,根據各進程等待處理

10、機的時間長短而調整進程的優(yōu)先級。機的時間長短而調整進程的優(yōu)先級。* * 四、調度與切換時機:當發(fā)生引起調度條件,且當前進程無法繼續(xù)運當發(fā)生引起調度條件,且當前進程無法繼續(xù)運行下去時(如發(fā)生各種進程放棄處理機的條件)行下去時(如發(fā)生各種進程放棄處理機的條件)可以馬上進行調度與切換。可以馬上進行調度與切換。當當中斷處理結束或自陷處理結束返回被中斷進中斷處理結束或自陷處理結束返回被中斷進程的用戶態(tài)程序執(zhí)行前,若請求調度標志置上,程的用戶態(tài)程序執(zhí)行前,若請求調度標志置上,即可馬上進行進程調度與切換。如果操作系統(tǒng)即可馬上進行進程調度與切換。如果操作系統(tǒng)支持這種情況下運行調度程序,即實現了剝奪支持這種情況

11、下運行調度程序,即實現了剝奪方式的調度。方式的調度。實時系統(tǒng)還有其他調度與切換時機。實時系統(tǒng)還有其他調度與切換時機。*3.3.3.進程調度算法FCFS:FCFS:誰先到就緒隊列誰先到就緒隊列, ,將處理機分給誰將處理機分給誰. .短進程優(yōu)先短進程優(yōu)先: :取一個下次所需運行時間最取一個下次所需運行時間最短的進程短的進程.(.(該算法能使平均等待時間最短該算法能使平均等待時間最短) )優(yōu)先級調度優(yōu)先級調度: :選優(yōu)先級最高的進程占用處選優(yōu)先級最高的進程占用處理機理機, ,(優(yōu)先級也可動態(tài)改變)(優(yōu)先級也可動態(tài)改變). .輪轉調度法輪轉調度法: :以先來后到的次序以先來后到的次序+ +時間片輪時間

12、片輪轉轉. .多隊列調度法多隊列調度法: :按屬性將就緒進程分類按屬性將就緒進程分類, ,不不同類進程可有不同的調度算法同類進程可有不同的調度算法. .多級反饋隊列調度法多級反饋隊列調度法: :設置多條就緒隊列設置多條就緒隊列, ,進程被調度執(zhí)行后進程被調度執(zhí)行后, ,在被剝奪或放棄處理機在被剝奪或放棄處理機后而在就緒時可以改變其就緒隊列后而在就緒時可以改變其就緒隊列( (見下見下圖)圖). .* *第一級隊列 (FIFO)使用處理機使用處理機完成使用處理機使用處理機完成使用處理機使用處理機完成被剝奪被剝奪被剝奪第二級隊列 (FIFO)第n級隊列 (時間片輪轉)設計另一個多級反饋隊列調度算法的

13、例子:以優(yōu)先級設置多隊列以優(yōu)先級設置多隊列. .各隊列的調度算法采用各隊列的調度算法采用FCFS+FCFS+時間片輪時間片輪轉轉. .進程優(yōu)先級升降原則是進程優(yōu)先級升降原則是: :等待過久升等待過久升, ,輸輸入輸出完成時升入輸出完成時升, ,運行完一個完整時間片運行完一個完整時間片降降進程最初進入就緒隊列以用戶初置優(yōu)先進程最初進入就緒隊列以用戶初置優(yōu)先級為參數級為參數. .* *3.4作業(yè)與進程的關系作業(yè)作業(yè): :是用戶對計算機的一次獨立的使用過是用戶對計算機的一次獨立的使用過程程進程進程: :是分配計算機資源的單位是分配計算機資源的單位, ,是用戶任是用戶任務運行的實體務運行的實體, ,作

14、業(yè)可包含多個進程作業(yè)可包含多個進程( (至少至少一個一個) )批處理系統(tǒng)作業(yè)與進程關系:作業(yè)調度程作業(yè)調度程序每選擇一道作業(yè)運行時序每選擇一道作業(yè)運行時, ,首先為該作業(yè)創(chuàng)首先為該作業(yè)創(chuàng)建一個根進程建一個根進程, ,該進程執(zhí)行作業(yè)控制語言解該進程執(zhí)行作業(yè)控制語言解釋器程序,并可根據需要創(chuàng)建多個子進程釋器程序,并可根據需要創(chuàng)建多個子進程. .* *作業(yè)和進程狀態(tài)轉換圖提交提交后備后備運行運行完成完成作業(yè)輸入作業(yè)輸入作業(yè)調度作業(yè)調度創(chuàng)建進程創(chuàng)建進程作業(yè)終止作業(yè)終止就緒就緒執(zhí)行執(zhí)行等待等待進程調度進程調度分時系統(tǒng)作業(yè)與進程之關系:把用戶的一把用戶的一次上機過程看成是一個交互作業(yè)次上機過程看成是一個交

15、互作業(yè)( (無論從內無論從內部表示及外部特征部表示及外部特征, ,它都有別于批作業(yè)它都有別于批作業(yè)),),系系統(tǒng)為每個終端設備生成一個進程,該進程運統(tǒng)為每個終端設備生成一個進程,該進程運行終端命令解釋器。該進程根據需要還可以行終端命令解釋器。該進程根據需要還可以創(chuàng)建多個子進程。創(chuàng)建多個子進程。支持分時與批處理的系統(tǒng)作業(yè)提交方法:用戶可以通過交互式命令提交子作業(yè)用戶可以通過交互式命令提交子作業(yè)( (如如:at :at -f /root/bin/ss now -f /root/bin/ss now 表示提交一個作業(yè)控表示提交一個作業(yè)控制說明書文件名為制說明書文件名為ssss的作業(yè)到作業(yè)輸入隊列的作

16、業(yè)到作業(yè)輸入隊列. .或直接拍入或直接拍入“shell ss”shell ss”表示馬上生成一個表示馬上生成一個進程執(zhí)行命令解釋器進程執(zhí)行命令解釋器, ,解釋執(zhí)行解釋執(zhí)行ssss中的命令中的命令) ) * *輸入一條終端命輸入一條終端命令令, ,分析命令分析命令后臺命令后臺命令? ?創(chuàng)建子進程執(zhí)行命令創(chuàng)建子進程執(zhí)行命令等子進程返回等子進程返回向終端發(fā)提示符向終端發(fā)提示符否否命令解釋程序執(zhí)行流程:3.53.5線程的引入線程的引入隨著共享內存多隨著共享內存多CPUCPU計算機的發(fā)展,迫計算機的發(fā)展,迫切需要加速單個作業(yè)步的運行速度,事實切需要加速單個作業(yè)步的運行速度,事實上同一個作業(yè)步的工作也是有可并行成份上同一個作業(yè)步的工作也是有可并行成份的。因為進程內程序執(zhí)行的順序性,不可的。因為進程內程序執(zhí)行的順序性,不可能實現進程內可并行成分的并行執(zhí)行。為能實現進程內可并行成分的并行執(zhí)行。為此,線程的概念呼之欲出。此,線程的概念呼之欲出。 在一個進程中可以包含多個可以并發(fā)在一個進

溫馨提示

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

評論

0/150

提交評論