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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux内核杂记(11)-进程调度(6)

發布時間:2025/3/12 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核杂记(11)-进程调度(6) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LINUX實時調度策略

調度策略分類

1、SCHED_FIFO

(1)簡單的先入先出調度方法
(2)不使用時間片,一旦SCHED_FIFO的進程處于可執行狀態,就會繼續執行,直到它自己執行完畢或顯式釋放。
(3)處于可運行狀態的SCHED_FIFO的進程比任何SCHED_NORMAL的進程得到優先調度。
(4)只能在一種情況下被搶占:具有更高優先級的SCHED_FIFO或SCHED_PR任務才可以搶占它,如果存在多個相同優先級的SCHED_FIFO,則輪流執行,前提條件是,它們愿意主動讓出處理器

2、SCHED_PR

SCHED_PR與SCHED_FIFO類似 ,但是在消耗完事先分配給它的時間后就不再執行。
帶有時間片的 SCHED_FIFO算法 ,實時輪流調度算法,在消耗完時間片后,其它同優先級的實時進程繼續執行,但低優先級進程不能搶占高優先級的SCHED_PR進程,即使它已經用盡時間片
給定優先級的實時進程總能搶占比它優先級低的進程

注意:1-2都屬于實時進程,為靜態優先級,也就是說內核不會為它們計算動態優先級,CFS對它們不起作用。

實時優先級從0到MAX_PT_PRIO(默認為100)減1

3、普通非實時調度策略SCHED_NORMAL

4、實時策略不受完全公平調度器管理,受另外一個單獨的調度器管理

其具體實現在kernel/sched_rt.c中。

完全公平調度器(英語:Completely Fair Scheduler,縮寫為CFS),Linux內核的一部分,負責進程調度。參考了康恩·科里瓦斯(Con Kolivas)提出的調度器源代碼后,由匈牙利程式員英格·蒙內(Ingo Molnar)所提出。在Linux kernel 2.6.23之后采用,取代先前的O(1)調度器,成為系統預設的調度器。它負責將CPU資源,分配給正在執行中的進程,目標在于最大化程式互動效能與整體CPU的使用率。使用紅黑樹來實作,算法效率為O(log(n))。
CFS調度器參考了康恩·科里瓦斯(Con Kolivas)所開發的樓梯調度算法(staircase scheduler)與RSDL(The Rotating Staircase Deadline Schedule)的經驗[2] ,選取花費CPU執行時間最少的進程來進行調度。CFS主要由sched_entity 內含的 vruntime所決定,不再跟蹤process的sleep time,并揚棄active/expire的概念, runqueue里面所有的進程都平等對待,CFS使用“虛擬運行時”(virtual running time)來表示某個任務的時間量。
CFS改使用紅黑樹算法,將執行時間越少的工作(即 sched_entity)排列在紅黑樹的左邊[3],時間復雜度是O(log N),節點(即rb_node)的安插工作則由dequeue_entity()和enqueue_entity()來完成。當前執行的task通過呼叫 put_prev_task 返回紅黑樹,下一個待執行的task則由pick_next_task來呼叫。蒙內表示, CFS在百分之八十時間都在確實模擬處理器的處理時間。

總結

以上是生活随笔為你收集整理的linux内核杂记(11)-进程调度(6)的全部內容,希望文章能夠幫你解決所遇到的問題。

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