第三章 程序排程與死鎖

2022-05-07 13:18:10 字數 2408 閱讀 1390

程序排程的功能

程序排程的功能由作業系統的程序程式來完成

按照某種策略和演算法從就緒態程序中為當前空閒的cpu選擇在其上執行的新程序

程序排程的功能是什麼?

按照某種策略和演算法從就緒態程序中選擇新程序執行。

需要程序排程的時機

1.程序正常或異常結束 程序阻塞 有更高優先順序程序到來,時間片用完時都會導致程序排程

程序排程的功能

按照某種策略和演算法從就緒態程序中為當前空閒的cpu選擇在其上執行的新程序

程序排程的時機

程序正常或異常結束,程序阻塞 有更高優先順序程序到來,時間片用完時,都會導致程序排程。

程序排程演算法

先來先服務的排程演算法 

短程序優先排程演算法

優先權排程演算法

時間片輪轉排程演算法

多級佇列排程演算法

多級反饋佇列排程演算法

什麼樣的演算法是好的演算法?

作業從提交給系統開始,到作業完成,話費時間短 周轉時間短

從使用者提交作業多開始 到系統開始響應,話費時間短

保證作業在開始截止時間前開始,在 完成截止時間前完成

系統在單位時間內完成的作業量多 

cpu的利用率盡可能高

1.周轉時間短 2.響應時間快 3.截止時間的保證 4.系統吞吐量高 5.處理機利用率好

什麼是時間輪轉排程演算法

系統將所有就緒程序按先來先服務的原則,排成乙個佇列,每次排程時,把cpu分給隊首程序,

並令其執行乙個時間片。當時間片用完時,排程程式終止當前程序的執行,並將它送到就緒佇列的隊尾。

多級佇列排程演算法

將就緒佇列分成多個獨立佇列,每個佇列有自己的排程演算法

多級反饋佇列排程演算法 

建立多個優先權不同的就緒佇列每個佇列有大小不同的時間片

程序切換的含義

當前正在執行的程序成為被替換程序,讓出其所使用的cpu,以執行被程序排程程式選中的新程序。

程序切換的步驟

1.儲存包括程式計數器和其他暫存器在內的cpu上下文環境

2.更新被替換程序的程序控制塊

3.修改程序狀態,把執行態改為就緒態或阻塞態

4.將被替換程序的程序控制塊移到就緒佇列或阻塞佇列

5.執行通過程序排程選擇的新程序,並更新該程序的程序控制塊

6.更新記憶體管理的資料結構

7.恢復被排程程式選中的程序的硬體上下文

多處理器系統的型別

多處理器系統 

緊密耦合 共享主儲存器和i/o裝置

鬆弛耦合 有各自的儲存器和i/o裝置

多處理器系統 

對稱 處理單元功能和結構相同

非對稱 有多種型別的處理單元乙個主處理器,多個從處理器

根據處理器的耦合程度,多處理器作業系統可分為 緊密耦合的多處理器系統和鬆弛耦合的多處理器系統。

根據處理器的結構功能是否相同,多處理器作業系統可分為 對稱多處理器系統和非對稱多處理器系統。

對稱系統分配方式

靜態分配 就緒佇列的程序只能在與就緒佇列對應的處理器上執行

動態分配 程序隨機的被分配到當時處理空閒狀態的某乙個處理器上執行

程序 的排程方式 

自排程最常用最簡單的方式

優點 易移植 很容易將但處理器環境下所用的排程機制移植到多處理器環境中

有利於提高cpu的利用率 不會出現處理器空閒或忙閒不均的情況

缺點 瓶頸問題 處理器數量很多時 

低效性 多次更換處理器

執行緒切換頻繁 某些執行緒因其合作的執行緒未獲得處理器而阻塞導致程序切換

死鎖的定義

由於多個程序競爭共享資源而引起的程序不能向前推進的僵死狀態稱為死鎖

產生死鎖的原因

競爭共享資源且分配資源的順序不當

產生死鎖的必要條件

互斥條件 請求和保持條件 不剝奪條件 環路等待條件

處理死鎖的基本方法

死鎖的預防 通過破壞死鎖的產生條件來保證不發生死鎖

死鎖的避免 通過演算法合理分配資源來保證不發生死鎖

死鎖的檢測 檢測當前系統是否出現死鎖

死鎖的解除 檢測到系統有死鎖後程序解除

死鎖的避免

通過資源合理分配是系統處於安全狀態

安全狀態

能夠找到乙個程序執行序列 ,按照這個序列為每個程序分配資源,就可以保證金稱資源分配和執行順利完成,不會發生死鎖

安全狀態 至少找到乙個這樣的序列 不可能發生死鎖

不安全狀態 找不到乙個這樣的序列 可能會發生死鎖

銀行家演算法 

乙個程序提出資源請求後,系統先進行資源的試分配,分配後檢測系統是否安全

s為死鎖狀態的充分條件是當且僅當s狀態的資源分配圖是不可完全簡化的

解除途徑 

程序終止 終止所有死鎖程序 一次只終止乙個處於死鎖的程序,知道死鎖解除

資源搶占 逐步從程序中搶占資源給其他程序使用直到死鎖被打破為止

成組排程 專用處理器分配

第三章 程序描述與控制

一 程序 二 程序狀態轉換 五狀態模型 七狀態模型 重要的狀態間轉換 三 程序描述 作業系統的控制結構 程序控制結構 程序控制塊 四 程序控制 執行模式 程序的建立 程序切換 toc識別符號 唯一標識 狀態 執行狀態 優先順序 相對於其他程序的優先順序 上下文資訊 程序執行時處理器暫存器中的資料 i...

Linux第三章 程序概念

1.調研程序的排程演算法.有利於長作業和cpu繁忙的作業,不利於短作業和i o繁忙作業 輪轉法 round robin 將所有需要cpu處理的就緒的程序按照fcfs原則排隊。之後cpu會劃分時間片,根據時間片來給佇列上的程式執行,當時間片結束。當前程序中斷,讓出cpu讓下一程序使用。高響應比優先排程...

第三章 處理及排程與死鎖

3.1處理機排程的層次和排程演算法的目標 處理機排程是對處理機資源進行分配,處理機排程演算法是指根據處理機分配策略所規定的處理機分配演算法。3.1.1處理機排程的層次 作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述 排程 1.高階排程 長程排程 作業排程 將外存的後備佇列...