日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

计算机操作系统 第三章:处理机调度与死锁(2)

發(fā)布時間:2023/12/18 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机操作系统 第三章:处理机调度与死锁(2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

3.3? 進(jìn) 程 調(diào) 度

3.3.1? 進(jìn)程調(diào)度的任務(wù)、機(jī)制和方式??

3.3.2? 輪轉(zhuǎn)調(diào)度算法

?3.3.3? 優(yōu)先級調(diào)度算法

3.3.4? 多隊列調(diào)度算法

3.3.5? 多級反饋隊列(multileved feedback queue)調(diào)度算法?

3.3.6? 基于公平原則的調(diào)度算法??

3.4? 實 時 調(diào) 度

3.4.1? 實現(xiàn)實時調(diào)度的基本條件

3.4.2? 實時調(diào)度算法的分類???

?3.4.3? 最早截止時間優(yōu)先EDF(Earliest Deadline First)算法?

?3.4.4? 最低松弛度優(yōu)先LLF(Least Laxity First)算法

?3.4.5? 優(yōu)先級倒置(priority inversion problem)??


3.3? 進(jìn) 程 調(diào) 度


  進(jìn)程調(diào)度是OS中必不可少的一種調(diào)度。因此在三種類型的OS中,都無一例外地配置了進(jìn)程調(diào)度。此外它也是對系統(tǒng)性能影響最大的一種處理機(jī)調(diào)度,相應(yīng)的,有關(guān)進(jìn)程調(diào)度的算法也較多。

3.3.1? 進(jìn)程調(diào)度的任務(wù)、機(jī)制和方式??


1. 進(jìn)程調(diào)度的任務(wù)
  進(jìn)程調(diào)度的任務(wù)主要有三:
  
(1) 保存處理機(jī)的現(xiàn)場信息。
  
(2) 按某種算法選取進(jìn)程。
  
(3) 把處理器分配給進(jìn)程。 ?

2. 進(jìn)程調(diào)度機(jī)制
  為了實現(xiàn)進(jìn)程調(diào)度,在進(jìn)程調(diào)度機(jī)制中,應(yīng)具有如下三個基本部分,如圖3-1所示。
  
(1) 排隊器。
  
(2) 分派器。
  
(3) 上下文切換器。

?3. 進(jìn)程調(diào)度方式
  1) 非搶占方式(Nonpreemptive Mode)
  在采用這種調(diào)度方式時,一旦把處理機(jī)分配給某進(jìn)程后,就一直讓它運行下去,決不會因為時鐘中斷或任何其它原因去搶占當(dāng)前正在運行進(jìn)程的處理機(jī),直至該進(jìn)程完成,或發(fā)生某事件而被阻塞時,才把處理機(jī)分配給其它進(jìn)程。

2) 搶占方式(Preemptive Mode)
  這種調(diào)度方式允許調(diào)度程序根據(jù)某種原則,去暫停某個正在執(zhí)行的進(jìn)程,將已分配給該進(jìn)程的處理機(jī)重新分配給另一進(jìn)程。在現(xiàn)代OS中廣泛采用搶占方式,這是因為:對于批處理機(jī)系統(tǒng),可以防止一個長進(jìn)程長時間地占用處理機(jī),以確保處理機(jī)能為所有進(jìn)程提供更為公平的服務(wù)。在分時系統(tǒng)中,只有采用搶占方式才有可能實現(xiàn)人機(jī)交互。在實時系統(tǒng)中,搶占方式能滿足實時任務(wù)的需求。但搶占方式比較復(fù)雜,所需付出的系統(tǒng)開銷也較大。

