亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

詳解Linux內核進程調度函數schedule()的觸發和執行時機

2024-09-05 23:04:34
字體:
來源:轉載
供稿:網友

內核的調度操作分為觸發和執行兩個部分,觸發時僅僅設置一下當前進程的TIF_NEED_RESCHED標志,執行的時候則是通過schedule()函數來完成進程的選擇和切換。當前進程的thread_info->flags中TIF_NEED_RESCHED位表示需要調用schedule()函數進行調度。內核在兩種情況下會設置該標志,一個是在時鐘中斷進行周期性的檢查時,另一個是在被喚醒進程的優先級比正在運行的進程的優先級高時。

周期性地更新當前任務的狀態時:

定時中斷處理函數中會調用schedule_tick()用于處理關于調度的周期性檢查和處理,其調用路徑是和時鐘處理有關的tick_periodic()->update_process_times()->scheduler_tick()或者tick_sched_handle()->update_process_times()->scheduler_tick(),主要用于更新就緒隊列的時鐘、CPU負載和當前任務的運行時間統計等,如下所示:

//linux-3.13/kernel/sched/core.cvoid scheduler_tick(void){  int cpu = smp_processor_id();         //獲取當前cpu編號  struct rq *rq = cpu_rq(cpu);         //取得對應cpu的rq(就緒隊列)  struct task_struct *curr = rq->curr;     //獲取當前運行的任務  sched_clock_tick();  raw_spin_lock(&rq->lock);  update_rq_clock(rq);             //更新隊列時鐘  curr->sched_class->task_tick(rq, curr, 0);  //調用當前任務的調度類對應的函數  update_cpu_load_active(rq);          //更新本處理器的負載  raw_spin_unlock(&rq->lock);  perf_event_task_tick();#ifdef CONFIG_SMP  rq->idle_balance = idle_cpu(cpu);  trigger_load_balance(rq, cpu);        //必要時進行負載均衡#endif  rq_last_tick_reset(rq);}

其中curr->sched_class->task_tick(rq, curr, 0);這行代碼調用了當前任務的調度類的task_tick()函數,這個函數根據具體情況決定是否需要對當前任務設置TIF_NEED_RESCHED標志,如果需要則最終調用set_tsk_need_resched()設置該標志。需要注意的是,此處僅僅是設置標志而沒有執行schedule()函數,在各種系統調用、中斷的返回代碼最后,才會根據這個標志來決定是否執行schedule()函數。

睡眠的任務被喚醒時:

當睡眠任務所等待的事件到達時,內核(例如驅動程序的中斷處理函數)將會調用wake_up()喚醒相關的任務,并最終調用try_to_wake_up()。它完成三件事:將任務重新添加到就緒隊列,將運行標志設置為TASK_RUNNING,如果被喚醒的任務可以搶占當前運行任務則設置當前任務的TIF_NEED_RESCHED標志。

設置了TIF_NEED_RESCHED標志之后,真正調用執行schedule()函數的時機只有兩種,第一種是系統調用或者中斷返回時,根據TIF_NEED_RESCHED標志決定是否調用schedule()函數(從效率方面考慮,趁著還在內核態把該處理的事情處理完畢);第二種情況是當前任務因為原因需要睡眠,進程睡眠后立即調用schedule()函數,在內核中這種情況也比較多,比如磁盤、網卡等設備驅動程序中。

參考文獻:《Linux技術內幕》

