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

歡迎訪問 生活随笔!

生活随笔

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

windows

【操作系统】几种常用调度算法

發布時間:2023/12/20 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【操作系统】几种常用调度算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、先來先服務調度算法(FCFS)
  • 二、短作業優先調度算法(SJF)
    • 最短作業優先調度算法(SJF)
    • 最短剩余時間優先調度算法(SRTF)
  • 三、響應比最高者優先調度算法(HRRF)
  • 四、時間片輪轉調度算法(RR)
  • 五、優先級調度算法(PSA)
  • 六、多級反饋隊列調度算法 (MLFQ)


相關時間計算
周轉時間 = 作業完成時刻 - 作業到達時刻
等待時間 = 周轉時間 - 運行時間
帶權周轉時間 = 周轉時間 / 服務時間
平均周轉時間 = 作業周轉時間之和 / 作業個數
平均帶權周轉時間 = 帶權周轉時間之和 / 作業個數
服務時間:作業的運行時間

調度&分配
1、調度:
調度實現進程/線程選擇算法,選中者獲得處理器。
2、分配:
分派實現處理器的分配和綁定工作,將處理器分配給被選中的進程或線程,處理進程或線程上下文交換細節。

剝奪式(搶占式)& 非剝奪式(非搶占式)
1、剝奪式(搶占式)優先級調度算法。當一個進程正在處理機上運行時,若有某個更為重要或緊迫的進程進入就緒隊列,則立即暫停正在運行的進程,將處理機分配給更重要或緊迫的進程。
2、非剝奪式(非搶占式)優先級調度算法。當一個進程正在處理上運行時,即使有某個更為重要或緊迫的進程進入就緒隊列,仍然讓正在進行的進程繼續運行,直到由于其自身原因而主動讓出處理機(任務完成或等待事件),才把處理機分配給更為重要或緊迫的進程。

一、先來先服務調度算法(FCFS)

First Come First Service

  • 算法思想:主要從“公平”的角度考慮,先到先服務。
  • 算法規則:先進入系統的作業/進程優先被挑選。
  • 用于作業 / 進程調度:
    用于作業調度時,考慮的是哪個作業先到達后備隊列;
    用于進程調度時,考慮的是哪個進程先到達就緒隊列。
  • 是否可搶占:非搶占式
  • 優點:公平、算法實現簡單。
  • 缺點:對長作業有利,對短作業不利。
    排在長作業(進程)后面的短作業需要等待很長時間,帶權周轉時間很大,對短作業來說用戶體驗不好。
  • 是否導致饑餓:不會

二、短作業優先調度算法(SJF)

Short Job First

  • 算法思想:追求最少的平均等待時間、最少的平均周轉時間、最少的平均帶權周轉時間。
  • 算法規則:最短的作業/進程優先得到服務(所謂“最短”,是指要求服務時間最短)。
  • 用于作業 / 進程調度:
    用于作業調度時,稱為“短作業優先算法”Short Job First(SJF);
    用于進程調度時,稱為“短進程優先算法”Short Process First(SPF)。
  • 是否可搶占:
    最短作業優先算法(SJF)和短進程優先算法(SPF)是非搶占式;
    最短剩余時間優先算法(SRTF)是搶占式。
  • 優點:“最短的”平均時間、平均周轉時間。
  • 缺點:不公平。對短作業有利,對長作業不利。
    作業/進程的運行時間是由用戶提供,并不一定真實,不一定能做到真正的短作業優先。
  • 是否導致饑餓:會
    如果源源不斷地有短作業/進程到來,可能使長作業/進程長時間得不到服務,產生“饑餓”現象。如果一直得不到服務,則稱為“餓死”。

最短作業優先調度算法(SJF)

Shortest Job First

  • 算法規則:每次調度時選擇當前已到達且運行時間最短的作業/進程。
  • 是否可搶占:非搶占式
  • 優點:對比先來先服務算法,最短作業優先算法的平均等待時間、平均周轉時間、平均帶權周轉時間都更低。

最短剩余時間優先調度算法(SRTF)

