軟考(軟件設計師)--操作系統之進程管理(二)

一、進程調度

也稱短程調度,用來決定就緒隊列中的哪個進程應獲得處理機,然後再由分派程序把處理機分配中該進程。
最基本的一種調度,三種類型OS都必須有進程調度。

進程調度可以採用兩種調度方式:

  • 非搶佔方式(Non-preemptive Mode)
  • 搶佔式(Preemptive Mode)

非搶佔式方式:
一旦把處理據分配給某進程後,便讓該進程一直執行,直至該進程完成或發生某事件而被阻塞時,才把處理機分配給其他進程,絕不允許進程搶佔已分配出去的處理機。
評價:實現簡單、系統開銷小;適用於大多數的批處理OS,但在要求比較嚴格的實時系統中,不宜採用這種調度方式。

搶佔式方式:
允許調度程序根據某中原則,去暫停某個正在執行的進程,將處理機重新分配給另一進程。

搶佔的原則:

  • 時間片原則:各進程按時間片運行,一個時間片用完時,停止該進程執行重新進行調度。
  • 短作業(進程)優先原則:短作業(進程)可以搶佔長作業(進程)的處理機。
  • 優先權原則:優先權高的可以搶佔優先權低的進程的處理機。

二、調度算法:

  • 先來先服務
  • 短作業(進程)優先調度算法
  • 高優先權優先調用算法
  • 時間片輪轉調度算法

先來先服務:(FCFS)
經常用的算法。
每次調度都從就緒隊列中選擇一個最先進入該隊列的進程,爲之分配處理機,使之運行。
該算法比較有利於長作業(進程),而不利於短作業

短作業(進程)優先 (SJ§F):
可以分別用於作業調度和進程調度。

  • 從後備隊列中選擇一個或若干個估計運行時間最短的作業,將他們調入內存運行。
  • 是從就緒隊列中選出一估計運行時間最短的進程,將處理機分配給他,使它立即執行。
    優點:有效降低作業的平均等待時間,提高系統的吞吐量
    缺點:對長作業不利。未考慮作業的緊迫長度,因而不能保證緊迫性作業(進程)會被及時處理。
    由於作業(進程)的長短只是根據估計執行時間定的,主觀因素較大,不一定能真正做到短作業優先。

高優先權優先調用算法:
爲了照顧緊迫性作業,使之在進入系統後便獲得優先處理,引入了高優先權優先(FPF)調度算法。
此算法常作用與批處理系統中,操作作業調度算法,也作爲多種操作系統中的進程調度算法,還可用於實時系統中。

優先權的類型:
靜態優先權:
在創建進程時確定的,在進程的整個運行期間保持不變。利用某一範圍的整數來表示(0-7),又稱爲優先數。
動態優先權:在創建進程時所賦予的優先權可以隨進程的推進或隨其它等待時間的增加而改變。

高響應比優先調度算法
在批處理系統中,短作業優先算法是一種比較好的算法,其主要不足是長作業的運行得不到保證。我們爲了每個作業引入動態優先權,並使作業的優先級隨着等待時間的增加而以速率a提高,則可解決問題:
優先權=(等待時間+要求服務時間)/要求服務時間
由於等待時間與服務時間之和是系統的響應時間,故上式又表示爲Rp=響應時間/要求服務時間。
從上式看出:

  • 如作業等待時間相同,則要求服務的時間越短優先權越高,所以該算法利用短作業。
  • 當要求服務的時間相同,作業優先權的高低決定於其等待時間的長短,所以時先來先服務。
  • 對於長作業,作業的優先級可以隨等待時間的增加而提高,當其等待時間足夠長也可獲得處理機。

時間片輪轉調度算法:
是一種最古老、最簡單,最公平且使用最廣的算法。每個進程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間。

  • 如果在時間片結束時進程還沒運行結束,則CPU將剝奪並分配給另一個進程,該進程到就緒對流額尾重新排隊。
  • 如果進程在時間片內阻塞或結束,則CPU當即進行切換。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章