3.3.2? 輪轉(zhuǎn)調(diào)度算法


  1. 輪轉(zhuǎn)法的基本原理
  在輪轉(zhuǎn)(RR)法中,系統(tǒng)將所有的就緒進(jìn)程按FCFS策略排成一個就緒隊列。系統(tǒng)可設(shè)置每隔一定時間(30?ms)便產(chǎn)生一次中斷,去激活進(jìn)程調(diào)度程序進(jìn)行調(diào)度,把CPU分配給隊首進(jìn)程,并令其執(zhí)行一個時間片。當(dāng)它運行完畢后,又把處理機(jī)分配給就緒隊列中新的隊首進(jìn)程,也讓它執(zhí)行一個時間片。這樣,就可以保證就緒隊列中的所有進(jìn)程在確定的時間段內(nèi),都能獲得一個時間片的處理機(jī)時間。

2. 進(jìn)程切換時機(jī)
  在RR調(diào)度算法中,應(yīng)在何時進(jìn)行進(jìn)程的切換,可分為兩種情況:① 若一個時間片尚未用完,正在運行的進(jìn)程便已經(jīng)完成,就立即激活調(diào)度程序,將它從就緒隊列中刪除,再調(diào)度就緒隊列中隊首的進(jìn)程運行,并啟動一個新的時間片。② 在一個時間片用完時,計時器中斷處理程序被激活。如果進(jìn)程尚未運行完畢,調(diào)度程序?qū)阉屯途w隊列的末尾。

3. 時間片大小的確定
  在輪轉(zhuǎn)算法中,時間片的大小對系統(tǒng)性能有很大的
影響。
  圖
3-2示出了時間片大小對響應(yīng)時間的影響,其中圖(a)是時間片略大于典型交互的時間,而圖(b)是時間片小于典型交互的時間。圖3-3示出了時間片分別為q?=?1q?=?4時對平均周轉(zhuǎn)時間的影響。

?

?3.3.3? 優(yōu)先級調(diào)度算法


  1. 優(yōu)先級調(diào)度算法的類型
  優(yōu)先級進(jìn)程調(diào)度算法,是把處理機(jī)分配給就緒隊列中優(yōu)先級最高的進(jìn)程。這時,又可進(jìn)一步把該算法分成如下兩種。
  
(1) 非搶占式優(yōu)先級調(diào)度算法。
  
(2) 搶占式優(yōu)先級調(diào)度算法。

2. 優(yōu)先級的類型
  1) 靜態(tài)優(yōu)先級
  靜態(tài)優(yōu)先級是在創(chuàng)建進(jìn)程時確定的,在進(jìn)程的整個運行期間保持不變。優(yōu)先級是利用某一范圍內(nèi)的一個整數(shù)來表示的,例如
0255中的某一整數(shù),又把該整數(shù)稱為優(yōu)先數(shù)。確定進(jìn)程優(yōu)先級大小的依據(jù)有如下三個:
  
(1) 進(jìn)程類型。
  
(2) 進(jìn)程對資源的需求。
  
(3) 用戶要求。

2) 動態(tài)優(yōu)先級
  動態(tài)優(yōu)先級是指在創(chuàng)建進(jìn)程之初,先賦予其一個優(yōu)先級,然后其值隨進(jìn)程的推進(jìn)或等待時間的增加而改變,以便獲得更好的調(diào)度性能。

3.3.4? 多隊列調(diào)度算法


  如前所述的各種調(diào)度算法,尤其在應(yīng)用于進(jìn)程調(diào)度時,由于系統(tǒng)中僅設(shè)置一個進(jìn)程的就緒隊列,即低級調(diào)度算法是固定的、單一的,無法滿足系統(tǒng)中不同用戶對進(jìn)程調(diào)度策略的不同要求,在多處理機(jī)系統(tǒng)中,這種單一調(diào)度策略實現(xiàn)機(jī)制的缺點更顯突出,由此,多級隊列調(diào)度算法能夠在一定程度上彌補(bǔ)這一缺點

3.3.5? 多級反饋隊列(multileved feedback queue)調(diào)度算法?


1. 調(diào)度機(jī)制
  多級反饋隊列調(diào)度算法的調(diào)度機(jī)制可描述如下:
  
