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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统复习笔记 06 CPU Scheduling CPU调度

發布時間:2023/12/3 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统复习笔记 06 CPU Scheduling CPU调度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CPU的三級調度:
1.高級調度(Long-term):作業調度,從外存進內存
2.低級調度(Short-term):進程調度,分配處理機
3.中級調度(Medium-term):對換
通過多道程序設計得到CPU的最高使用率。
CPU-IO脈沖周期:進程的執行包括進程CPU上執行和等待IO。
進程的執行以CPU脈沖開始,其后跟著IO脈沖。進程的執行就是在這兩個狀態之間切換。


CPU調度可能發生以下情況:
1.從運行轉到等待
2.從運行轉到就緒
3.從等待轉到就緒
4.中止運行


其中1、4情況下的調度為非搶占式調度,所有其他情況下發生的調度成為搶占式調度。
非搶占式調度:把處理機分配給某進程后,讓其一直執行,知道該進程完成或發生某事件被阻塞時,才把處理機分配給其他進程,不允許其他進程搶占已經分配出去的處理及。
搶占方式:允許調度程序根據某個原則,去停止某個正在執行的進程,將處理及重新分配給另一個進程。
搶占的原則:
1.時間片原則
2.優先權原則
3.短作業優先原則


分派程序負責將對CPU的控制權轉交給進程調度選擇的進程,
包括:切換上下文、切換到用戶態、跳轉到用戶程序的適當位置并重新執行。?


分派延遲:分派程序種植一個進程的運行并啟動另一個進程所花費的時間。


調度準則:
1.CPU利用率(CPU utilization):使CPU盡可能忙碌。
2.吞吐量(Throughput):單位時間內運行完的進程數。
3.周轉時間(Turnaround time):進程從提交到運行結束的全部時間。
4.等待時間(Waiting time):進程在就緒隊列中等待調度的時間片總和。
5.響應時間(Response time):從進程提出請求到首次被相應的時間段。注意:在分時系統環境下不是輸出完整結果的時間
6.帶權周轉時間:周轉時間/實際運行時間


調度算法影響的是等待時間,而不能影響真正使用CPU的時間和IO時間。


調度算法:
1.先來先服務(FCFS)
——屬于非搶占式調度,一旦一個進程占有處理及,它就一直運行下去,知道該進程完成或者因為等待某事件而不能繼續運行時才釋放處理機。
——有利于長作業不利于短作業,有利于CPU型作業,不利于IO型作業。


2.短作業優先(SJF):SJF是最優的,對一組指定的進程而言,它給出了最短的平均等待時間。
——有兩種調度形式:
(1)非搶占式調度(nonpreemptive):一旦進程擁有CPU,它的使用權小只能等待該CPU脈沖結束后才讓出。
(2)搶占式調度(Preemptive):發生在有比當前進程剩余時間片更短的進程到達時,也稱為最短剩余時間優先調度。
預測CPU脈沖長度:T(n+1) = a*t(n) + (1-a)*T(n) 其中t(n)是實際運行時間,T(n)是預測時間。
——采用SJF有利于系統減少平均周轉時間,提高系統吞吐量。


3.優先權調度(Priority Scheduling)
——同樣有兩種調度形式:
(1)非搶占式調度(nonpreemptive)
(2)搶占式調度(Preemptive)
——CPU分配給最高優先級的進程[嘉定最小整數=最高的優先級]
——SJF是以下一次CPU脈沖長度為優先數的優先級調度。
——靜態優先權:在進程創建時確定,而且在整個生命期中保持不變。
——靜態優先權可能會出現饑餓問題。解決方案:老化(視進程等待時間的延長提高其優先數)。
——動態優先權:進程的優先權可以隨進程的推進而改變。改變優先權的因素:進程的等待時間、已使用處理機的時間、資源使用情況。


4.時間片輪轉(Round Robin)
——每個進程將得到小單位的CPU時間,通常為10-100ms。時間片用完后,該進程將被搶占并插入就緒隊列的末尾。
——一般來說,RR的平均周轉時間比SJF長,但響應時間要短一些。
——時間片長度對于切換上下文的時間而言應足夠長,否則將導致系統開銷過大。
——一組進程的平均周轉時間并不一定隨著時間片的增大而降低。一般來說,如果大多數(80%)進程能在一個時間片內完成,就會改善平均周轉時間




5.多級隊列調度(Multilevel Queue)
——按進程的屬性來分類,每個進程固定地處于某一個隊列,每個隊列有自己的調度算法,調度需要在隊列間進行。
——給定時間片調度,即每個隊列得到一定的CPU時間,進程在給定時間內執行;如,80%的時間執行前臺的RR調度,20%的時間執行后臺的FCFS調度。






6.多級反饋隊列調度(Multilevel Feedback Queue)
——存在多個就緒隊列,具有不同的優先級,各自按時間片輪轉法調度。
——允許進程在隊列之間移動。
——各個就緒隊列中時間片的大小各不相同,優先級越高的隊列時間片越小。


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


——而一個進程從阻塞態變為就緒態時要提高優先級。
——最后會將I/O型和交互式進程留在較高優先級隊列

——多級反饋隊列調度程序由以下參數定義:
——隊列數、每一隊列的調度算法、決定進程升級的方法、決定進程降級的方法、決定需要服務的進程將進入哪個隊列的方法。


7.高響應比優先調度算法(Highest Response Ratio Next)
RP = 1 + 已等待時間/要求運行時間
HRRN算法實際上是FCFS算法和SJF算法的折衷。
優點:等待時間相同則SJF,要求服務時間相同,則FCFS。長作業優先級隨著等待時間的增加而提高,不會出現長時間得不到相應的情況。
缺點:作業調度程序要統計作業的等待時間,做浮點運算浪費大量的計算時間。




Dispatch Latency 分派延遲
優先級倒置:如果較高優先級的進程需讀或修改正在被另一個低優先級進程所訪問的內核數據,高優先級進程需要等待低優先級的進程完成。
優先級繼承:(正在訪問高優先級進程所需資源的)低優先級進程繼承高優先級,直到相關資源處理完畢,它們的優先級再返回原來的值。


Thread Scheduling 線程調度
1.用戶級線程需要運行的話,需通過LWP映射到某個內核級線程。
2.局部調度(Local Scheduling):線程怎樣決定將那個線程列入有效的輕量級線程。
3.全局調度(Global Scheduling):內核怎樣決定下一個運行的內核線程。
4.Solaris scheduling 采用基于優先級的進程調度。
5.Windows XP采用基于優先級的,可搶占的調度算法,線程按時間片來使用CPU。
——優先級相同的進程按RR調度
——非實時優先級是動態調整的,實時優先級是固定不變的。
6.Linux提供2種進程調度算法
——分時:實現進程間公平可搶占調度。
——實時:按優先級調度。
——linux支持SMP,每個CPU有自己的runqueue,并獨自進行調度。
——每個runqueue有兩組優先級:Active 和 Expired
——調度程序從Active array中選取優先級最高的進程使用CPU,當所有進程都用盡了自己的時間片,交換Active array與expired array。
7.JVM使用的是搶占式的、基于優先級的調度算法。


多道程序的道指的是同一時刻能進內存的進程數量。

總結

以上是生活随笔為你收集整理的操作系统复习笔记 06 CPU Scheduling CPU调度的全部內容,希望文章能夠幫你解決所遇到的問題。

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