操作系統--處理器調度
對於批處理操作系統和分時操作系統的計算機系統都屬於多道程序設計系統。在這種系統中,往往同一時候有多個計算問題請求處理。它們都因要使用系統資源而會發生競爭。
問題:怎樣對資源進行管理和分配是操作系統中的一個重要問題。
解決:處理器調度擔負著對處理器的分配工作,它將決定誰能先占用處理器以及一次能占用處理器多長時間。
在批處理操作系統中,作業調度與進程調度的層次關系如圖:
在操作系統中,把磁盤上用來存放作業信息的專用區域稱為輸入井。把在輸入井中等待處理的作業稱為後備作業
作業調度
從輸入井中選取後備作業裝入主存儲器的工作稱為作業調度。
原則
1,公平性:對用戶公平。不能無故或無限制地遲延一個作業的運行
2,平衡資源使用:盡可能地使系統資源都處於忙碌
3。極大流量:在單位時間內為盡可能多的作業服務
經常使用算法
必要條件:系統現有的尚未分配的資源能夠滿足被選作業的資源要求
1,先來先服務:作業進入輸入井的先後次序來挑選作業
2。計算時間短優先:要求用戶對自己的作業須要計算的時間預先作一個預計。
3,響應比高者優先:響應比=等待時間/計算時間。
註:進行作業調度的時間是在作業所有到達輸入井之後開始。
4,優先級:優先級高的作業優先被選取
5。均衡調度算法:依據作業對資源的要求進行分類,盡可能使得使用不同資源的作業同一時候運行
進程調度
作業調度選中一個作業且把它裝入主存儲器時,就為該作業創建一個用戶進程。若有多個作業被裝入主存儲器。則就創建了多個用戶進程。
這些進程的都為初始狀態“就緒態”。
在單處理器的計算機系統中。每一時刻僅僅能讓一個進程占用處理器。但假設有多個進程都要競爭處理器,就必須依照一定的規則從就緒進程中選取一個進程,讓它占用處理器。這項從就緒進程中選取一個進程,讓它占用處理器的工作稱為進程調度。
切換
一個進程讓出處理器由還有一個進程占用處理器的過程。
進程的切換是由進程的狀態變化引起的。
經常使用算法
1。先來先服務
2,最高優先級
3。時間片輪轉
時間片是指同意進程一次占用處理器的最長時間。
總結:
作業從進入系統到最後完畢,要經歷兩級調度:作業調度和進程調度。作業調度是高級調度,它的主要功能是依據一定的算法,從輸入井中選中若幹個作業,分配必要的資源,如主存、外設等,為它們建立初始狀態為就緒的作業進程。進程調度是低級調度。它的主要功能是依據一定的算法將CPU分派給就緒隊列中的一個進程。
與生活聯系:
郵局的樣例,我們將寫好的信封放入信箱,等待郵局的人來取。這個過程是作業調度(每家都有一個信箱,郵局的人取哪些信箱的信)。對於在郵局的信,什麽時候送出,送出哪些這個過程為進程調度。
事實上這個過程和我們計算機中的分層思想如出一轍,每層負責各自的功能,使復雜的問題簡單化!
操作系統--處理器調度