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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

s5-2 Cpu调度算法

發布時間:2024/9/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 s5-2 Cpu调度算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

調度程序采用什么算法選擇一個進程(作業)?

如何評價調度算法的性能?

調度準則

CPU利用率 – 使CPU盡可能的忙碌
吞吐量 – 單位時間內運行完的進程數
周轉時間 – 進程從提交到運行結束的全部時間
等待時間 – 進程在就緒隊列中等待調度的時間片總和

響應時間 – 從進程提出請求到首次被響應的時間段[在分時系統環境下不是輸出完結果的時間]

調度算法影響的是等待時間,而不能影響進程真正使用 CPU 的時間和 I/O 時間

調度算法

? 先來先服務(FCFS)
? 短作業優先(SJF)
? 優先權調度(Priority Scheduling)
? 時間片輪轉(Round Robin)
? 多級隊列調度(Multilevel Queue)
? 多級反饋隊列調度算法(Multilevel Feedback Queue)

5-2 先來先服務(FCFS)

First-Come, First-Served (FCFS) Scheduling

最簡單的調度算法
可用于作業或進程調度
算法的原則是按照作業到達后備作業隊列(或進程進入就緒隊列)的先后次序來選擇作業(或進程)

FCFS 算法屬于非搶占方式: : 一旦一個進程占有處理機 , 它就一直運行下去,直到該進程完成或者因等待某事件而不能繼續運行時才釋放處理機 。? ?

FCFS 算法易于實現,表面上很公平,實際上有利于長作業,不利于短作業;有利于 CPU 繁忙型,不利于 I/O 繁忙型

Convoy effect? 護航效應
假設有一個CPU進程和許多I/O型進程
當CPU進程占用CPU運行時, I/O型進程可能完成了其I/O操作,回到就緒隊列等待CPU, I/O設備空閑
CPU進程釋放CPU后, I/O型進程陸續使用CPU,并很快轉為 I/O操作,CPU空閑

5-3 短作業優先(SJF)

(關聯到每個進程下次運行的 CPU 脈沖長度,調度最短的進程)

兩種情況:

非搶占式調度 – – 一旦進程擁有 CPU , 它的使用權限只能在該 CPU 脈沖結束后讓出

搶占式調度 – – 發生在有比當前進程剩余時間片更短的進程到達時,也稱為最短剩余時間優先調度

SJF 是最優的 – – 對一組指定的進程而言 , 它給出了最短的平均等待時間

采用SJF有利于系統減少平均周轉時間,提高系統吞吐量。


一般情況下SJF調度算法比FCFS調度算法的效率要高一些, 但實現相對要困難些。


如果作業的到來順序及運行時間不合適,會出現饑餓現象,例如,系統中有一個運行時間很長的作業JN,和幾個運行時間小的作業,然后,不斷地有運行時間小于JN的作業的到來,這樣,作業JN就因得不到調度而餓死。 另外,作業運行的估計時間也有問題。

5-4 優先級和RR 時間片輪轉

優先權調度(Priority Scheduling)

每個進程都有自己的優先數[整數]

CPU分配給最高優先級的進程[假定最小的整數最高的優先級]

SJF是以下一次CPU脈沖長度為優先數的優先級調度

1. 靜態優先權在進程創建時確定,且在整個生命期中保持不變

2. 靜態優先權的問題 Problem=Starvation – low priority processes may never execute
(問題饑餓 – 低優先級的可能永遠得不到運行).
一個很有意思的例子:當MIT的IBM7094機器于1973年關掉時,人們發現一個于1967年提交的一個低優先權的進程還沒有得到運行。
Solution=Aging – as time progresses increase the priority of the process
(解決方法=老化 – 視進程等待時間的延長提高其優先數)

動態優先權是指進程的優先權可以隨進程的推進而改變,以便獲得更好的調度性能

改變優先權的因素

  • 進程的等待時間
  • 已使用的時間處理機
  • 資源使用情況
  • 時間片輪轉(Round Robin)

    每個進程將得到小單位的 CPU 時間[時間片], 通常為 10 - 100 毫秒 。時間片用完后 , 該進程將被搶占并插入就緒隊列末尾

    一般來說,RR的平均周轉時間比SJF長,但響應時間要短一些

    1. q large –> FCFS
    2. q small –> q q must be large with respect o to context switch, otherwise overhead s is too high (q 相對于切換上下文的時間而言足夠長,否則將導致系統開銷過大 ).

    一組進程的平均周轉時間并不一定隨著時間片的增大而降低。一般來說,如果大多數(80%)進程能在一個時間片內完成,就會改善平均周轉時間

    5-5 多級隊列、多級反饋隊列

    多級隊列調度(Multilevel Queue)

    多級隊列
    按進程的屬性來分類,如進程的類型、優先權、占用內存的多少,每類進程組成一個就緒隊列,每個進程固定地處于某一個隊列,如
    Ready queue is partitioned into separate queues(就緒隊列分為):
    ???? foreground (interactive)(前臺)[交互式]
    ???? background (batch) (后臺) [批處理]
    Each queue has its own scheduling algorithm(每個隊列有自己的調度算法)
    ?? foreground – RR
    ?? background – FCFS
    Scheduling must be done between the queues(調度須在隊列間進行).

    固定優先級調度,即前臺運行完后再運行后臺。有可能產生饑餓

    給定時間片調度,即每個隊列得到一定的 CPU 時間,進程在給定時間內執行;如,80% 的時間執行前臺的 RR 調度,20% 的時間執行后臺的 FCFS 調度

    多級反饋隊列調度算法(Multilevel Feedback Queue)

    存在多個就緒隊列,具有不同的優先級,各自按時間片輪轉法調度

    各個就緒隊列中時間片的大小各不相同,優先級越高的隊列時間片越小。

    允許進程在隊列之間移動

    當一個進程執行完一個完整的時間片后被搶占處理器,被搶占的進程優先級降低一級而進入下級就緒隊列,如此繼續,直至降到進程的基本優先級。而一個進程從阻塞態變為就緒態時要提高優先級

    最后會將I/O型和交互式進程留在較高優先級隊列

    進程能在不同的隊列間移動;可實現老化

    多級反饋隊列調度程序由以下參數定義):
    number of queues ( 隊列數 )
    scheduling algorithms for each queue ( 每一隊列的調度算法 )
    method used o to determine when o to upgrade a a process ( 決定進程升級的方法 )
    method used o to determine when o to demote a a process ( 決定進程降級的方法 )
    method used o to determine which queue a a process will enter when that process needs service ( 決
    定需要服務的進程將進入哪個隊列的方法

    總結

    以上是生活随笔為你收集整理的s5-2 Cpu调度算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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