程序狀態轉換 CPU排程演算法

2021-09-23 19:40:00 字數 1680 閱讀 4128

程序在執行中不斷地改變其執行狀態。通常,乙個執行程序必須具有以下三種基本狀態。

在特定的情況下,這三種狀態可以相互轉換。

就緒->執行, 當前執行程序阻塞,排程程式選乙個優先權最高的程序占有處理機;

執行->就緒, 當前執行程序時間片用完;

執行->等待,當前執行程序等待鍵盤輸入,進入了睡眠狀態。

等待->就緒,i/o操作完成,被中斷處理程式喚醒。

剛從其他狀態進入就緒態的程序需要置入排程佇列,該佇列不一定按進入佇列的時間先後順序排列。

從等待態**來的程序通常不直接進入執行態,而要進入就緒態。如果需要直接進入執行態,這屬於搶先式排程,通過搶先式中斷完成。

從執行態到就緒態的轉換發生在搶先式終端處理中,例如i/o或分時下的時間片。分時是在多個使用者同時以互動方式使用計算機時採用的一種技術。

分時技術:每當時鐘中斷發生時且發現當前執行程序已連續在cpu上執行了一定的時間(稱為時間片,一般為20ms~250ms)時,就強制地發生程序切換,使當前程序退出cpu,重新排程,選出另乙個程序在cpu上執行。此時,退出的程序不能變為等待狀態,因為它不是因為等待i/o而退出的,也不能變為終止,因為它尚未結束,因此,它需要轉換為就緒態,等待屬於它的時間片的到來。

當正在建立乙個新程序時,計算機上的當前執行程序是哪乙個?

該新程序的父程序。

同時處於就緒態的程序經常有多個,因此需要乙個cpu排程演算法來君頂那乙個就緒程序先執行。衡量cpu排程演算法的標準有:cpu利用率、使用者程式響應時間、系統吞吐量、公平合理性、裝置利用率等。

常見的排程演算法有先來先服務fifo、輪轉排程法rr(時間片法)、優先順序排程法、短作業優先sjf、最短剩餘事件優先、最高相應比優先、多級反饋法、策略驅動法、最晚時間限排程、二級排程法。

fifo演算法:一般應用於實時性系統中,最先進入就緒態的程序最先進入執行態。

輪轉排程法:根據系統給與的時間片,進行程序的輪詢訪問cpu,若時間片結束,該程序還在執行,就會被強制撤出。該方法通常和fifo或優先順序演算法一起使用。

優先順序排程法:根據不同程序的重要程度和緊急程度,來賦予每個程序乙個優先順序,帶有最高優先順序的程序最先執行。優先順序排程演算法分為靜態優先順序和動態優先順序兩種。動態優先順序可以防止優先順序高的程序不停地執行。

最短作業優先:最先執行占用cpu時間最短的程序。最短的程序第乙個執行總是產生最小的平均相應事件。

最短剩餘時間優先:剩餘執行事件最短的程序最先執行。

多級反饋法:是目前最常用的演算法!它結合了fifo、rr、優先順序演算法和sjf演算法。該演算法有多個佇列,同一佇列中的程序優先順序相同,不同佇列中程序優先順序不同,不同佇列擁有不同的時間片。

策略驅動法:基於對各個使用者的承諾。

最晚時間限排程:保證在每個程序必須完成的最晚時間限錢執行完該程序。

二級排程演算法:在系統負載很重時,不是所有的程序建立就立即進入就緒態,有些程序建立起來後,進入後備佇列。作業系統採用乙個二級排程程式來決定程序在後備佇列和就緒佇列之間的轉換。其中一級排程是從後備佇列中選擇程序使其轉換為就緒態;另一級排程則是在就緒佇列中選擇乙個執行。

程序狀態轉換 CPU排程演算法

程序在執行中不斷地改變其執行狀態。通常,乙個執行程序必須具有以下三種基本狀態。在特定的情況下,這三種狀態可以相互轉換。就緒 執行,當前執行程序阻塞,排程程式選乙個優先權最高的程序占有處理機 執行 就緒,當前執行程序時間片用完 執行 等待,當前執行程序等待鍵盤輸入,進入了睡眠狀態。等待 就緒,i o操...

CPU程序排程分類

1 高階排程i高階排程又稱為作業排程。它是批處理系統中使用的一種排程。其主要任務是按照某種演算法從外存的後備佇列上選擇乙個或多個作業調入記憶體,並為其建立程序 分配必要的資源,然後再將所建立的程序控制塊插入就緒佇列中 2 低階排程低階排程又稱程序排程。它是距離硬體最近的一級排程。其主要任務是按照某種...

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...