操作系统 实时调度
- 在實(shí)時(shí)系統(tǒng)中,可能存在著兩類(lèi)不同性質(zhì)的實(shí)時(shí)任務(wù),即HRT任務(wù)和SRT任務(wù),它們都聯(lián)系著一個(gè)截止時(shí)間。
- 為保證系統(tǒng)能正常工作,實(shí)時(shí)調(diào)度必須能滿(mǎn)足實(shí)時(shí)任務(wù)對(duì)截止時(shí)間的要求。
- 實(shí)現(xiàn)實(shí)時(shí)調(diào)度應(yīng)具備一定的條件。
實(shí)現(xiàn)實(shí)時(shí)調(diào)度的基本條件
-
提供必要的信息:
- 就緒時(shí)間,是指某任務(wù)成為就緒狀態(tài)的起始時(shí)間,在周期任務(wù)的情況下,它是事先預(yù)知的一串時(shí)間序列。
- 開(kāi)始截止時(shí)間和完成截止時(shí)間,對(duì)于典型的實(shí)時(shí)應(yīng)用,只須知道開(kāi)始截止時(shí)間,或者完成截止時(shí)間。
- 處理時(shí)間,一個(gè)任務(wù)從開(kāi)始執(zhí)行,直至完成時(shí)所需的時(shí)間。
- 資源要求,任務(wù)執(zhí)行時(shí)所需的一組資源。
- 優(yōu)先級(jí),如果某任務(wù)的開(kāi)始截止時(shí)間錯(cuò)過(guò),勢(shì)必引起故障,則應(yīng)為該任務(wù)賦予“絕對(duì)”優(yōu)先級(jí);如果其開(kāi)始截止時(shí)間的錯(cuò)過(guò),對(duì)任務(wù)的繼續(xù)運(yùn)行無(wú)重大影響,則可為其賦予“相對(duì)”優(yōu)先級(jí),供調(diào)度程序參考。
-
系統(tǒng)處理能力強(qiáng):
- 在實(shí)時(shí)系統(tǒng)中,若處理機(jī)的處理能力不夠強(qiáng),則有可能因處理機(jī)忙不過(guò),而致使某些實(shí)時(shí)任務(wù)不能得到及時(shí)處理,從而導(dǎo)致發(fā)生難以預(yù)料的后果。
- 假定系統(tǒng)中有m個(gè)周期性的硬實(shí)時(shí)任務(wù)HRT,它們的處理時(shí)間可表示為Ci,周期時(shí)間表示為Pi,則在單處理機(jī)情況下,必須滿(mǎn)足下面的限制條件系統(tǒng)才是可調(diào)度的:
- 提高系統(tǒng)處理能力的途徑有二:一是采用單處理機(jī)系統(tǒng),但須增強(qiáng)其處理能力,以顯著地減少對(duì)每一個(gè)任務(wù)的處理時(shí)間;二是采用多處理機(jī)系統(tǒng)。假定系統(tǒng)中的處理機(jī)數(shù)為N,則應(yīng)將上述的限制條件改為:
-
采用搶占式調(diào)度機(jī)制:
- 剝奪方式:一般都采用此
- 非剝奪方式(實(shí)現(xiàn)簡(jiǎn)單):一般應(yīng)使實(shí)時(shí)任務(wù)較小,以及時(shí)放棄CPU。
-
具有快速切換機(jī)制:
- 對(duì)中斷的快速響應(yīng)能力。對(duì)緊迫的外部事件請(qǐng)求中斷能及時(shí)響應(yīng),要- 求系統(tǒng)具有快速硬件中斷機(jī)構(gòu),還應(yīng)使禁止中斷的時(shí)間間隔盡量短,以免耽誤時(shí)機(jī)(其它緊迫任務(wù))。
- 快速的任務(wù)分派能力。為了提高分派程序進(jìn)行任務(wù)切換時(shí)的速度,應(yīng)使系統(tǒng)中的每個(gè)運(yùn)行功能單位適當(dāng)?shù)男?#xff0c;以減少任務(wù)切換的時(shí)間開(kāi)銷(xiāo)。
實(shí)時(shí)調(diào)度算法的分類(lèi)
- 非搶占式調(diào)度算法
- 時(shí)間片輪轉(zhuǎn) 秒級(jí)
- 非搶占優(yōu)先權(quán)(協(xié)同) 秒~毫秒級(jí)
- 搶占式調(diào)度算法
- 時(shí)鐘中斷搶占優(yōu)先權(quán) 毫秒級(jí)
- 基于搶占點(diǎn)搶占
- 立即搶占immediate preemption 毫秒~微秒級(jí)
- 只要不在臨界區(qū)即搶占(中斷引發(fā))
- 時(shí)鐘中斷搶占優(yōu)先權(quán) 毫秒級(jí)
最早截止時(shí)間優(yōu)先 EDF調(diào)度算法
- 根據(jù)任務(wù)的截止時(shí)間來(lái)確定任務(wù)的優(yōu)先級(jí)
- 截止時(shí)間越早,優(yōu)先級(jí)越高
- 可以是搶占式或非搶占式
非搶占式調(diào)度方式用于非周期實(shí)時(shí)任務(wù)
搶占式調(diào)度方式用于周期實(shí)時(shí)任務(wù)
- 任務(wù)A和任務(wù)B的周期時(shí)間分別為20 ms和50 ms,每個(gè)周期的處理時(shí)間分別為10ms和25ms。
最低松弛度優(yōu)先LLF(Least Laxity First)算法
-
該算法在確定任務(wù)的優(yōu)先級(jí)時(shí),根據(jù)的是任務(wù)的緊急(或松弛)程度。
-
任務(wù)緊急程度愈高,賦予該任務(wù)的優(yōu)先級(jí)就愈高,以使之優(yōu)先執(zhí)行。
-
主要用于可搶占調(diào)度方式中。
-
實(shí)用于周期性的調(diào)度任務(wù)。
-
系統(tǒng)中有一個(gè)按松弛度排序的實(shí)時(shí)任務(wù)就緒隊(duì)列,松弛度最低的任務(wù)排在隊(duì)列最前面,調(diào)度程序總是選擇就緒隊(duì)列中的隊(duì)首任務(wù)執(zhí)行。
-
松弛度也是一種優(yōu)先級(jí),它反映的是任務(wù)的緊急程度。
-
松弛度=必須完成時(shí)間-其本身運(yùn)行時(shí)間-當(dāng)前時(shí)間
總結(jié)
- 上一篇: 【Python】wo ai ni pyt
- 下一篇: 【操作系统】第二章--进程的描述与控制-