Shortest Remaining Time First

  • 算法規則:每當有進程加入就緒隊列改變時就需要調度,如果新到達的進程剩余時間比當前運行的進程剩余時間更短,則由新進程搶占處理機,當前運行進程重新回到就緒隊列。另外,當一個進程完成時也需要調度。
  • 是否可搶占:搶占式
  • 優點:對比非搶占式的短作業優先算法,搶占式的短作業優先算法的平均等待時間、平均周轉時間、平均帶權周轉時間都更低。

三、響應比最高者優先調度算法(HRRF)

Highest Response Ratio First

  • 算法思想:選擇等待時間和要求服務時間都較短的作業/進程優先調度。
  • 算法規則:在每次調度時先計算各個作業/進程的響應比,選擇響應比最高的作業/進程為其服務。

響應比
= 響應時間/要求服務時間
= (等待時間+要求服務時間)/ 要求服務時間
= 1 + 等待時間/作業處理時間
(作業要求服務時間由用戶給出,是一個常量 )

  • 用于作業 / 進程調度:可用于作業調度,也可用于進程調度。
  • 是否可搶占:非搶占式
    因此只有當前運行的作業/進程主動放棄處理機時,才需要調度,才需要計算響應比。
  • 優點:上述兩種算法的權衡折中。既照顧了短作業,又考慮了作業到達的先后次序,又不會使長作業長期得不到服務。
    等待時間相同時,要求服務時間短的優先(SJF的優先,對短作業有利)
    要求服務時間相同時,等待時間長的優先(FCFS的優點)
    隨著等待時間越來越長,其響應比也會越來越大,從而避免了長作業饑餓的問題(長作業有利)
  • 缺點:要進行響應比計算,增加了系統開銷。
  • 是否導致饑餓:不會

總結:這三種算法只根據公平、平均等待時間、平均周轉時間、平均帶權周轉時間等來評價系統的整體性能指標,但不關心需要時間和任務的緊急程度,對于用戶來說,交互性很差。因此這三種算法只適用于早期的批處理系統。


四、時間片輪轉調度算法(RR)

Round-Robin

  • 算法思想:公平地、輪流地為各個進程服務,讓每個進程在一定時間間隔內都可以得到響應。
    調度程序每次把CPU分配給就緒隊列首進程/線程使用一個時間間隔(稱為時間片),就緒隊列中的每個進程/線程輪流運行一個時間片。

  • 算法規則:按照各進程到達就緒隊列的順序,輪流讓各個進程執行一個時間片(每次選擇的都是排在就緒隊列隊頭的進程)。若進程未在一個時間片內執行完,則剝奪處理機,將進程重新放到就緒隊列隊尾重新排隊。
    時間片的選取:時間片大小的確定要從進程個數、切換開銷、系統效率和響應時間等方面考慮。
    常用輪轉法
    ① 最常用的輪轉法是等時間片輪轉法,每個進程輪流運行相同時間片。
    ② 改進的輪轉法對于不同的進程分配不同的時間片,時間片的長短可以動態修改。

  • 用于作業 / 進程調度:用于進程調度(只有作業放入內存建立了相應的進程后,才能被分配處理機時間片)
  • 是否可搶占:搶占式
    若進程未能在時間片內運行完,將被強行剝奪處理機使用權。
    當一個進程開始運行時,將時間片的值置入間隔時鐘內,當發生間隔時鐘中斷時,中斷處理程序就通知處理器調度程序切換處理器。
  • 優點:公平,響應快,適用于分時操作系統。
  • 缺點:由于高頻率的進程切換,因此有一定開銷;不區分任務的緊急性。
  • 是否導致饑餓:不會

時間片太大或太小
① 如果時間片太大,使得每個進程都可以在一個時間片內就完成,則時間片輪轉調度算法退化為先來先服務調度算法,并且會增大進程的響應時間。
② 如果時間片太小,進程調度、切換是有時間代價的,會導致進程切換過于頻繁,系統會花大量的時間來處理進程切換,從而導致實際用于進程執行的時間比例減小。

五、優先級調度算法(PSA)

