日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

操作系统:第二章 进程管理2 - 处理机调度

發布時間:2024/2/28 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统:第二章 进程管理2 - 处理机调度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文已收錄至 Github(MD-Notes),若博客中有圖片打不開,可以來我的 Github 倉庫:https://github.com/HanquanHq/MD-Notes,涵蓋了互聯網大廠面試必問的知識點,講解透徹,長期更新中,歡迎一起學習探討。
面試必會系列專欄:https://blog.csdn.net/sinat_42483341/category_10300357.html
操作系統系列專欄:https://blog.csdn.net/sinat_42483341/category_10519484.html


第二章 進程管理 - 處理機調度

目錄

  • 第二章 進程管理 - 處理機調度
      • 調度的三個層次
        • 高級調度(作業調度)
        • 中級調度(內存調度)
        • 低級調度(進程調度/處理機調度)頻率最高
      • 進程的七狀態模型
          • 五狀態模型 -> 七狀態模型
      • 進程調度的時機
          • 1、當前運行的進程主動放棄處理機
          • 2、當前運行的進程被動放棄處理機
          • 補充:不能進行進程調度與切換的情況
      • 進程調度的方式
        • 非搶占式
        • 搶占方式
      • 調度算法的評價指標
      • 調度算法
        • 1、先來先服務 FIFS(FirstCome First Serve)
        • 2、短作業優先(SJF, Shortest Job First)
        • 3、高響應比優先(HRRN, Highest Response Ratio Next)
            • 以下三種算法適合用于交互式系統,更注重系統的響應時間、公平性、平衡性等指標。
        • 4、時間片輪轉(RR, Round-Robin)
        • 5、優先級調度算法
        • 6、多級反饋隊列調度算法(UNIX使用)


調度的三個層次

高級調度(作業調度)

作業:一個具體的任務
用戶向系統提交一個作業 ≈ 用戶讓操作系統啟動一個程序(來處理一個具體的任務)

簡化理解:好幾個程序需要啟動,到底先啟動哪個

按一定的原則從外存的作業后備隊列中挑選一個作業調入內存,并創建進程。每個作業只調入一次,調出一次。作業調入時會建立PCB,調出時才撤銷PCB。

中級調度(內存調度)

內存不夠時,將某些進程的數據調出到外存。等內存空閑 / 進程需要運行時,再重新調入內存。
暫時調到外存等待的進程為掛起狀態。被掛起的進程PCB會被組織成掛起隊列

按照某種策略決定將哪個處于掛起狀態的進程重新調入內存。一個進程可能會被多次調出、調入內存,因此中級調度發生的頻率要比高級調度更高。

低級調度(進程調度/處理機調度)頻率最高

按照某種策略從就緒隊列中選取一個進程,將處理機分配給它。

進程調度是操作系統中最基本的一種調度,在一般的操作系統中都必須配置進程調度。進程調度的頻率很高,一般幾十毫秒一次。

進程的七狀態模型

暫時調到外存等待的進程狀態為掛起狀態(掛起態,suspend),掛起態又可以進一步細分為 就緒掛起阻塞掛起 兩種狀態

五狀態模型 -> 七狀態模型

進程調度的時機

1、當前運行的進程主動放棄處理機
  • 進程正常終止
  • 運行過程中發生異常而終止
  • 進程主動請求阻塞(如等待I/O)
2、當前運行的進程被動放棄處理機
  • 分給進程的時間片用完
  • 有更緊急的事需要處理(如I/O中斷)
  • 有更高優先級的進程進入就緒隊列
