作業系統4——處理機排程與死鎖
作業系統4——處理機排程與死鎖
——2018.12.11
文章目錄
零、目標
- 處理機排程的層次和排程演算法的目標
- 作業排程的三種演算法:先來先服務、短作業優先和高優先權優先
- 程式排程
- 死鎖的定義、產生死鎖的必要條件、死鎖的原因
- 預防死鎖
- 避免死鎖:安全狀態,銀行家演算法
一、處理機排程的層次
1. 高階排程
- 作業排程或長程排程
- 主要任務是按一定的原則對外存上處於後備狀態的作業進行選擇,給選中的作業分配記憶體、輸入/輸入裝置等必要的資源,並建立相應的程式,放入就緒佇列,以使該作業的程式獲得競爭處理機的權利
- 也稱為接納排程
- 高階排程的時間尺度通常是分鐘、小時或天
2. 中級排程
- 引入目的是為了提高記憶體利用率和系統吞吐量,使那些暫時不能執行的程式不再佔用寶貴的記憶體資源,而將他們調至外存上去等待。
- 主要任務是按照給定的原則和策略,將處於外存對換區中已經具備執行條件的就緒程式調入記憶體,或將處於記憶體就緒狀態和記憶體阻塞狀態的程式交換到外存對換區。
3. 低階排程:
- 程式排程或短程排程
- 主要任務是按照某種策略和方法選取一個處於就緒狀態的程式,將處理機分配給它
- 常見的低階排程有搶佔式和非搶佔式兩種
- 低階排程的時間尺度通常是毫秒級的,由於低階排程演算法的頻繁使用,要求實現時做到高效
二、排程演算法
1.先來先服務排程演算法
- 演算法簡單,易於實現
- 有利於長作業,不利於短作業
- 有利於CPU繁忙型作業,不利於I/O繁忙型作業,可能導致I/O裝置和CPU利用率低
- 未考慮作業的緊迫程度
例:設有4道作業,它們的提交時間及執行時間如下表,若按先來先服務排程演算法進行排程,試計算4個作業的平均週轉時間和平均帶權週轉時間。
作業 到達時間 服務時間 A 0 1 B 1 100 C 2 1 D 3 100 解:
週轉時間:指從作業被提交給作業系統開始,到作業完成為止的這段時間間隔
作業 執行時刻 週轉時間 A 0-1 1 B 1-101 100 C 101-102 100 D 102-202 199
平均週轉時間=(1+100+100+199)/4
帶權週轉時間:週轉時間/執行時間
平均帶權週轉時間=(1/1+100/100+100/1+199/100)/4
2.短作業優先排程演算法
- 非搶佔式
例:
- 搶佔式:最短剩餘時間優先排程演算法
- 當一個新程式進入就緒佇列時,若其需要的執行時間比當前執行程式的剩餘時間段,則它將搶佔CPU
例:
3.優先權排程演算法
- 基本思想:照顧緊迫型作業
- 優先權通常用優先數來衡量。在某些系統中,優先數越大優先權越高;而在另一些系統中,優先數越大優先權越小。
- 按照排程方式分類:
- 非搶佔式優先權演算法
- 搶佔式優先權演算法
- 按優先權型別分類
- 靜態優先權:在建立程式時確定的,確定之後再在整個程式執行期間不再改變。
- 確定靜態優先權的依據:
程式型別: 系統、使用者
程式對資源的需求:執行時間、資源數量
使用者要求:緊迫程度
到達時間:先到則優先權高 - 動態優先權:是指在建立程式時,根據程式的特點及相關情況確定一個優先權,在程式執行過程中再根據情況變化調整優先權
- 調整動態優先權的原則:
佔CPU時間越長,優先權越低
等待時間越長,優先權越
4.最高響應比優先排程演算法
- 最高響應比優先排程演算法是對短作業優先排程演算法和先來先服務演算法色一種綜合
- 在每次排程作業時,先計算後備作業佇列中每個作業的響應比,然後挑選響應比最高投入執行
- 響應比定義如下:
例:
5.時間片輪轉排程演算法
- 基本思想:
- 按先來先服務原則排隊
- 時間片及時鐘中斷
例:
時間片為1:
時間片為4:
三、死鎖
1.死鎖的概念
- 指多個程式因競爭共享資源而造成的一種僵局,若無外力作用,這些程式都將永遠不能再向前推進
- 一組程式中,每個程式都無線等待被改組程式中另一程式所佔有的資源,因而永遠無法得到的資源,這種現象稱為程式死鎖,這一組程式就稱為死鎖程式
2.產生死鎖的原因
- 競爭資源
- 推進順序不當
3.產生死鎖的必要條件
- 互斥條件
- 程式對所分配到的資源進行排他性的使用
- 請求和保持條件
- 程式已至少保持了一個資源,但又提出了新的資源請求,而該資源又已被其他程式佔有
- 不可搶佔條件
- 程式已獲得的資源在未使用完之前不能被搶佔,只能在程式使用完時自己釋放
- 迴圈等待條件
- 在發生死鎖是,必然存在一個程式—資源迴圈等待的環形鏈
4. 處理死鎖的方法
- 預防死鎖:設定某些限制條件,破壞4個條件
- 避免死鎖:資源動態分配,防止進入不安全狀態
- 檢測死鎖:設定檢查機構,定時檢查系統是否出現死鎖
- 接觸死鎖:已出現死鎖
相關文章
- [作業系統]死鎖作業系統
- 作業系統知識回顧(4)-死鎖作業系統
- 猿考研之作業系統篇二(處理機排程)作業系統
- 批處理作業排程-分支界限法
- 【作業系統】4.程序排程演算法作業系統演算法
- 作業系統(5) 死鎖的概念 死鎖產生的必要條件 死鎖的處理策略 預防死鎖 避免死鎖 死鎖的檢測和解除 銀行家演算法作業系統演算法
- 作業系統課程設計——處理機和程式排程演算法及記憶體分配回收機制作業系統演算法記憶體
- 3.1處理機排程概述
- 計算機作業系統處理機排程讀後感—–關於程式概念的剖析。從RING3到RING0(32位作業系統)計算機作業系統
- 【Oracle】死鎖的產生與處理Oracle
- 作業系統之排程演算法作業系統演算法
- 作業系統複習(程式、執行緒、死鎖)作業系統執行緒
- Mysql如何處理死鎖MySql
- 作業系統精髓設計原理 程式排程作業系統
- 2.4.1 死鎖的基本概念——作業系統筆記作業系統筆記
- 計算機組成原理與作業系統 第二章 處理機組成與管理計算機作業系統
- 如何處理執行緒死鎖執行緒
- Oracle排程作業引起的空間驟增問題處理記錄Oracle
- 2.2.1 處理機排程的概念及層次
- 【作業系統2】作業系統啟動過程與異常/中斷,系統呼叫作業系統
- 使用FUTURE 中的訊息避免計劃排程的批處理作業 - CodeOpinion
- 作業系統已死?容器勝出!作業系統
- mysql事務處理與鎖機制MySql
- 課程排課系統:智慧排課+線上約課+直播上課+作業打卡!
- 07 系統排程
- GaussDB(DWS)應用實踐丨負載管理與作業排隊處理方法負載
- Schedule 排程系統設計(單機版)
- iOS系統資源排程機制解析iOS
- 計算機作業系統|作業系統引論計算機作業系統
- 系統設計:如何設計一個分散式作業排程器 ?- Rakshesh分散式
- Go中協程死鎖Go
- 作業系統與Linux作業系統Linux
- 解決方案| 快對講排程系統:高效協作
- 【作業系統】磁碟的四種基本排程演算法(圖表說明)作業系統演算法
- ucore作業系統學習(六) ucore lab6執行緒排程器作業系統執行緒
- 浙大人工智慧演算法與系統課程作業指南系列(一)口罩識別的資料處理部分人工智慧演算法
- 作業系統 訊號量vs互斥鎖作業系統
- 【作業系統】程式的描述與控制[執行緒](4)作業系統執行緒