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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux内核杂记(7)-进程调度(2)

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

1、進程調度的效果應如同系統具備一個理想中的完美多任務處理器,每個進程 能獲得1/n 個處理器時間,n指可運行進程數量。
2、調度時進程搶占會帶來一定的代價,換入與換出進程消耗,緩存效率等。CFS考慮了這類額外消耗,確保系統性能不受損失。
3、CFS允許每個進程運行一段時間 、循環輪轉、選擇運行最少的進程 作為下一個運行進程。
4、在所有可運行進程總 數基礎 上計算出一個進程應運行多久,nice作為進程 獲得的處理器運行比的權重 ,高的nice值低處理器使用權重。‘
5、每個進程 按其權重 在全部可運行進程中占比例的時間片來運行,為計算 準確的時間 版 ,為無限小調度周期的近似值設立目標 延遲,越小的調度周期(目標延遲)越帶來好的交互性。
6、為引入每個進程獲得的時間 片底線稱為最小粒度,默認為1ms。每個進程最少獲得1ms運行時間。
7、相關代碼在kernel/sched_fair.c中
8、CFS維護每個進程運行時間記賬,使用調度器實體結構,定義在<linux/sched.h>中的struct_sched_entity,追蹤進程運行記賬,調度器實體結構作為一個名為se的成員變量,嵌入在進程描述符struct task_struct內。
9、虛擬實時 。vruntime變量存放進程的虛擬運行時間 ,該 時間 經過 所有可運行進程總數的標準化:
(1)以ns為單位
(2)記錄程序運行了多長 時間 和應再運行多久。
(3)kernel/sched_fair.c的update_curr()實現記賬功能,它計算 當前進程執行時間 ,存放在變量delta_exec變量后,傳遞給__update_curr(),根據當前可運行進程 總數對傳遞過來的運行時間 進行加權計算。最后將上述權重值與當前運行進程的vruntime相加,
10、CFS調度算法核心:選擇具有最小vruntime的任務,利用紅黑樹組織可運行進程隊列,并迅速找到最小vruntime

總結

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

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