最高響應比排程演算法 處理器是如何排程程序的?

2021-10-14 02:29:13 字數 2344 閱讀 3595

出處:

本質是cpu資源占用者間的切換。此時需要儲存當前程序在pcb中的執行上下文(cpu狀態),然後恢復下乙個程序的執行上下文。

另外,處理機排程需要保證公平:

1.保證每個程序占用相同的cpu時間2.保證每個程序的等待時間相同

fcfs依據程序進入就緒狀態的先後順序排列,它簡單、易於實現。

但是也存在一些缺點,以上圖為例,程序到達次序不同,對周轉時間影響較大。總結如下:

1.平均等待時間波動較大:短程序可能排在長程序後面2.i/o資源和cpu資源的利用率較低:cpu密集型程序會導致i/o裝置閒置時,i/o密集型程序也等待

spn是fcfs演算法的改進,它選擇預期執行時間最短程序占用cpu進入執行狀態。spn演算法的優點是具有最優平均周轉時間。缺點:

1.可能導致飢餓:連續的短程序流會使長程序無法獲得cpu資源2.需要預知未來:如何評估程序執行時間的長短?乙個方法是基於歷史資料估計

選擇就緒佇列中響應比r值最高的程序,r計算方法如下:

r=(w+s)/s

w: 等待時間(waiting time)

s: 執行時間(service time)

rr演算法是對fcfs的改進,在fcfs的基礎上加入對程序執行時間(cpu時間片)的限制。當程序的時間片用完後,按照fcfs的規則選擇下乙個程序。

上圖是rr演算法的示意圖,三個程序按照p1、p2和p3的順序到達,執行時間分別為53、16和68。基準資料如下:

rr演算法主要開銷在程序的上下文切換,重點是選擇合適的時間片(delta)。

•delta過大,程序的等待時間過長,易退化成fcfs•delta過小,反應快,但是上下文切換頻繁,影響系統吞吐量

根據經驗規則,delta應保證上下文切換開銷處於1%以內。

該演算法的思想是把就緒佇列根據更細的維度劃分成不同的子佇列,不同佇列選擇不同的演算法。如前台互動就緒佇列和後台批處理就緒佇列,前台使用rr,後台使用fcfs。

將就緒佇列中程序按照不同的優先順序分成不同的佇列,優先順序越高時間片反而越小,程序可以在不同的佇列間移動,如程序在當前的時間片沒有完成,則降到下乙個優先順序。

mlfq演算法中,cpu密集型程序的優先順序下降很快,i/o密集型程序停留在高優先順序。

fss強調資源的公平分配,對使用者進行分組。使用者組比其他使用者組更重要,則分配更多的資源。未使用的資源按比例分配,沒有達到資源使用率目標的組獲得更高的優先順序,這樣就避免不重要的使用者壟斷資源。

對時間的要求很嚴格,要求作業系統在一定時間內完成相應功能。它的效能指標有兩個:

•時間約束的及時性(deadlines)•速度和平均效能相對不重要

實時作業系統可分為兩類:

•強實時作業系統:指定的時間內必須完成重要的任務•弱實時作業系統:重要程序有高優先順序,要求盡量但非必須完成

實時排程演算法:

1.速率單調排程演算法(rm, rate monotonic)•通過週期安排優先順序•週期越短優先順序越高•執行週期最短的任務2.最早截止時間優先演算法(edf, earliest deadline first)•截止時間越早優先順序越高•執行截止時間最早的任務

即多個處理機組成乙個多處理機系統,處理機間可負載共享。

該排程中,每個處理器執行自己的排程程式,排程程式對共享資源的訪問需要進行同步。在分配程序時有靜態程序分配和動態程序分配。

1.靜態程序分配•程序從開始到結束都被分配到乙個固定的處理機上執行•每個處理機有自己的就緒佇列•排程開銷小•各處理機可能忙閒不均2.動態程序分配•程序在執行中可分配到任意空閒處理機執行•所有處理機共享乙個公共的就緒佇列•排程開銷大•各處理機的負載是均衡的

優先順序反置是一種現象,發生在基於優先順序的排程演算法中,即高優先順序程序等待低優先順序程序的現象。主要原因是資源的占用現象,低優先順序占用資源,等待資源使用結束後才能釋放資源,需要相同資源的高優先順序程序就需要等待。

下面介紹兩個解決方法。

1.優先順序繼承(priority inheritance):簡單說就是公升高占用資源的低優先順序程序的優先順序,公升高成等待資源的高優先順序程序。2.優先順序天花板協議(priority ceiling protocol):占用資源程序的優先順序和所有可能申請該資源的程序的最高優先順序相同。

本文介紹了作業系統中排程程序的演算法,包括單處理器和多處理器。

出處:

處理器排程演算法

1 排程方式 排程方式是指當有更高優先順序的程序到來時如何分配cpu 分為可剝奪和不可剝奪兩種。2 排程演算法 先來先服務 時間片輪轉 優先順序排程和多級反饋排程演算法 2.1 先來先服務 fcfs 就是按順序進行排程,遵從 先來後到 的規矩。我不管你是誰,也不管你要理什麼頭型,都去排隊,按順序來。...

處理器排程演算法

作業提交時間 執行時間 開始時間 完成時間 周轉時間 min 帶權周轉時間 min 10 00 2 00 10 00 12 00 120 120 10 10 1 00 12 25 13 25 195 60 10 25 0 25 12 00 12 25 120 25 平均周轉時間t 355 平均帶權周...

處理器程序排程演算法

周轉時間用於比較同一作業流排程效能,而加權周轉時間用於比較不同作業流排程效能 簡介 根據作業新增到就緒佇列的順序進行排程。此演算法為非剝奪式,即乙個作業執行完畢,另乙個作業才會被排程到處理器。分析 作業名 作業一28 作業二9 作業三3 按此執行順序,平均周轉時間 28 28 9 28 9 3 3 ...