處理機排程 程序排程

2021-10-02 13:03:46 字數 1288 閱讀 5360

使用者程序數一般都多於處理機數,這將導致使用者程序互相爭奪處理機,那麼多程序競爭處理機,處理機到底給誰呢?就涉及了程序排程的問題。因此要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序。

1.程序管理模組將系統中各程序的執**況和狀態特徵記錄在各程序的pcb表中

2.程序管理模式根據各程序的狀態特徵和資源需求,將各程序的pcb表排成相應的佇列並進行動態佇列轉接

3.程序排程模組通過pcb變化來掌握系統中所有程序的執**況和狀態特徵,並在適當的時機從就緒佇列中選擇出乙個程序佔據處理機

主要功能

程序排程的主要功能是按照一定的策略選擇乙個處於就緒狀態的程序,使其獲得處理機執行

選擇策略決定演算法效能

選擇策略決定了排程演算法的效能

什麼是程序上下文

程序的上下文(context)包括程序的狀態、有關變數和資料結構的值、硬體暫存器的值和pcb以及有關程式等

何時發生程序上下文的切換

當正在執行的程序由於某種原因要讓出處理機時,系統要做程序上下文切換,以使另乙個程序得以執行

程序執行的位置

程序的執行是在程序的上下文中執行

程序上下文切換的過程

1.系統首先檢查是否允許做上下文切換。

2.然後,系統保留有關被切換程序的足夠資訊,以便以後切換回該程序時,順利恢復該程序的執行。

3.在系統保留了cpu現場之後,排程程式選擇乙個新的處於就緒狀態的程序,並裝配該程序的上下文,使cpu的控制權轉換到被選中程序

程序排程時機與引起程序排程的原因以及程序排程方式有關

即使就緒佇列存在優先順序高於當前執行程序的程序,當前程序仍繼續占有處理機。

發生程序排程的原因:

1.正在執行的程序執行完畢。

2.執行中程序自己呼叫阻塞原語將自己阻塞起來進入睡眠等待狀態。

3.執行中程序呼叫了p原語操作,從而因資源不足而被阻塞;或呼叫了v原語操作啟用了等待資源的程序佇列。

4.執行中程序提出i/o請求後被阻塞。

5.分時系統中時間片已經用完。

6.執行完系統呼叫。系統程式返回使用者程序時,可認為系統程序執行完畢,從而可排程選擇一新的使用者程序執行。

就緒佇列中一旦有優先順序高於當前執行程序優先順序的程序,立即發生程序排程,轉讓處理機。

cpu可剝奪方式下程序排程的原因:

就緒佇列中某程序的優先順序高於當前執行程序的優先順序,從而引發程序排程。

首先是排程的可靠性。另外,簡潔性也是衡量程序排程的乙個重要指標

程序排程的定量評價包括cpu利用率、程序在就緒佇列中的等待時間與執行時間之比等,但是這種方法很難,一般都是測試模擬得到的。

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

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

程序和處理機排程

n 死鎖 指各併發程序彼此等待對方所占用的資源,且這些程序在未得到對方資源前不會釋放自己所擁有的資源,從而導致併發程序不能繼續向前推進的狀態 產生死鎖的四個必要條件 資源互斥 非剝奪 請求和保持 部分分配 環路等待。n死鎖的解決方案 a 預防 在系統設計時確定資源分配演算法,保證不發生死鎖 具體的方...

處理機排程 排程演算法

先來先服務 fcfs 排程演算法 短作業 程序 優先排程演算法sjf spf 根據作業的長短在就緒佇列中排好隊,若採取非搶占方式則根據佇列順序依次執行 若為搶占方式,時間片完或新程序的作業比執行態的作業長度短,則搶占當前正在執行的程序,被搶占程序按照時間長短在就緒佇列排隊等待。特別注意就緒佇列中的排...