詳解Linux進程調(diào)度策略
本文通過Linux進程調(diào)度的5類方式詳細分析了策略以及實現(xiàn)過程中的詳細講解。
1、Linux 下進程分為5種類別,分別是停止類、截止類、實時類、公平類、空閑類,
每種類別都有一個運行隊列,每次調(diào)度時,就是先按照類別優(yōu)先級排序,再按照每個類別內(nèi)的最高優(yōu)先級任務(wù)調(diào)度運行。
文件:core.c (linux-4.6\kernel\sched)
解讀:先看下面的for循環(huán),可以看到實現(xiàn)思路是,遍歷每種類別,選擇下一個可運行的任務(wù)。由于大部分任務(wù)都屬于公平隊列,所以,絕大部分情況下,都在公平隊列中進行選擇,所以,內(nèi)核開發(fā)者在上面的代碼中加了likely()提高性能。
2、調(diào)度程序schedule()的調(diào)用次序。
schedule() --- >__schedule ()--- > pick_next_task()
文件:core.c (linux-4.6\kernel\sched)
。。。。。。(中間有省略)
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。