Priority Scheduling Algorithm

  • 算法思想:根據任務的緊急程度來決定處理順序。
  • 算法規則:根據確定的優先級選取進程/線程,每次總是選擇就緒隊列中優先級最高者運行。
    用戶進程/線程優先級的規定者有兩種
    用戶:用戶自己提出優先級,稱為外部指定法。優先級越高,費用越高。
    系統:由系統綜合考慮有關因素來確定用戶進程/線程的優先級,稱為內部指定法。
    進程/線程優先級的確定方式
    根據優先級是否隨時間而變,進程/線程優先級的確定有靜態和動態兩種方式:
    靜態優先級:在進程/線程創建時確定,此后不再改變。優先級主要由進程類型、資源需求、時間需求和用戶需求決定。
    優點:比較簡單,開銷小。
    缺點:不夠公平不太靈活,可能出現優先級低的作業/進程長時間得不到調度的情況。
    動態優先級:隨時間而變,基本原則是:
    a. 正在運行的進程/線程隨著占有CPU時間的增加優先級逐漸降低;
    b. 就緒隊列中等待CPU的進程/線程隨著等待時間增加優先級逐漸提高。
    優點:公平性好,靈活,資源利用率高。
    缺點:需要花費比較多的執行程序時間,因而花費的系統開銷比較大。

  • 用于作業 / 進程調度:既可以用于作業調度,也可以用于進程調度。
  • 是否可搶占:搶占式,非搶占式都有。
    區別在于:非搶占式只需在進程主動放棄處理機時進行調度即可,而搶占式還需在就緒隊列變化時,檢查是否發生搶占。
  • 優點:用優先級區分緊急程度、重要程度,適用于實時操作系統。可靈活地調整對各種作業/進程的偏好程度。
  • 缺點:若源源不斷地有高優先級進程到來,則可能導致饑餓。
  • 是否導致饑餓:會
    若源源不斷地有高優先級進程到來,則可能導致饑餓。

六、多級反饋隊列調度算法 (MLFQ)

Multi-Level Feedback Queue

  • 算法思想:對其他調度算法的折中權衡。
  • 算法規則:
    1、建立多級就緒進程隊列,各級隊列優先級從高到低,時間片從小到大。每個隊列賦予不同優先級,較高優先級隊列一般分配給較短的時間片。
    2、新進程到達時先進入第1級隊列,按先來先服務原則排隊等待被分配時間片,若用完時間片進程還未結束,則進程進入下一級隊列隊尾;若此時已經在最下級的隊列,則重新放回該隊列隊尾。
    3、處理器調度每次先從高優先級就緒隊列中選取可占有處理器的進程,只有在選不到時,才從較低優先級就緒隊列中選取進程。即只有第k級隊列為空時,才會為k+1級隊頭的進程分配時間片。

  • 用于作業 / 進程調度:用于進程調度
  • 是否可搶占:搶占式
    在k級隊列的進程運行過程中,若更上級的隊列(1~k-1級)中進入了一個新進程,則由于新進程處于優先級更高的隊列中,因此新進程會搶占處理機,原來運行的進程放回k級隊列隊尾。
  • 優點:對其他調度算法的折中權衡。
    對各類進程相對公平(FCFS的優點);
    短進程只用較少的世界就可完成(SPF的優點);
    每個新到達的進程都可以很快得到響應(RR的優點);
    不必實現估計進程的運行時間(避免用戶作假);
    可靈活地調整對各類進程的偏好程度,比如:CPU密集型進程、I/O密集型進程(拓展:可以將因I/O而阻塞的進程重新放回原隊列,這樣I/O型進程就可以保持較高優先級)。
  • 缺點:可能會導致饑餓
  • 是否導致饑餓:會

總結:比起早期的批處理操作系統來說,由于計算機造價大幅降低,因此之后出現的交互式操作系統(包括分時操作系統和實時操作系統)更注重系統的響應時間、公平性、平衡性等指標。而這幾種算法恰好也能較好地滿足交互式系統的需求。因此這三種算法適用于交互式系統。


ending~~~

有什么問題歡迎留言噢

總結

以上是生活随笔為你收集整理的【操作系统】几种常用调度算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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