對于批處理作業系統和分時作業系統的計算機系統都屬于多道程式設計系統。在這樣的系統中,往往同時有多個計算問題請求處理。它們都因要使用系統資源而會發生競争。
問題:如何對資源進行管理和配置設定是作業系統中的一個重要問題。
解決:處理器排程擔負着對處理器的配置設定工作,它将決定誰能先占用處理器以及一次能占用處理器多長時間。
在批處理作業系統中,作業排程與程序排程的層次關系如圖:
在作業系統中,把磁盤上用來存放作業資訊的專用區域稱為輸入井。把在輸入井中等待處理的作業稱為後備作業
作業排程
從輸入井中選取後備作業裝入主存儲器的工作稱為作業排程。
原則
1,公平性:對使用者公平,不能無故或無限制地拖延一個作業的執行
2,平衡資源使用:盡可能地使系統資源都處于忙碌
3,極大流量:在機關時間内為盡可能多的作業服務
常用算法
必要條件:系統現有的尚未配置設定的資源可以滿足被選作業的資源要求
1,先來先服務:作業進入輸入井的先後次序來挑選作業
2,計算時間短優先:要求使用者對自己的作業需要計算的時間預先作一個估計。
3,響應比高者優先:響應比=等待時間/計算時間。
注:進行作業排程的時間是在作業全部到達輸入井之後開始。
4,優先級:優先級高的作業優先被選取
5,均衡排程算法:根據作業對資源的要求進行分類,盡可能使得使用不同資源的作業同時執行
程序排程
作業排程選中一個作業且把它裝入主存儲器時,就為該作業建立一個使用者程序。若有多個作業被裝入主存儲器,則就建立了多個使用者程序。這些程序的都為初始狀态“就緒态”。
在單處理器的計算機系統中,每一時刻隻能讓一個程序占用處理器。但如果有多個程序都要競争處理器,就必須按照一定的規則從就緒程序中選取一個程序,讓它占用處理器。這項從就緒程序中選取一個程序,讓它占用處理器的工作稱為程序排程。
切換
一個程序讓出處理器由另一個程序占用處理器的過程。程序的切換是由程序的狀态變化引起的。
常用算法
1,先來先服務
2,最高優先級
3,時間片輪轉
時間片是指允許程序一次占用處理器的最長時間。
總結:
作業從進入系統到最後完成,要經曆兩級排程:作業排程和程序排程。作業排程是進階排程,它的主要功能是根據一定的算法,從輸入井中選中若幹個作業,配置設定必要的資源,如主存、外設等,為它們建立初始狀态為就緒的作業程序。程序排程是低級排程,它的主要功能是根據一定的算法将CPU分派給就緒隊列中的一個程序。
與生活聯系:
郵局的例子,我們将寫好的信封放入信箱,等待郵局的人來取,這個過程是作業排程(每家都有一個信箱,郵局的人取哪些信箱的信)。對于在郵局的信,什麼時候送出,送出哪些這個過程為程序排程。
其實這個過程和我們計算機中的分層思想如出一轍,每層負責各自的功能,使複雜的問題簡單化!