1. 程式人生 > >作業系統——第三章筆記(一)

作業系統——第三章筆記(一)

處理及排程與死鎖
1.處理機排程:多道程式環境下,動態的把處理機分配給就緒佇列中的一個程序使之執行。
2.提高處理機的利用率、改善系統性能,很大程度上取決於處理機排程的效能。
3.處理機排程便成為OS設計的中心問題之一。分配的任務由處理機排程程式完成。
一.處理機排程的基本概念
作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述三級排程。
1.高階排程(High Scheduling)(管理的方面比較多)
又稱作業排程或長程排程(Long-Term Scheduling),接納排程(Admission Scheduling)
主要在早期批處理階段,處理在外存上的作業。
1)決定外存後備佇列中的哪些作業調入記憶體;
2)為它們建立程序、分配必要的資源;
3)將新建立的程序排在就緒佇列上,準備執行。
PS:外存的作業形成佇列,排程在佇列中進行選擇,選擇後建立程序。
2.中級排程(Intermediate-Level Scheduling)
又稱交換排程或中程排程(Medium-Term Scheduling)
引入目的:提高記憶體利用率和系統吞吐量。根據條件將一些程序調出或再調入記憶體。
3.低階排程(Low Level Scheduling)
也稱為程序排程、微觀排程或短程排程(Short-Term Scheduling)
決定記憶體就緒佇列中的哪個程序獲得處理機,進行分配工作。是最基本的一種排程,在三種基本OS中都有。
程序排程的方式:非搶佔方式、搶佔方式

|程序排程方式 |程序排程時機 |特點
|非搶佔方式 |程式完成;發生某事件阻塞;|實現簡單、系統開銷小;功能也簡單,適用於大多數批處理OS,但在要求較嚴格的實時系統,不宜採用該方式
|搶佔方式 | 程式完成;發生某事件阻塞;新程序就緒; |搶佔的原則有很多種:優先權高的可以搶佔優先順序低的程序的處理機。短作業(程序)可以搶佔長作業(程序)的處理機。各程序按時間片執行,一個時間片用完時重新進行排程。

排程程式的任務職能:排程和分派。
(1) 記錄系統中所有程序的有關情況
(2) 確定分配處理機的原則
(3) 分配處理機給程序
(4) 從程序收回處理機
PS:
1.三種排程的頻率和複雜度
程序排程:執行頻率最高,演算法不能太複雜,以免佔用太多的CPU時間。分時系統通常10~100ms便進行一次。
作業排程:一個作業執行完畢退出系統時即觸發重新排程一個新作業入記憶體,週期較長,大約幾分鐘一次。因而也允許作業排程演算法花費較多的時間。
中級排程:執行頻率基本上介於上述兩種排程之間。
2.三種排程程式的比較
排程型別 執行頻率 執行時間 演算法複雜性
程序排程 高 短 低
中程排程 中等 較短 中等
作業排程 低 長 高

二.排程佇列模型
不論高階、中級或者低階排程,都涉及到程序佇列,由此形成了三類排程佇列模型。從這三種方式中體驗排程的過程。
① 僅有程序排程的排程佇列模型
② 具有高階和低階排程的排程佇列模型
③ 同時具有三級排程的排程佇列模型
1)僅有程序排程的排程佇列模型
常見情況:分時系統。(時間片排程:先來先入隊)
通常僅設定程序排程,使用者鍵入的命令和資料,都直接送入記憶體。
排程物件:處於就緒狀態的程序。
組織形式:棧、樹或一個無序連結串列
用何種形式取決於OS型別和採用的排程演算法。如:分時系統中把就緒程序組織成FIFO佇列形式:按時間片輪轉方式執行。
程序排程過程中每個程序在執行時按規定的時間片演算法,在給定時間片內任務有三種執行情況:
① 完成工作,釋放處理機進入完成狀態
② 未完成,將該任務再放入就緒佇列末尾
③ 因某事件而被阻塞,被OS放入阻塞佇列
2)具有高階和低階排程的排程佇列模型
批處理系統中,還需要作業排程
3)同時具有三級排程的排程佇列模型
 引入中級排程後,程序的狀態變化:
就緒狀態:分為記憶體就緒和外存就緒。
阻塞狀態:分為記憶體阻塞和外存阻塞。
中級排程使程序在上述狀態間變化,並使資料在內外存間互換。
三、選擇排程方式和排程演算法的若干準則
不同的情況和物件需求不同,適用的方式和演算法也不同,所以沒有哪種演算法是最好的。
1)面向使用者的準則
 週轉時間短:
針對批處理系統的效能指標。作業從提交到完成所經歷的時間。
 響應時間快:針對分時系統。使用者輸入一個請求(如擊鍵)到系統給出首次響應(如螢幕顯示)的時間
 均衡性:系統響應時間的快慢與使用者所請求的複雜性相適應。
 截止時間的保證:針對實時系統的效能指標。開始截止時間和完成截止時間。任務必須按規定的時間開始或完成,排程方式和演算法必須能保證該要求。
 優先權準則:三大基本OS在排程演算法的選擇時都可遵循。可以使關鍵任務達到更好的指標。
2)面向系統的準則
 系統吞吐量高:批處理系統的重要指標。
單位時間內所完成的作業數,跟作業本身(與作業平均長度密切相關)和排程演算法都有關係;
 處理機利用率好(主要針對大中型主機)
 各類資源的平衡利用(主要針對大中型主機)
不同系統需求各有側重,所以在選擇演算法上也有不同。
各系統的需求情況:
 批處理系統(作業量小的先做):平均週轉時間短、系統吞吐量高、處理機利用率好。
 分時系統:響應時間快、均衡。
 實時系統:截至時間的保證、可預測性。
PS:
1.時長的表示:
1)CPU執行用時Ts
2)總的等待時間Tw = 在後備佇列中等待 + 就緒佇列上等待+ 阻塞佇列中等待(等待I/O操作用時)
3)週轉時間T=Ts+Tw
4)帶權週轉時間W= T/Ts
5)平均週轉時間、平均帶權週轉時間(n個作業求平均)
2.處理機的利用率就是CPU的真正工作時間。