程序和處理機排程

2021-04-03 01:37:20 字數 1395 閱讀 4100

n

死鎖:指各併發程序彼此等待對方所占用的資源,且這些程序在未得到對方資源前不會釋放自己所擁有的資源,從而導致併發程序不能繼續向前推進的狀態

產生死鎖的四個必要條件:資源互斥、非剝奪、請求和保持(部分分配)、環路等待。

n死鎖的解決方案

a)預防:在系統設計時確定資源分配演算法,保證不發生死鎖

具體的方法是破壞產生死鎖的四個必要條件之一

b)避免:在系統執行過程中,對程序發出的每個系統能夠滿足的資源申請進行動態檢查,

並根據檢查結果決定是否分配資源,若分配後系統可能發生思索,則不予分配,否則

予以分配

c)檢測及解除

1、允許死鎖發生,作業系統不斷監視系統進展情況,判斷死鎖是否發生

2、一旦死鎖發生則採取專門的措施,解除死鎖並以最小的代價恢復作業系統的執行

n程序排程

a)程序排程的任務是控制協調程序對

cpu的競爭,即按一定的排程演算法從就緒佇列中選中乙個 程序,把

cpu的使用權交給被選中的程序

b)演算法原則

i.具有公平性

ii.資源利用率高——特別是

cpu的利用率

iii.

在互動式系統情況下追求相應時間

iv.在批處理系統情況下追求系統吞吐量

n各種程序排程演算法

a)先進先出程序排程演算法(

fifo

,fcfs)i.

按照程序就緒的先後次序來排程程序

ii.優點:實現簡單

iii.

缺點:沒考慮程序的優先順序

b)最短作業優先(

sjf)

i.要求程序執行前先估計執行時間,給執行時間短的程序優先分配處理機

ii.優點:縮短了等待時間,提高吞吐量

iii.

缺點;不利於長作業,時間估算不准

c)基於優先順序的排程(

hpf——

highest priority first)i.

優先選擇就緒佇列中優先順序高的程序投入執行

ii.優先順序根據優先數來決定

d)時間片輪轉程式排程演算法

把cpu

劃分若干時間片,並且按順序付給就緒佇列中的每乙個程序,進城

輪流占有

cpu,當時間片用完時,即使程序未執行完畢,四通也剝奪該程序的

cpu,

將該程序排在就緒佇列末尾,同時系統選擇另乙個程序執行。

e)多級佇列反饋排程演算法

將就緒佇列分為n級,每個就緒佇列分配給不同的時間片,佇列級別越高,時間越長,級別越小,時間片越小,最後一級採用時間片輪轉,其他佇列採用先進先出;系統從第一級排程,當地一級為空時,系統轉向第二佇列......當執行程序用完乙個時間片,放棄cpu時,進入下一級佇列;等待程序被喚醒時,進入原來的就緒佇列;當程序第一次就緒時,進入第一級佇列。

處理機排程 程序排程

使用者程序數一般都多於處理機數,這將導致使用者程序互相爭奪處理機,那麼多程序競爭處理機,處理機到底給誰呢?就涉及了程序排程的問題。因此要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序。1.程序管理模組將系統中各程序的執 況和狀態特徵記錄在各程序的pcb表中 2.程序管理模...

處理機排程 程序排程 作業排程演算法

在多道程式系統中,主存中有著多個程序,其數目往往多於處理機數目,這就要求系統能按照某種演算法,動態地將處理機分配給就緒佇列中的某個程序,使之執行。對於批量型作業而言,通常需要經歷作業排程 又稱為高階排程或長程排程 和程序排程 又稱為低階排程或短程排程 兩個過程後方能獲得處理機 對於終端型作業,通常只...

處理機排程

如果沒有處理機排程,則意味著必須等待當前程序執行完畢後下一程序才能執行,而程序常需等待外設的輸入,i o的速度相比處理機是非常慢的,因此這會對處理機資源造成嚴重浪費。引入排程後,可在執行程序等待輸入時把處理機排程給其他程序,從而提高處理機的利用率。作業排程 高階 在外存的作業中挑選乙個或多個作業,給...