(1) 設(shè)置多個就緒隊列。
  圖
3-4是多級反饋隊列算法的示意圖。

?(2) 每個隊列都采用FCFS算法。當(dāng)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊列的末尾,按FCFS原則等待調(diào)度。當(dāng)輪到該進(jìn)程執(zhí)行時,如它能在該時間片內(nèi)完成,便可撤離系統(tǒng)。否則,即它在一個時間片結(jié)束時尚未完成,調(diào)度程序?qū)⑵滢D(zhuǎn)入第二隊列的末尾等待調(diào)度;如果它在第二隊列中運行一個時間片后仍未完成,再依次將它放入第三隊列,……,依此類推。當(dāng)進(jìn)程最后被降到第n隊列后,在第n隊列中便采取按RR方式運行。

(3) 按隊列優(yōu)先級調(diào)度。調(diào)度程序首先調(diào)度最高優(yōu)先級隊列中的諸進(jìn)程運行,僅當(dāng)?shù)谝魂犃锌臻e時才調(diào)度第二隊列中的進(jìn)程運行;換言之,僅當(dāng)?shù)?/span>1(i-1)所有隊列均空時,才會調(diào)度第i隊列中的進(jìn)程運行。如果處理機(jī)正在第i隊列中為某進(jìn)程服務(wù)時又有新進(jìn)程進(jìn)入任一優(yōu)先級較高的隊列,此時須立即把正在運行的進(jìn)程放回到第i隊列的末尾,而把處理機(jī)分配給新到的高優(yōu)先級進(jìn)程。

2. 調(diào)度算法的性能
  在多級反饋隊列調(diào)度算法中,如果規(guī)定第一個隊列的時間片略大于多數(shù)人機(jī)交互所需之處理時間時,便能較好地滿足各種類型用戶的需要。
  
(1) 終端型用戶。
  
(2) 短批處理作業(yè)用戶。
  
(3) 長批處理作業(yè)用戶。

3.3.6? 基于公平原則的調(diào)度算法??


  1. 保證調(diào)度算法
  保證調(diào)度算法是另外一種類型的調(diào)度算法,它向用戶所做出的保證并不是優(yōu)先運行,而是明確的性能保證,該算法可以做到調(diào)度的公平性。一種比較容易實現(xiàn)的性能保證是處理機(jī)分配的公平性。如果在系統(tǒng)中有n個相同類型的進(jìn)程同時運行,為公平起見,須保證每個進(jìn)程都獲得相同的處理機(jī)時間1/n

在實施公平調(diào)度算法時系統(tǒng)中必須具有這樣一些功能:
  
(1) 跟蹤計算每個進(jìn)程自創(chuàng)建以來已經(jīng)執(zhí)行的處理時間。
  
(2) 計算每個進(jìn)程應(yīng)獲得的處理機(jī)時間,即自創(chuàng)建以來的時間除以n
  
(3) 計算進(jìn)程獲得處理機(jī)時間的比率,即進(jìn)程實際執(zhí)行的處理時間和應(yīng)獲得的處理機(jī)時間之比。
  
(4) 比較各進(jìn)程獲得處理機(jī)時間的比率。如進(jìn)程A的比率最低,為0.5,而進(jìn)程B的比率為0.8,進(jìn)程C的比率為1.2等。
  
(5) 調(diào)度程序應(yīng)選擇比率最小的進(jìn)程將處理機(jī)分配給它,并讓該進(jìn)程一直運行,直到超過最接近它的進(jìn)程比率為止。

2. 公平分享調(diào)度算法
  分配給每個進(jìn)程相同的處理機(jī)時間,顯然,這對諸進(jìn)程而言,是體現(xiàn)了一定程度的公平,但如果各個用戶所擁有的進(jìn)程數(shù)不同,就會發(fā)生對用戶的不公平問題。

