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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统(十七)调度算法(二)

發布時間:2025/3/15 windows 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统(十七)调度算法(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2.2.5 調度算法(二)

? 在上一節中我們講了三種調度算法,分別是先來先服務算法,短作業優先算法,高相應比優先算法,今天我們再來學習三種算法,分別是時間片輪轉算法,優先級調度算法,多級反饋隊列算法。

目錄

2.2.5 調度算法(二)

? ? ? ???2.2.5.1 時間片輪轉算法(RR, Round-Robin)

2.2.5.2 優先級調度算法

2.2.5.3 多級反饋調度算法

2.2.5.4 三種調度算法比較


?

2.2.5.1 時間片輪轉算法(RR, Round-Robin)

? 時間片輪轉算法:按照各進程到達就緒隊列的順序,輪流讓各個進程執行一個時間片(如 100ms)。若進程未在一個時間片內執行完,則剝奪處理機,將進程重新放到就緒隊列隊尾重新排隊。我們需要注意的是時間片輪轉算法應用的對象是進程,因為只有進程才會被分配時間片而作業并不會。時間片輪轉算法是一種搶占式的算法,由時鐘裝置發出中斷信號來通知CPU時間已到。

? 有一組進程,如下圖所示,請用時間片輪轉算法給出進程的執行順序,時間片分別設為2以及5 。?

?

? 時間片為2時,進程到達情況如下:

? 0時刻:只有P1這一個進程所以P1上處理機運行。

? 2時刻:P2到達,被存放在就緒隊列的隊頭,剛好P1時間片完于是P1插入到隊尾,P2上處理機運行。

? 4時刻:P3到達,P2時間片用完被插入到P3之后,但此時隊頭中為P1,于是將P1上處理機運行。

? 5時刻:P4到達,但是此時P1時間片還沒完于是將P4插入到隊尾

? 6時刻:P1的時間片完,下處理機并插入到隊尾,處于隊頭的P3進行調度。

? 7時刻:雖然P3的時間片還沒完但P3已經結束了運行,所以隊頭的P2發生調度

? 9時刻:進程P2時間片用完,并剛好運行完,發生調度,P4上處理機 ? ? 11時刻P4時間片用完,重新回到就緒隊列。P1上處理機 ? 12時刻P1運行完,主動放棄處理機,此時就緒隊列中只剩P4P4上處理機 ? 14時刻:就緒隊列為空,因此讓P4接著運行一個時間片。 ? 16時刻:所有進程運行結束 ? 上述過程的運行示意圖如下: ?? 至于時間片大小為5時,情況與時間片大小為2類似,請大家自己分析,這里只貼出結果: 這是大家可能會發現,時間片為5的輪轉算法與先來先服務算法的調度情況是一致的,所以如果時間片劃分過大那么時間片輪轉算法就會退化為先來先服務算法;另一方面,如果時間片劃分過小就會導致進程切換頻繁,系統開銷過大。

2.2.5.2 優先級調度算法

? 優先級調度算法每個作業/進程有各自的優先級,調度時選擇優先級最高的作業/進程。優先級調度算法既有搶占式又有非搶占式,總之一切都是根據優先級高低來決定的。

? 在如圖所示的進程中,我們規定優先數越大,優先級越高,分別用搶占式以及非搶占式給出調度順序:

? 非搶占式:(括號中是處于就緒隊列中的進程)

??0時刻(P1):只有P1到達,P1上處理機。

? 7時刻(P2P3P4):P1運行完成主動放棄處理機,其余進程都已到達,P3優先級最高,P3上處理機。 ? 8時刻( P2P4 ):P3完成,P2P4優先級相同,由于P2先到達,因此P2優先上處理機 ? 12時刻( P4):P2完成,就緒隊列只剩P4P4上處理機。 ? 16時刻( ):P4完成,所有進程都結束

調度結果如下圖所示:

搶占式:

0時刻(P1):只有P1到達,P1上處理機。

2時刻(P2):P2到達就緒隊列,優先級比P1更高,發生搶占。P1回到就緒隊列,P2上處理機。

4時刻(P1P3):P3到達,優先級比P2更高,P2回到就緒隊列,P3搶占處理機。 5時刻(P1P2P4):P3完成,主動釋放處理機,同時,P4也到達,由于P2P4更先進入就緒隊列,因此選擇P2上處理機 7時刻(P1P4):P2完成,就緒隊列只剩P1P4P4上處理機。 11時刻(P1 ):P4完成,P1上處理機 16時刻():P1完成,所有進程均完成。 調度結果如下圖所示: 當然,優先級可以不是固定的,操作系統可以靈活的調整優先級讓等待時間長的進程優先得到服務。

2.2.5.3 多級反饋調度算法

? 多級反饋調度算法實際上是對以上各種算法的折中考慮,算法規則如下:

  • 設置多級就緒隊列,各級隊列優先級從高到低,時間片從小到大
  • 新進程到達時先進入第1級隊列,按FCFS原則排隊等待被分配時間片,若用完時間片進程還未結束,則進程進入下一級隊列隊尾。如果此時已經是在最下級的隊列,則重新放回該隊列隊尾
  • 只有第 k 級隊列為空時,才會為 k+1 級隊頭的進程分配時間片

多級反饋調度算法只適用于進程調度,且也有搶占式和非搶占式兩種:搶占式的算法。在 k 級隊列的進程運行過程中,若更上級的隊列(1~k-1級)中進入了一個新進程,則由于新進程處于優先級更高的隊列中,因此新進程會搶占處理機,原來運行的進程放回 k 級隊列隊尾。

? 對于以下進程,我們采用搶占式的多級反饋進程調度算法來進行進程調度:(這個過程實在是太難弄了.....我想弄成GIF但失敗了)

調度的順序為P1(1) —> P2(1) —> P1(2)—> P2(1)—> P3(1)—> P2(2)—> P1(4) —> P1(1)(括號中為運行的時間片長度)。

2.2.5.4 三種調度算法比較

算法搶占?優點缺點饑餓?補充
時間片輪轉 搶占 公平,適用于分時系統 頻繁切換有開銷,不區分優先級 不會時間片大小設計的影響
優先級調度 非搶占與搶占均可 區分優先級,適用于實時系統 可能導致饑餓 動態優先級設置
多級反饋隊列 搶占都是優點??

總結

以上是生活随笔為你收集整理的操作系统(十七)调度算法(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。