詳解Linux進(jìn)程調(diào)度策略
本文通過(guò)Linux進(jìn)程調(diào)度的5類方式詳細(xì)分析了策略以及實(shí)現(xiàn)過(guò)程中的詳細(xì)講解。
1、Linux 下進(jìn)程分為5種類別,分別是停止類、截止類、實(shí)時(shí)類、公平類、空閑類,
每種類別都有一個(gè)運(yùn)行隊(duì)列,每次調(diào)度時(shí),就是先按照類別優(yōu)先級(jí)排序,再按照每個(gè)類別內(nèi)的最高優(yōu)先級(jí)任務(wù)調(diào)度運(yùn)行。

文件:core.c (linux-4.6\kernel\sched)

解讀:先看下面的for循環(huán),可以看到實(shí)現(xiàn)思路是,遍歷每種類別,選擇下一個(gè)可運(yùn)行的任務(wù)。由于大部分任務(wù)都屬于公平隊(duì)列,所以,絕大部分情況下,都在公平隊(duì)列中進(jìn)行選擇,所以,內(nèi)核開(kāi)發(fā)者在上面的代碼中加了likely()提高性能。






2、調(diào)度程序schedule()的調(diào)用次序。
schedule() --- > __schedule () --- > pick_next_task()
文件:core.c (linux-4.6\kernel\sched)


。。。。。。(中間有省略)

相關(guān)文章
Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法
當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。下面這篇文章主要給大家介紹了關(guān)于在Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11
CentOS 6.6安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
這篇文章主要介紹了CentOS 6.6服務(wù)器下安裝配置LAMP服務(wù)器的方法,考慮到apache處理php的性能可以選擇apache,如果靜態(tài)頁(yè)面可以安裝nginx2016-10-10
ubuntu下使用sublime text時(shí)如何完美輸入中文
網(wǎng)上的很多方法都不能讓ubuntu下的sublime輸入中文,使用Input Helper也很是別扭,這個(gè)方法是某大神通過(guò)啟動(dòng)sublime程序前運(yùn)行腳本修改sublime來(lái)實(shí)現(xiàn)中文輸入。2015-12-12
Linux中/var/spool/postfix/maildrop占空間很大的原因解析
這篇文章主要給大家介紹了關(guān)于Linux中/var/spool/postfix/maildrop占空間很大的原因解析,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-04-04
Ubuntu常見(jiàn)錯(cuò)誤問(wèn)題的解決方法小結(jié)
最近經(jīng)常使用ubuntu,難免會(huì)遇到各種各樣的問(wèn)題。所以想著記錄下來(lái),方便自己和大家以后需要的時(shí)候查看參考,文中介紹的很詳細(xì),相信對(duì)大家學(xué)習(xí)或者使用Ubuntu能有一定的參考借鑒價(jià)值,感興趣的朋友們下面來(lái)一起看看吧。2016-11-11
VirtualBox 未指定要bridged的網(wǎng)絡(luò)界面的解決辦法
這篇文章主要介紹了VirtualBox 未指定要bridged的網(wǎng)絡(luò)界面的解決辦法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家解決遇到這樣的問(wèn)題,需要的朋友可以參考下2017-10-10
詳解Linux系統(tǒng)中網(wǎng)卡MAC地址克隆方法
本篇文章主要介紹了詳解Linux系統(tǒng)中網(wǎng)卡MAC地址克隆方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06