PS:剛開始學習Linux內核的時候很容易被各種結構體各種概念充斥腦海,一團亂麻。這時候需要把它們各自負責的功能以及之間相互的配合理清楚,推薦這本書??赐辍禠inux內核設計與實現》后可以相互比照,效果不錯。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区中文字幕| 91麻豆桃色免费看| 精品久久久久久久大神国产| 亚洲成人久久久久| 精品视频偷偷看在线观看| yellow中文字幕久久| 国产精品视频内| 国产亚洲在线播放| 一区二区在线免费视频| 97人洗澡人人免费公开视频碰碰碰| 欧美成人激情图片网| 亚洲一区二区国产| 在线观看欧美日韩国产| 久久电影一区二区| 欧美超级乱淫片喷水| 日本精品视频网站| 国产va免费精品高清在线观看| 日韩电视剧免费观看网站| 欧美成人精品h版在线观看| 亚洲国产古装精品网站| 久久99视频精品| 亚洲xxxxx| 亚州成人av在线| 91亚洲午夜在线| 国产精品高清在线观看| 日韩一区av在线| 欧美在线免费视频| 国产精品黄页免费高清在线观看| 久热精品视频在线| 亚洲精品美女在线| 欧美性猛交xxxx乱大交3| 欧美性xxxx极品hd满灌| 亚洲精品久久久久久下一站| 国产欧亚日韩视频| 最新国产成人av网站网址麻豆| 欧美日韩亚洲成人| 欧美午夜性色大片在线观看| 91夜夜未满十八勿入爽爽影院| 亚洲欧美国内爽妇网| 亚洲欧美中文字幕| 日韩av一区二区在线观看| 欧美日韩福利电影| 国产欧美在线看| 欧美激情在线狂野欧美精品| 日本精品久久久久影院| xxxxx91麻豆| 亚洲成人久久电影| 欧美日韩免费观看中文| 欲色天天网综合久久| 欧美中文字幕第一页| 成人h片在线播放免费网站| 国产精品久久久久久一区二区| 欧美一级片免费在线| 欧美在线视频网| 伊人久久综合97精品| 亚洲国产小视频| 国产偷国产偷亚洲清高网站| 91精品在线国产| 黑人狂躁日本妞一区二区三区| 久久天天躁狠狠躁夜夜躁2014| 91久久综合亚洲鲁鲁五月天| 国产精品成人va在线观看| 国产精品揄拍500视频| 欧美亚洲另类在线| 久久99热这里只有精品国产| 国产成人精品免高潮在线观看| 亚洲日本成人女熟在线观看| 国产成人中文字幕| 日本三级久久久| 亚洲福利在线看| 久久免费视频网站| 亚洲精品美女久久久| 亚洲最大成人免费视频| 欧美激情一区二区三区久久久| 日韩欧美亚洲一二三区| 成人黄色片网站| 国产精品日韩在线| 国产精品视频yy9099| 萌白酱国产一区二区| 欧美国产第一页| 国产欧美va欧美va香蕉在线| 日韩在线国产精品| 日韩精品免费视频| 91中文字幕在线| 国产精品偷伦一区二区| 欧美日韩国产中文字幕| 欧美在线视频导航| 日韩精品久久久久久福利| 精品国产一区二区三区久久狼5月| 亚洲精品资源美女情侣酒店| 欧美激情中文网| 日韩av成人在线观看| 国产精品久久久久一区二区| 欧美激情xxxxx| 奇米四色中文综合久久| 亚洲欧美日韩在线一区| 日韩国产高清污视频在线观看| 欧美激情视频网站| 91成人免费观看网站| 91亚洲永久免费精品| 国产欧美一区二区三区久久人妖| 一个色综合导航| 久久激情五月丁香伊人| 欧美色播在线播放| 欧美专区中文字幕| 最近2019年日本中文免费字幕| 久久99国产精品久久久久久久久| 亚洲国产欧美自拍| 国产深夜精品福利| 2019中文字幕在线观看| 亚洲美女久久久| 欧美小视频在线| 久久精品国产视频| 久久久久久亚洲精品不卡| 欧美极品欧美精品欧美视频| 日产精品99久久久久久| 欧美激情久久久久| 亚洲欧美自拍一区| 久久人91精品久久久久久不卡| 国产精品自产拍在线观看中文| 97久久伊人激情网| 精品视频在线导航| 91亚洲午夜在线| 91在线视频一区| 国产999精品| 都市激情亚洲色图| 欧美在线视频免费播放| 国产精品久久久久秋霞鲁丝| 国产精品国产自产拍高清av水多| 懂色av影视一区二区三区| 亚洲国产精品电影| 国产激情视频一区| 亚洲天堂av在线免费观看| 91精品国产沙发| 欧美日韩中文字幕| 欧美人在线视频| 在线看日韩欧美| 91久久中文字幕| 中文字幕亚洲一区| 日本a级片电影一区二区| 青青久久aⅴ北条麻妃| 亚洲最大中文字幕| 中文字幕一区电影| 国产美女久久久| 日韩在线观看网站| 久久精品国产一区二区电影| 亚洲va久久久噜噜噜| 国产精品一区二区在线| 亚洲精品在线观看www| 久久国产精品久久久久久久久久| 亚洲区在线播放| 亚洲精品国产精品久久清纯直播| 色婷婷综合久久久久| 欧美在线观看网站| 少妇高潮久久77777| 国产精品日韩专区| 国产精品视频久| 亚洲成av人影院在线观看| 亚洲国产精品女人久久久| 亚洲福利视频网| 伊人伊成久久人综合网小说| 亚洲一区二区三区四区视频| 国产精品中文在线| 久久精品影视伊人网|