计算机操作系统:处理机的调度
? ? ? ? ? 處理機調度層次:
? ? ? ? ? ? ? ? ? ? 1.高級調度:它調度的對象是作業。其主要功能是根據某種算法,決定講外存上處于后備隊列中的哪幾個作業調入內存,為它們創建進程,分配必要的資源,并將它們放入就緒隊列。
? ? ? ? ? ? ? ? ? ? 2.低級調度:它調度的對象是進程。其主要功能是根據某種算法,決定就緒隊列中的哪個進程應獲得處理機,并由分派程序將處理機分配給選中的進程。
? ? ? ? ? ? ? ? ? ? 3.中級調度:又稱內存調度。其主要目的是提高內存利用率和系統吞吐量。為此,應把那些暫時不能運行的進程,調至外存等待。當內存稍有空閑時,把外存上的那些已經具備運行條件的就緒進程重新調入內存。
? ? ? ? ? 處理機調度算法的共同目標:
? ? ? ? ? ? ? ? ? ? 1.資源利用率。為提高系統資源利用率,應使系統中的處理機和其它所有資源都盡可能保持忙碌狀態。
? ? ? ? ? ? ? ? ? ? 2.公平性。應使諸進程獲得合理的CPU時間,不會發生饑餓的現象。使相同類型的進程獲得相同的服務,對于不同重要性的進程,則應提供不同的服務。
? ? ? ? ? ? ? ? ? ? 3.平衡性。系統中會有多種類型的進程(計算型,I/O型),調度算法要使系統中CPU和各種外部設備都經常處于忙碌狀態,保持系統資源使用的平衡性。
? ? ? ? ? ? ? ? ? ? 4.策略強制執行。對所制定的策略其中包括安全策略,只要需要,就必須予以準確地執行,即使造成某些工作的延遲也要執行。
? ? ? ? ? 批處理系統中的作業:
? ? ? ? ? ? ? ? ? ? 1.作業和作業步?
? ? ? ? ? ? ? ? ? ? ? ? ? ? 1>作業:作業是一個比程序更為廣泛的概念,它不僅包含了通常的程序和數據,而且還應配有一份作業說明書,系統根據說明書來對程序的運行進行控制。
? ? ? ? ? ? ? ? ? ? ? ? ? ? 2>作業步:作業運行期間,每個作業都必須經過若干個相對獨立,又相互關聯的順序加工步驟才能得到結果,我們把每一個加工步驟稱為一個作業步。
? ? ? ? ? ? ? ? ? ? 2.作業控制塊:每當一個作業進入系統時,便由"作業注冊"程序為該作業建立一個作業控制塊JCB(為了管理和調度作業),其中保存了系統對作業進行管理和調度所需的全部信息。通常在JCB中包含的內容有:作業標識,用戶名稱,用戶賬號,作業類型,作業狀態,調度信息,資源需求,資源使用情況等。
? ? ? ? ?作業調度的主要任務:
? ? ? ? ? ? ? ? ? ? 1.接納多少個作業:在每一次進行作業調度時,應當從后備隊列中選取多少作業調入內存,取決于多道程序度(即允許多少個作業同時在內存中運行)。
? ? ? ? ? ? ? ? ? ? 2.接納哪些作業:根據作業調度算法決定首先調度哪些作業
? ? ? ? 先來先服務調度算法:每次調度是從就緒的進程隊列中選擇一個最先進入該隊列的進程,為之分配處理機,使之投入運行。該進程一直運行到完成或發生某事件而阻塞后,進程調度程序才將該處理機分配給其他進程。
? ? ? ? 短作業優先調度算法:由于在實際情況中,短作業(進程)占有很大比例,為了能使它們能比長作業優先執行而產生了這個算法。
? ? ? ? 優先級調度算法:基于作業的緊迫程度,由外部賦予作業響應的優先級,調度算法是根據該優先級進行調度的。
? ? ? ? 高響應比優先調度算法:不僅考慮了作業的等待時間,又考慮作業運行時間的調度算法,因此既照顧了短程作業,又不致使長作業的等待時間過長,從而改善了處理機調度性能。優先權=(等待時間+要求服務時間)/要求服務時間,由上式可以看出:如果作業的等待時間相同,則要求服務的時間越短,其優先權越高;當要求服務的時間相同時,作業的優先權又決定其等待時間;對于長作業的優先級,可以隨之等待時間的增加而提高,當其等待時間足夠長時,也可獲得處理機。
? ? ? ? 進程調度的任務:
? ? ? ? ? ? ? ? 1.保存處理機的現場信息,如程序計數器,多個通用寄存器的內容等
? ? ? ? ? ? ? ? 2.按某種算法選取進程,將其狀態改為運行狀態,并準備把處理機分配給它
? ? ? ? ? ? ? ? 3.把處理器分配給進程,將選中進程的控制塊內有關處理機現場的信息裝入處理器的各個寄存器中,把處理器的控制權交予該進程,讓它從上次的斷點恢復運行。
? ? ? ? 進程調度機制:
? ? ? ? ? ? ? ? 1.排隊器:為了提高進程調度的效率,應事先將系統中的所有就緒進程按照一定的策略排成一個或多個隊列,以便調度程序最快地找到它。
? ? ? ? ? ? ? ? 2.分派器:分派器根據進程調度程序所選定的進程,將其從就緒隊列中取出,然后進行從分派器到新選出進程間的上下文切換,將處理機分配給新選出的進程。
? ? ? ? ? ? ? ? 3.上下文切換器:在對處理機進行切換時,會發生兩對上下文的切換操作。第一對是OS保存當前進程的上下文,即把當前進程的處理機寄存器內容保存到該進程的進程控制塊內的相應單元,再裝入分配程序上下文,以便分配程序運行;第二對是移除分派程序的上下文,而把新選進程的CPU現場信息裝入到處理機的相應寄存器中,以便新選進程運行。
? ? ? ?進程調度方式:
? ? ? ? ? ? ? ? 1.非搶占方式:一旦把處理機分配給某進程后,就一直讓它運行下去,絕不會因為時鐘中斷或任何其它原因去搶占當前正在運行進程的處理機,直至該進程完成,或發生某事而被阻塞時,才把處理機分配給其它進程。
? ? ? ? ? ? ? ? 2.搶占方式:這種調度方式允許調度程序根據某些原則,去暫停某個正在執行的進程,將已分配給該進程的處理機重新分配給另一個進程。
? ? ? "搶占"的原則:
? ? ? ? ? ? ? ? 1.優先權原則:指允許優先級高的新到進程搶占當前進程的處理機。
? ? ? ? ? ? ? ? 2.短進程優先原則:指允許新到的短進程可以搶占當前長進程的處理機
? ? ? ? ? ? ? ? 3.? 時間片原則:即各進程按時間片輪轉運行時,當正在執行的進程的一個時間片用完后,便停止該進程的執行而重新進行調度。
? ? ? ?輪轉調度算法:讓就緒隊列上的每個進程每次僅運行一個時間片。進程的切換時機分兩種情況:1>時間片尚未用完,進程便已經完成;2>一個時間片用完時。對于時間片大小較為可取的是略大于一次典型的交互所需要的時間,使大多數交互式進程能在一個時間片內完成,從而可以獲得很小的響應時間。
? ? ? 優先級調度算法:把處理機分配給就緒隊列中優先級最高的進程,該算法又分兩種。
? ? ? ? ? ? ? ?1.非搶占式優先級調度算法:一旦把處理機分配給就緒隊列中優先級最高的進程后,該進程便一直執行下去直至完成,或因該進程發生某事件而放棄處理機時,系統方可將處理機重新分配給另一優先級最高的進程。
? ? ? ? ? ? ? ?2.搶占式優先級調度算法:把處理機優先分配給優先級最高的進程,使之執行。但在其執行期間,只要出現了另一個優先級更高的進程,調度程序就將處理機分配給新到的優先級最高的進程。
? ? ? 多隊列調度算法:該算法將系統中的進程就緒隊列從一個拆分成若干個,將不同算法類型或性質的進程固定分配在不同的就緒隊列,不同的就緒隊列采用不同的調度算法,一個就緒隊列中的進程可以設置不同的優先級,不同的就緒隊列本身也可以設置不同的優先級。多隊列調度算法由于設置多個就緒隊列,因此對每個就緒隊列就可以實施不同的調度算法,因此,系統針對不同的用戶進程的需求,很容易提供多種調度策略。
? ? ? 多級反饋隊列調度算法:該算法不比事先知道各種進程所需的執時間,還可以較好地滿足各種類型進程的需要。其設置了多個就緒隊列,并為每個隊列賦予不同的優先級。第一個隊列的優先級最高,其余隊列優先級逐個降低。該算法為不同隊列中的進程所賦予的執行時間片的大小也各不相同,在優先級愈高的隊列中,其時間片就愈小。每個隊列都采用FCFS算法,當新進程進入內存后,首先將它放入第一隊列的末尾,按FCFS原則等待調度。當輪到該進程執行時,如它能在該時間片內完成,便可撤離系統。否則,即它在一個時間片結束尚未完成,調度程序將其轉入第二隊列的末尾等待調度;如果它在第二隊列中運行一個時間片后仍未完成,再依次將它放入第三隊列,以此類推。調度程序首先調度最高優先級隊列中的諸進程運行,僅當第一隊列空閑時才調度第二隊列中的進程運行。
? ? ? 基于公平原則的調度算法:?
? ? ? ? ? ? ? ?1.保證調度算法
? ? ? ? ? ? ? ?2.公平分享調度算法
? ? ? 實時調度算法的分類,根據實時任務的性質,可將實時調度的算法分為硬實時調度算法和軟實時調度算法;按調度方式,則可分為非搶占式調度算法和搶占式調度算法:
? ? ? ? ? ? ? ? ?1.非搶占式調度算法:
? ? ? ? ? ? ? ? ? ? ? ? ?1>非搶占式輪轉調度算法:將實時任務排成一個輪轉隊列,調度程序每次選擇隊列中第一個任務投入運行。當該任務完成后,便把它掛在輪轉隊列的末尾等待。
? ? ? ? ? ? ? ? ? ? ? ? ?2>非搶占式優先調度算法:系統把優先級較高的實時任務安排到隊首,等待當前任務自我終止或運行完后,便可去調度執行隊首的高優先進程。
? ? ? ? ? ? ? ? ?2.搶占式調度算法:
? ? ? ? ? ? ? ? ? ? ? ? ?1>基于時鐘中斷的搶占式優先級調度算法:比當前任務優先級高的任務達到時,并不立即搶占當前任務的處理機,而是等到時鐘中斷發生時,調度程序才剝奪當前任務的優先級。
? ? ? ? ? ? ? ? ? ? ? ? ?2>立即搶占的優先級調度算法:一旦外部出現中斷,只要當前任務未處于臨界區,便能立即剝奪當前任務的執行,把處理機分配給請求中斷的緊迫任務。
? ? ? ?最早截止時間優先EDF算法:根據任務的截止時間確定任務的優先級,任務的截止時間愈早,其優先級越高。
? ? ? ? ? ? ? 1.非搶占式調度方式用于非周期實時任務:
? ? ? ? ? ? ? 2.搶占式調度方式用于周期實時任務:
? ? ? ? ? ? ? ?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的计算机操作系统:处理机的调度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机操作系统:进程
- 下一篇: 计算机操作系统:存储器的管理