3.4? 實 時 調(diào) 度



  在實時系統(tǒng)中,可能存在著兩類不同性質(zhì)的實時任務(wù),即HRT任務(wù)和SRT任務(wù),它們都聯(lián)系著一個截止時間。為保證系統(tǒng)能正常工作,實時調(diào)度必須能滿足實時任務(wù)對截止時間的要求。為此,實現(xiàn)實時調(diào)度應(yīng)具備一定的條件。

3.4.1? 實現(xiàn)實時調(diào)度的基本條件


1. 提供必要的信息
  為了實現(xiàn)實時調(diào)度,系統(tǒng)應(yīng)向調(diào)度程序提供有關(guān)任務(wù)的信息:
  
(1) 就緒時間,是指某任務(wù)成為就緒狀態(tài)的起始時間,在周期任務(wù)的情況下,它是事先預(yù)知的一串時間序列。
  
(2) 開始截止時間和完成截止時間,對于典型的實時應(yīng)用,只須知道開始截止時間,或者完成截止時間。

(3) 處理時間,一個任務(wù)從開始執(zhí)行,直至完成時所需的時間。
  
(4) 資源要求,任務(wù)執(zhí)行時所需的一組資源。
  
(5) 優(yōu)先級,如果某任務(wù)的開始截止時間錯過,勢必引起故障,則應(yīng)為該任務(wù)賦予“絕對”優(yōu)先級;如果其開始截止時間的錯過,對任務(wù)的繼續(xù)運行無重大影響,則可為其賦予“相對”優(yōu)先級,供調(diào)度程序參考。

2. 系統(tǒng)處理能力強(qiáng)
  在實時系統(tǒng)中,若處理機(jī)的處理能力不夠強(qiáng),則有可能因處理機(jī)忙不過,而致使某些實時任務(wù)不能得到及時處理,從而導(dǎo)致發(fā)生難以預(yù)料的后果。假定系統(tǒng)中有m個周期性的硬實時任務(wù)HRT,它們的處理時間可表示為Ci,周期時間表示為Pi,則在單處理機(jī)情況下,必須滿足下面的限制條件系統(tǒng)才是可調(diào)度的:

?提高系統(tǒng)處理能力的途徑有二:一是采用單處理機(jī)系統(tǒng),但須增強(qiáng)其處理能力,以顯著地減少對每一個任務(wù)的處理時間;二是采用多處理機(jī)系統(tǒng)。假定系統(tǒng)中的處理機(jī)數(shù)為N,則應(yīng)將上述的限制條件改為:

?3. 采用搶占式調(diào)度機(jī)制
  在含有HRT任務(wù)的實時系統(tǒng)中,廣泛采用搶占機(jī)制。這樣便可滿足HRT任務(wù)對截止時間的要求。但這種調(diào)度機(jī)制比較復(fù)雜。

4. 具有快速切換機(jī)制
  為保證硬實時任務(wù)能及時運行,在系統(tǒng)中還應(yīng)具有快速切換機(jī)制,使之能進(jìn)行任務(wù)的快速切換。該機(jī)制應(yīng)具有如下兩方面的能力:
  
(1) 對中斷的快速響應(yīng)能力。對緊迫的外部事件請求中斷能及時響應(yīng),要求系統(tǒng)具有快速硬件中斷機(jī)構(gòu),還應(yīng)使禁止中斷的時間間隔盡量短,以免耽誤時機(jī)(其它緊迫任務(wù))
  
(2) 快速的任務(wù)分派能力。為了提高分派程序進(jìn)行任務(wù)切換時的速度,應(yīng)使系統(tǒng)中的每個運行功能單位適當(dāng)?shù)男?#xff0c;以減少任務(wù)切換的時間開銷。

3.4.2? 實時調(diào)度算法的分類???

??
  可以按不同方式對實時調(diào)度算法加以分類:① 根據(jù)實時任務(wù)性質(zhì),可將實時調(diào)度的算法分為硬實時調(diào)度算法和軟實時調(diào)度算法;② 按調(diào)度方式,則可分為非搶占調(diào)度算法和搶占調(diào)度算法。