補充:不能進行進程調度與切換的情況
  • 在處理中斷的過程中。中斷處理過程復雜,與硬件密切相關,很難做到在中斷處理過程中進行進程切換。
  • 進程在操作系統內核程序臨界區中。
  • 原語。原子操作不可中斷,要一氣呵成(如修改PCB中進程狀態標志,并把PCB放到相應隊列)
  • 進程調度的方式

    非搶占式

    只允許進程主動放棄處理機。在運行過程中即便有更緊迫的任務到達,當前進程依然會繼續使用處理機,直到該進程終止或主動要求進入阻塞態。

    搶占方式

    當一個進程正在處理機上執行時,如果有更重要的進程需要使用處理機,則立即暫停正在執行的進程,將處理機分配給更重要的那個進程。

    調度算法的評價指標

    由于早期的CPU造價極其昂貴,因此人們會希望讓CPU盡可能多地工作

    CPU利用率:指CPU “忙碌”的時間占總時間的比例。

    • 利用率 = 忙碌的時間 / 總時間

    系統吞吐量:單位時間內完成作業的數量

    • 系統吞吐量 = 總共完成了多少道作業 / 總共花了多少時間

    作業周轉時間:從作業被提交給系統開始,到作業完成為止的這段時間間隔

    它包括四個部分:作業在外存后備隊列上等待作業調度(高級調度)的時間、進程在就緒隊列上等待進程調度(低級調度)的時間、進程在CPU上執行的時間、進程等待I/O操作完成的時間。

    對于用戶來說,更關心自己的單個作業的周轉時間;對于操作系統來說,更關心系統的整體表現,
    因此更關心所有作業周轉時間的平均值

    • 作業周轉時間 = 作業完成時間 – 作業提交時間
    • 平均周轉時間 = 各作業周轉時間之和 / 作業數量
    • 帶權周轉時間 = 作業周轉時間 / 作業實際運行的時間(必然 ≥ 1)
    • 平均帶權周轉時間 = 各作業帶權周轉時間之和 / 作業數

    等待時間:進程/作業處于等待處理機狀態時間之和。等待時間越長,用戶滿意度越低。

    對于進程來說,等待時間就是指進程建立后等待被服務的時間之和。在等待I/O期間,進程也是在被服務的,所以不計入等待時間。

    對于作業來說,不僅要考慮建立進程后的等待時間,還要加上作業在外存后備隊列中等待的時間。

    調度算法其實只會影響作業/進程的等待時間,而無法改變其被服務的時間。

    響應時間:指從用戶提交請求到首次產生響應所用的時間。

    對于計算機用戶來說,會希望自己的提交的請求(比如通過鍵盤輸入了一個調試命令)盡早地開始被系
    統服務、回應。

    調度算法

    1、先來先服務 FIFS(FirstCome First Serve)

  • 算法思想

    主要從“公平”的角度考慮

  • 算法規則

    按照作業/進程到達的先后順序進行服務

  • 作業調度 or 進程調度?

    用于作業調度時,考慮的是哪個作業先到達后備隊列

    用于進程調度時,考慮的是哪個進程先到達就緒隊列

  • 搶占 or 非搶占式?

    非搶占式

  • 優點和缺點

    優點:公平、算法實現簡單
    缺點:對長作業有利,對短作業不利

  • 是否會導致饑餓

    不會

  • 2、短作業優先(SJF, Shortest Job First)

  • 算法思想

    追求最少的平均等待時間,最少的平均周轉時間、最少的平均平均帶權周轉時間

  • 算法規則

    每次調度時,選擇當前已到達、且運行時間最短的作業/進程。

  • 作業調度 or 進程調度?

    可用于作業調度 / 進程調度。用于進程調度時:**短進程優先(SPF, Shortest Process First)**算法

  • 搶占 or 非搶占式?

    SJF / SPF 是非搶占式。搶占式版本:**最短剩余時間優先(SRTN, Shortest Remaining Time Next)**算法

  • 優點和缺點

    優點:“最短的”平均等待時間、平均周轉時間
    缺點:不公平。對短作業有利,長作業不利。可能產生饑餓現象;作業/進程的運行時間由用戶提供的,不一定真實,不一定真正做到短作業優先

  • 是否會導致饑餓

    會。如果不斷有短作業到來,導致長作業饑餓 / 餓死

  • 注意幾個小細節:

  • 如果題目中未特別說明,所提到的“短作業/進程優先算法”默認是非搶占式

  • 很多書上都會說“SJF 調度算法的平均等待時間、平均周轉時間最少”,這個表述不嚴謹。之前例子表明,最短剩余時間優先算法得到的平均等待時間、平均周轉時間還要更少。

    應該加上一個條件“在所有進程同時可運行時,采用SJF調度算法的平均等待時間、平均周轉時間最少”;或者“在所有進程都幾乎同時到達時,采用SJF調度算法的平均等待時間、平均周轉時間最少”;

    如不加上述前提條件,應該說“搶占式的短作業/進程優先調度算法(最短剩余時間優先, SRNT算法)的平均等待時間、平均周轉時間最少”

  • 雖然嚴格來說,SJF的平均等待時間、平均周轉時間并不一定最少,但相比于其他算法(如FCFS),SJF依然可以獲得較少的平均等待時間、平均周轉時間

  • 如果選擇題中遇到“SJF 算法的平均等待時間、平均周轉時間最少”的選項,那最好判斷其他選項是不是有很明顯的錯誤,如果沒有更合適的選項,那也應該選擇該選項

  • 3、高響應比優先(HRRN, Highest Response Ratio Next)

  • 算法思想

    要綜合考慮作業/進程的等待時間和要求服務的時間

  • 算法規則

    在每次調度時先計算各個作業/進程的響應比,選擇響應比最高的作業/進程,上處理機。

    響應比 = (等待時間+要求服務時間) / 要求服務時間

  • 作業調度 or 進程調度?

    均可

  • 搶占 or 非搶占式?

    非搶占式。因此只有當前運行的作業/進程主動放棄處理機時,才需要調度,才需要計算響應比。

  • 優點和缺點

    綜合考慮了等待時間和運行時間(要求服務時間)。

    等待時間相同時,要求服務時間短的優先(SJF 的優點)。

    要求服務時間相同時,等待時間長的優先(FCFS 的優點)

    等待時間越來越久,響應比會越來越大,從而避免了長作業饑餓的問題。

  • 是否會導致饑餓

    不會

  • 以下三種算法適合用于交互式系統,更注重系統的響應時間、公平性、平衡性等指標。

    4、時間片輪轉(RR, Round-Robin)

  • 算法思想

    公平地、輪流地為各個進程服務,讓每個進程在一定時間間隔內都可以得到響應

  • 算法規則

    按照各進程到達就緒隊列的順序,輪流讓各個進程執行一個時間片(如100ms)。若進程未在一個時間片內執行完,則剝奪處理機,將進程重新放到就緒隊列隊尾重新排隊。

    隨著分時操作系統的出現而出現,更注重“響應時間”。

  • 作業調度 or 進程調度?

    進程調度(只有作業放入內存建立了相應的進程后,才能被分配處理機時間片)

  • 搶占 or 非搶占式?

    搶占式。

    由時鐘裝置發出時鐘中斷來通知CPU時間片已到。進程未能在時間片內運行完,會被剝奪處理機使用權。

  • 優點和缺點

    優點:公平;響應快,適用于分時操作系統;
    缺點:由于高頻率的進程切換,因此有一定開銷;不區分任務的緊急程度。

  • 是否會導致饑餓

    不會

  • 5、優先級調度算法

  • 算法思想

    隨著計算機的發展,特別是實時操作系統的出現,越來越多的應用場景需要根據任務的緊急程度來決定處理順序

  • 算法規則

    每個作業/進程有各自的 優先級,調度時選擇 優先級最高的作業/進程

    通常來說,優先級排序:

    系統進程 > 用戶進程
    前臺進程 > 后臺進程
    I/O密集型進程 > CPU密集型進程(計算型進程)

  • 作業調度 or 進程調度?

    均可。既可用于作業調度,也可用于進程調度。甚至,還會用于在之后會學習的I/O調度中

  • 搶占 or 非搶占式?

    搶占式、非搶占式 都有

    非搶占式在 進程主動放棄處理機 時進行調度即可;搶占式還需在 就緒隊列變化 時,檢查是否會發生搶占。

  • 優點和缺點

    優點:用優先級區分緊急程度、重要程度,可靈活調整,適用于實時操作系統
    缺點:若不斷地有高優先級進程到來,則可能導致饑餓

  • 是否會導致饑餓

  • 6、多級反饋隊列調度算法(UNIX使用)

  • 算法思想

    對其他調度算法的 折中 權衡

  • 算法規則

  • 設置多級就緒隊列,各級隊列優先級從高到低,時間片從小到大

  • 新進程到達時先進入第1級隊列,按FCFS原則排隊等待被分配時間片,若用完時間片進程還未結束,則進程進入下一級隊列隊尾。如果此時已經是在最下級的隊列,則重新放回該隊列隊尾

  • 只有第 k 級隊列為空時,才會為 k+1 級隊頭的進程分配時間片

  • 作業調度 or 進程調度?

    進程調度

  • 搶占 or 非搶占式?

    搶占。在k 級隊列的進程運行過程中,若更上級的隊列(1 ~ k-1級)中進入了一個新進程,則由于新進程處于優先級更高的隊列中,因此新進程會搶占處理機,原來運行的進程放回 k 級隊列隊尾。

  • 優點和缺點

    對各類型進程相對公平(FCFS的優點);每個新到達的進程都可以很快就得到響應(RR的優點);短進程只用較少的時間就可完成(SPF的優點);不必實現估計進程的運行時間(避免用戶作假);可靈活地調整對各類進程的偏好程度,比如CPU密集型進程、I/O密集型進程(拓展:可以將因I/O而阻塞的進程重新放回原隊列,這樣I/O型進程就可以保持較高優先級)

  • 是否會導致饑餓

    會,考慮不斷有短時間的進程到來的情況。

  • 總結

    以上是生活随笔為你收集整理的操作系统:第二章 进程管理2 - 处理机调度的全部內容,希望文章能夠幫你解決所遇到的問題。

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