第三章 處理機排程與死鎖(一)
阿新 • • 發佈:2018-12-11
3.1 處理機排程的層次和排程演算法的目標
1.系統執行並不一定存在高階排程
批處理系統有作業排程,分時系統和實時系統不需要作業排程。
2.引入中級排程的主要目的是,提高記憶體利用率和系統吞吐量,根據條件將一些程序調出或再調入記憶體。
3.排程程式也是程式。
4.排程原則:
- 面向使用者的準則;
- 面向系統的準則。
4.1 面向使用者的準則
- 平均週轉時間短
- 響應時間快
- 均衡性
- 截止時間的保證
4.2 面向系統的準則
- 系統吞吐量高
- 處理機利用率高
5.CPU處理時間Ts
週轉時間T=Ts+Tw
帶權週轉時間W=T/Ts
平均帶權週轉時間和平均週轉時間為n個作業求平均。
3.2 作業與作業排程
1.排程佇列模型
- 僅有程序排程的排程佇列
- 具有高階和低階排程的排程佇列模型
- 同時具有三級排程的排程佇列模型
1.1 僅有程序排程的排程佇列模型
- 分時系統
- 排程處於就緒狀態的程序
- 棧、樹、無序連結串列
- 分時系統中把就緒程序組織成FIFO佇列形式:按時間片輪轉方式執行
1.2 具有高階和低階排程的排程佇列模型
批處理系統中,還需要作業排程。
1.3 引入中級排程後,資料在內外存間互換。
就緒狀態:分為記憶體就緒和外存就緒
阻塞狀態:分為記憶體阻塞和外存阻塞
2.先來先服務排程演算法
- 新作業只有當程序執行完或被阻塞才會執行。
- 有利於CPU繁忙型(利用CPU時間長)的作業,而不利於I/O繁忙(利用CPU時間短)的。
- 帶權週轉時間越高,則越不佔優勢。
3.高響應比優先排程演算法
- 優先權=(等待時間+要求服務時間)/要求服務時間
=響應時間/要求服務時間 - 等待時間越長,優先順序越高。
- 同時到達的作業優先權相同,為1。
3.3 程序排程
1.排程程式的任務職能:排程和分派
- 記錄系統中所有程序的有關情況(記錄在PCB中)
- 確定分配處理機的原則(演算法)
- 分配處理機給程序
- 從程序收回處理機
3和4為儲存、更新CPU現場(PCB中程序佇列處理)。
2.程序排程描述工具:Gantt(甘特)圖
3.排程程序
- 上下文切換程式
- 分配程式(分派器)
- 佇列管理程式(排隊器)
4.非搶佔方式的程序排程時機:程式完成、發生某事件阻塞
5.搶佔方式搶佔時間點:作業完成時、作業阻塞時、新作業來時、時間片結束時(根據演算法細節而定)
6.輪轉法程序阻塞時,未用完時間片也要讓出CPU。
7.搶佔方式、優先權原則
問題描述:現有三個程序P1、P2、P3,優先順序由高到低分別為P1、P2、P3,三個程序所需佔用資源如下,請按資源角度為程序排序
P1:I/O2 30ms,CPU 10ms,I/O1 30ms,CPU 10ms,I/O2 10ms
P2:I/O1 20ms,CPU 20ms,I/O2 40ms
P3: CPU 30ms,I/O1 20ms
CPU就緒佇列中按優先順序排序。
I/O裝置無資源搶佔,無優先順序。
3.4 實時排程
1.實時系統指系統能夠在限定響應時間內提供所需水平的服務。
2.硬實時任務能滿足實時任務對截止時間的要求。
3.軟實時任務:聯絡著一個截止時間,但不嚴格,可偶爾錯過,不會對系統造成大的影響。
4.最低鬆弛度優先LLF演算法
- 搶佔時間點:程序執行完、程序I/O阻塞、新程序出現時可能搶佔、某程序鬆弛度為0時發生搶佔(根據題意有時候如此,不同事件不同)
- 鬆弛度=必須完成時間-其本身的執行時間-當前時間
=截止完成時間-還需執行時間-當前時間(時間實為時刻) - 搶佔與否與演算法基本實現有關。
3.5 死鎖概述
1.當程序處於死鎖狀態時,若無外力作用,它們都無法再向前推進。
2.資源分類
- 可剝奪性資源和非可剝奪性資源
- 永久性資源和臨時資源
3.產生死鎖的必要條件:
- 競爭資源
- 程序間推進順序非法