1. 程式人生 > >作業系統處理機排程

作業系統處理機排程

處理機排程:多道程式環境下,動態的把處理機分配給就緒佇列中的一個程序使之執行。

一、處理機排程的基本概念

作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述三級排程。
高階排程(High Scheduling)
中級排程(Intermediate-Level Scheduling)
低階排程(Low Level Scheduling)

1、高階排程(High Scheduling)
又稱作業排程長程排程(Long-Term Scheduling),接納排程(Admission Scheduling)

  • 作業排程決定的細節
    在每次執行作業排程時,都須作出兩個決定:
    接納多少作業——取決於多道程式度。

    接納哪些作業——取決於採用的排程演算法。

2、低階排程(Low Level Scheduling)
也稱為程序排程微觀排程短程排程(Short-Term Scheduling)
決定記憶體就緒佇列中的哪個程序獲得處理機,進行分配工作。是最基本的一種排程,在三種基本OS中都有。

程序排程方式

1)非搶佔方式(Non-preemptive Mode)

一旦處理機分配給某程序,該程序一直執行。決不允許其他程序搶佔已分配執行程序的處理機。

2`)搶佔方式(Preemptive Mode)`

允許排程程式根據某種原則,暫停某個正在執行的程序,將處理機重新分配給另一程序。

3、中級排程(Intermediate-Level Scheduling)


又稱交換排程中程排程(Medium-Term Scheduling)
引入目的:提高記憶體利用率和系統吞吐量。根據條件將一些程序調出或再調入記憶體

三種排程的頻率和複雜度

程序排程:執行頻率最高,演算法不能太複雜,以免佔用太多的CPU時間。分時系統通常10~100ms便進行一次。
作業排程:一個作業執行完畢退出系統時即觸發重新排程一個新作業入記憶體,週期較長,大約幾分鐘一次。因而也允許作業排程演算法花費較多的時間
中級排程:執行頻率基本上介於上述兩種排程之間。

三級排程比較

在這裡插入圖片描述

4、排程佇列模型

不論高階、中級或者低階排程,都涉及到程序佇列,由此形成了三類排程佇列模型。從這三種方式中體驗排程的過程。
僅有程序排程

的排程佇列模型
具有高階和低階排程的排程佇列模型
同時具有三級排程的排程佇列模型

1)僅有程序排程的排程佇列模型

常見情況:分時系統。
通常僅設定程序排程,使用者鍵入的命令和資料,都直接送入記憶體。
排程物件:處於就緒狀態的程序。
組織形式:棧、樹或一個無序連結串列
用何種形式取決於OS型別和採用的排程演算法。

2)具有高階和低階排程的排程佇列模型

批處理系統中,還需要作業排程

3)同時具有三級排程的排程佇列模型

引入中級排程後,程序的狀態變化:
就緒狀態:分為記憶體就緒外存就緒。
阻塞狀態:分為記憶體阻塞外存阻塞
中級排程使程序在上述狀態間變化,並使資料在內外存間互換。

5. 選擇排程方式和排程演算法的若干準則

1)面向使用者的準則
2)面向系統的準則

1)面向使用者的準則
週轉時間短:針對批處理系統的效能指標。作業從提交到完成所經歷的時間。
CPU執行用時Ts
總的等待時間Tw = 在後備佇列中等待 + 就緒佇列上等待+ 阻塞佇列中等待(等待I/O操作用時)

週轉時間T=Ts+Tw
帶權週轉時間W= T/Ts
平均週轉時間、平均帶權週轉時間(n個作業求平均)

在這裡插入圖片描述在這裡插入圖片描述
響應時間快針對分時系統。使用者輸入一個請求(如擊鍵)到系統給出首次響應(如螢幕顯示)的時間
均衡性系統響應時間的快慢與使用者所請求的複雜性相適應。
截止時間的保證針對實時系統的效能指標。開始截止時間和完成截止時間。任務必須按規定的時間開始或完成,排程方式和演算法必須能保證該要求。
優先權準則三大基本OS在排程演算法的選擇時都可遵循。可以使關鍵任務達到更好的指標。

2)面向系統的準則

系統吞吐量高:批處理系統的重要指標。
單位時間內所完成的作業數,跟作業本身(與作業平均長度密切相關)和排程演算法都有關係;
處理機利用率好(主要針對大中型主機)
各類資源的平衡利用(主要針對大中型主機)

不同系統需求各有側重
批處理系統
平均週轉時間短
系統吞吐量高
處理機利用率好
分時系統
響應時間快
均衡
實時系統
截至時間的保證
可預測性