?1. 非搶占式調(diào)度算法
  (1) 非搶占式輪轉(zhuǎn)調(diào)度算法。
  
(2) 非搶占式優(yōu)先調(diào)度算法。

2. 搶占式調(diào)度算法
  可根據(jù)搶占發(fā)生時間的不同而進(jìn)一步分成以下兩種調(diào)度算法:
  
(1) 基于時鐘中斷的搶占式優(yōu)先級調(diào)度算法。
  
(2) 立即搶占(Immediate Preemption)的優(yōu)先級調(diào)度算法。  
  圖
3-5中的(a)(b)(c)(d)分別示出了四種情況的調(diào)度時間。

?3.4.3? 最早截止時間優(yōu)先EDF(Earliest Deadline First)算法?


  1. 非搶占式調(diào)度方式用于非周期實時任務(wù)
  圖3-6示出了將該算法用于非搶占調(diào)度方式之例。

?2. 搶占式調(diào)度方式用于周期實時任務(wù)
  3-7示出了將該算法用于搶占調(diào)度方式之例。在該例中有兩個周期任務(wù),任務(wù)A和任務(wù)B的周期時間分別為20 ms50 ms,每個周期的處理時間分別為10?ms25?ms

?3.4.4? 最低松弛度優(yōu)先LLF(Least Laxity First)算法


  該算法在確定任務(wù)的優(yōu)先級時,根據(jù)的是任務(wù)的緊急(或松弛)程度。任務(wù)緊急程度愈高,賦予該任務(wù)的優(yōu)先級就愈高,以使之優(yōu)先執(zhí)行。
  該算法主要用于可搶占調(diào)度方式中。假如在一個實時系統(tǒng)中有兩個周期性實時任務(wù)
AB,任務(wù)A要求每20?ms執(zhí)行一次,執(zhí)行時間為10?ms,任務(wù)B要求每50?ms執(zhí)行一次,執(zhí)行時間為25?ms。由此可知,任務(wù)AB每次必須完成的時間分別為:A1A2A3B1B2B3,見圖3-8

?

?3.4.5? 優(yōu)先級倒置(priority inversion problem)??


  1. 優(yōu)先級倒置的形成
  當(dāng)前OS廣泛采用優(yōu)先級調(diào)度算法和搶占方式,然而在系統(tǒng)中存在著影響進(jìn)程運行的資源而可能產(chǎn)生“優(yōu)先級倒置”的現(xiàn)象,即高優(yōu)先級進(jìn)程(或線程)被低優(yōu)先級進(jìn)程(或線程)延遲或阻塞。我們通過一個例子來說明該問題。

假如P3最先執(zhí)行,在執(zhí)行了P(mutex)操作后,進(jìn)入到臨界區(qū)CS-3。在時刻aP2就緒,因為它比P3的優(yōu)先級高,P2搶占了P3的處理機(jī)而運行,如圖3-10所示。

?2. 優(yōu)先級倒置的解決方法
  一種簡單的解決方法是規(guī)定:假如進(jìn)程P3在進(jìn)入臨界區(qū)后P3所占用的處理機(jī)就不允許被搶占。
??????? 一個比較實用的方法是建立在動態(tài)優(yōu)先級繼承基礎(chǔ)上的。當(dāng)高優(yōu)先級進(jìn)程P1要進(jìn)入臨界區(qū),去使用臨界資源R,如果已有一個低優(yōu)先級進(jìn)程P3正在使用該資源,此時一方面P1被阻塞,另一方面由P3繼承P1的優(yōu)先級,并一直保持到P3退出臨界區(qū)。
  圖3-11示出了采用動態(tài)優(yōu)先級繼承方法后,P1P2P3三個進(jìn)程的運行情況。

?

總結(jié)

以上是生活随笔為你收集整理的计算机操作系统 第三章:处理机调度与死锁(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。