資源描述:
《《處理機調度》課件》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、第三章處理機調度(CPU調度)無論在多道批處理系統(tǒng)還是分時系統(tǒng)中,系統(tǒng)中的用戶進程數都遠遠超過處理機數,除用戶進程要占用處理機外,操作系統(tǒng)還要建立若干個系統(tǒng)進程完成系統(tǒng)功能。這么多的進程競爭處理機,就要求系統(tǒng)提供進程調度功能,以便采用一些策略,將處理機動態(tài)地分配給系統(tǒng)中的各個就緒進程,使之執(zhí)行。分配處理機的任務是由處理機調度程序完成的;處理機是計算機最重要的資源,如何提高處理機的利用率及改善系統(tǒng)性能,在很大程度上取決于處理機調度性能的好壞,處理機調度成為操作系統(tǒng)設計中心工作。要解決的問題WHAT:按什么原則分配C
2、PU—進程調度算法WHEN:何時分配CPU—進程調度的時機HOW:如何分配CPU—CPU調度過程(進程的上下文切換)一批作業(yè)從進入系統(tǒng)到作業(yè)運行完畢可能經歷三級調度——高級、低級和中級調度。一.高級調度(HighScheduling)又稱為作業(yè)調度接納調度或長程調度,用于批處理系統(tǒng),確定將外存后備隊列中哪些作業(yè)調入內存,并為它們創(chuàng)建進程。實時系統(tǒng)和分時系統(tǒng)的前臺作業(yè)不需要作業(yè)調度。每次作業(yè)調度時,都必須做出兩個決定:1)接納多少個作業(yè):取決于多道程序度。2)接納哪些作業(yè)(用什么調度算法):先來先服務、短作業(yè)優(yōu)先、
3、優(yōu)先權、響應比優(yōu)先。3.1處理機調度的基本概念3.1.1高級、低級和中級調度響應/運行二.低級調度(進程調度,短程調度)進程調度的任務是控制協(xié)調進程對CPU的競爭,即按照一定的調度算法從就緒隊列中選中一個進程,把CPU的使用權交給被選中的進程。它是最基本的一種調度,批處理系統(tǒng),實時系統(tǒng)和分時系統(tǒng)都必須有進程調度。它通過進程調度程序來完成。1.進程調度程序的主要功能可描述如下:(1)記錄系統(tǒng)中各進程的狀況為了很好地實現(xiàn)進程調度,進程調度程序首先必須管理系統(tǒng)中各進程的PCB,將進程的狀態(tài)變化及資源需求情況及時地記錄到
4、PCB中。通過PCB變化來準確地掌握系統(tǒng)中所有進程的狀態(tài)特征和執(zhí)行情況。(2)選擇進程真正占有CPU這是進程調度的實質,即按照系統(tǒng)規(guī)定的調度策略從就緒隊列中選擇一個進程占有CPU執(zhí)行。進程調度依據的算法與系統(tǒng)的設計目標相一致。對于不同的系統(tǒng),通常采用不同的調度策略。對于批處理系統(tǒng)常采用短進程的進程優(yōu)先,以減少各進程的周轉時間。對于分時系統(tǒng),更多地采用時間片輪轉。(3)進行進程上下文的切換當進程調度選中一個進程占有CPU時,進程調度程序要做的主要工作則是進行進程上下文切換:將正在執(zhí)行進程的運行現(xiàn)場保留在該進程的PC
5、B中,以便以后該進程恢復執(zhí)行。將剛選中進程的運行現(xiàn)場恢復起來,并將CPU的控制權交給被選中進程,使其執(zhí)行。2.進程調度方式(1)非搶占方式(Nonpreemptivemode)在非搶占方式下,調度程序一旦把CPU分配給某一進程后便讓它一直運行下去,直到進程完成或發(fā)生某事件而不能運行時,才將CPU分給其它進程。這種調度方式通常用在批處理系統(tǒng)中。它的主要優(yōu)點是簡單、系統(tǒng)開銷小。(2)搶占方式(Preemptivemode)當一個進程正在執(zhí)行時,系統(tǒng)可以基于某種策略剝奪CPU給其它進程。剝奪的原則有:優(yōu)先權原則、短進程
6、優(yōu)先原則、時間片原則。顯然這種調度方式多用在分時系統(tǒng)和實時系統(tǒng)中,以便及時響應各進程的請求。3.進程調度的時機所謂進程調度的時機,是指什么情況下引起進程調度程序工作。進程調度的時機是與進程調度的方式有關的。進程調度的時機如下:正在執(zhí)行的進程正確完成,或由于某種錯誤而終止運行(陷阱或中斷);執(zhí)行中的進程提出I/O請求,等待I/O完成時;在分時系統(tǒng)中,按照時間片輪轉,分給進程的時間片用完時;按照優(yōu)先級調度時,有更高優(yōu)先級進程變?yōu)榫途w時(搶占方式);在進程通訊中,執(zhí)行中的進程執(zhí)行了某種原語操作,如wait操作、阻塞原語
7、和喚醒原語時,都可能引起進程調度。三.中級調度(中程調度)中級調度使暫時停止的進程不再占用寶貴的內存資源,將它們調到外存上去成為掛起狀態(tài)。當處于掛起就緒的進程重新具備運行條件且內存稍有空閑時,中級調度將它重新調入內存,掛在活動就緒隊列上等待進程調度。中級調度實質上就是存儲管理中的對換功能。進程調度頻率最高(10~100ms/次)調度算法簡單快速;作業(yè)調度頻率最低約幾分鐘一次,調度算法允許花費較多的時間;中級調度介于兩者之間。3.1.2.調度隊列模型1.僅有進程調度的調度隊列模型在分時系統(tǒng)中,通常僅有進程調度,采用
8、FIFO算法。CPU就緒隊列阻塞隊列時間片完進程調度等待事件事件出現(xiàn)交互用戶完成2.具有高級和低級調度的調度隊列模型在批處理系統(tǒng)中,不僅需要進程調度而且需要作業(yè)調度。CPU就緒隊列阻塞隊列時間片完進程調度事件1出現(xiàn)后備隊列完成阻塞隊列事件2出現(xiàn)阻塞隊列事件n出現(xiàn)…...等待事件1等待事件2等待事件n……作業(yè)調度3.具有三級調度的調度隊列模型在具有三級調度系統(tǒng)中,增加了在外