挑戰408——操作系統(7)——處理機調度

我們前面說過,進程狀態的切換離不開處理機的調度。調度是操作系統的基本功能,幾乎所有計算機資源再使用之前都要經過調度。經過進程調度,才把CPU分配給合適的進程,對於處理機而言,可分配的資源就是在處理機上運行的時間。進程調度是多道程序運行的根本。通過進程間切換CPU,操作系統才能提高計算機的效率。

調度的類型及其方式

多道程序的核心是調度,處理機的調度方式有三種,稱爲高級調度,中級調度,低級調度。

  • 高級調度。又稱爲作業調度,它決定那個程序可以進入系統中進行處理,它控制多道程序的道數,在一個通用操作系統的批處理部分,新提交的作業被髮送到磁盤上,並形成一個後備隊列,高級調度實際就是負責從中選擇一個或者多個作業,使它們進入內存。(至於爲什麼是進入內存而不是到CPU,這部分內容在內存管理部分會有提及)。
  • 中級調度。又稱爲對換調度,引入中級調度的目的是爲了提高內存的利用率和系統的吞吐量。系統將暫時不能運行的進程,調到外存等待掛起,待進程重新具備運行條件的時候,再又中級調度將其重新調入內存(具體的,在內存管理的虛擬存儲器中會提到)。
  • 低級調度又稱爲進程調度,它決定就緒隊列中哪個進程獲得處理機。是最基本也是最接近CPU的調度。也是我們進程管理中學習的重點。

進程調度的方式分爲兩種,稱爲不可剝奪方式(適用於批處理的操作系統),可剝奪方式。

  • 不可剝奪方式。又稱非搶佔方式,這種方式一旦把處理機分配給某個進程,那麼它就會一直佔用這個處理機,直到運行結束或者發生異常。(也就是說在進程佔用處理機期間,不允許其他進程佔用處理機)
  • 可剝奪方式。又稱搶佔方式,這種方式允許下一個進程按照某種規則或者情況(比如優先級)搶佔處理機。(常用於一些需要應付緊急系統)。

調度的時機和評價標準

引發進程調度的情況有很多種,但是在進程的退出和進程阻塞時,系統一定會進行進程間的調度。而下面的三種情況,雖然不是一定會發生,但是還是經常會發生(新進程的創建,中斷的發生,時鐘中斷等等)。這部分內容曾經考過一道選擇題,2分。

在操作系統中,調度的目標是按照可以以系統優化的方式進行分配處理機的時間,常用的評價標準爲下面幾個:

  1. CPU利用率。由於操作系統中價格最貴的是CPU,所以處理效率成爲了衡量操作系統性能的重要指標。所以要提高CPU的利用率,可以使得CPU儘可能的處於忙的狀態。其計算方式爲:(CPU的使用時間 / 完成所有作業需要的總時間) X 100%
  2. 系統吞吐量。表示單位時間內所完成的作業數量。
  3. 等待時間。指進程處於等待處理機的狀態之和。作爲用戶顯然不希望自己的作業一直處於等待狀態。
  4. 響應時間。用戶提交請求,到系統響應(通常是系統這個時候有一個輸出)的時間間隔。
  5. 週轉時間指一個用戶作業從被提交到完成的時間間隔。對於用戶而言,當然希望週轉時間越短越好(就像你玩遊戲,不想它長時間停留在加載界面)。但是我們作爲系統的管理者,肯定不可能做到每個作業都管理的 如此精確,因此我們更關心的是平均週轉時間。如果每個作業帶權,那麼我們就趁稱爲帶權的週轉時間。
    計算的方法如下:
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

其中(1)(5)的計算就是考試的重點,尤其是(5)更是最常用的,用來衡量處理機調度性能的標準,所以我們在這裏再說說週轉時間這個概念,週轉時間指一個用戶作業從被提交到完成的時間間隔。假設有這麼一道題:
在這裏插入圖片描述
單道式運行,也就是一個一個來,很好,每個執行2h,又是同時到達,顯然,一共花了2h x 4 = 8h,平均下來 8h/4 = 2h。嗯,爲什麼沒有這個選項?還好沒這個選項,否則你連自己哪裏錯了都不知道。認真思考,我們算的是平均完成時間,作業從提交到完成可不僅僅呆了完成時間那麼短,我們畫圖看看。
在這裏插入圖片描述
作業從提交到完成,不僅僅經過了運行時間,還需要等待,因爲前面的進程在運行,那麼它就必須等待。(這類題還可以用甘特圖來解決,到時候刷題再說)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章