您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“l(fā)inux任務(wù)調(diào)度機(jī)制指的是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“l(fā)inux任務(wù)調(diào)度機(jī)制指的是什么”吧!
linux的任務(wù)調(diào)度機(jī)制是指系統(tǒng)在某個(gè)事件執(zhí)行的特定命令或程序;每一個(gè)CPU都會(huì)有一個(gè)隊(duì)列來(lái)存儲(chǔ)處于“TASK_RUNNING”狀態(tài)的任務(wù),任務(wù)調(diào)度就是從這些隊(duì)列中取出優(yōu)先級(jí)最高的任務(wù)作為下一個(gè)放入CPU執(zhí)行的任務(wù)。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
是指系統(tǒng)在某個(gè)時(shí)間執(zhí)行的特定的命令或程序
在Linux中,每一個(gè)CPU都會(huì)有一個(gè)隊(duì)列來(lái)存儲(chǔ)處于TASK_RUNNING狀態(tài)的任務(wù),任務(wù)調(diào)度就是從這些隊(duì)列中取出優(yōu)先級(jí)最高的任務(wù)作為下一個(gè)放入CPU執(zhí)行的任務(wù)。
任務(wù)的調(diào)度需要進(jìn)過(guò)兩個(gè)過(guò)程:上下文切換和選擇算法
上下文切換
從一個(gè)進(jìn)程的上下文切換到另一個(gè)進(jìn)程的上下文,因?yàn)槠浒l(fā)生頻率很高,所以通常都是調(diào)度器效率高低的關(guān)鍵。
schedule()函數(shù)中調(diào)用了switch_to宏,這個(gè)宏實(shí)現(xiàn)了進(jìn)程之間的真正切換,其代碼存放于include/i386/system.h。
switch_to宏是用嵌入式匯編寫(xiě)成的,較難理解。
switch_to()函數(shù)正常返回,棧上的返回地址是新進(jìn)程的task_struct::thread::eip,即新進(jìn)程上一次被掛起時(shí)設(shè)置的繼續(xù)運(yùn)行的位置(上一次執(zhí)行switch_to()時(shí)的標(biāo)號(hào)”1:”位置)。
至此轉(zhuǎn)入新進(jìn)程的上下文中運(yùn)行。這其中涉及到wakeup,sleepon等函數(shù)來(lái)對(duì)進(jìn)程進(jìn)行睡眠與喚醒操作。
選擇算法
Linux schedule()函數(shù)將遍歷就緒隊(duì)列中的所有進(jìn)程,調(diào)用goodness()函數(shù)計(jì)算每一個(gè)進(jìn)程的權(quán)值weight,從中選擇權(quán)值最大的進(jìn)程投入運(yùn)行。Linux的調(diào)度器主要實(shí)現(xiàn)在schedule()函數(shù)中。
調(diào)度步驟:
Schedule函數(shù)工作流程如下:
(1)清理當(dāng)前運(yùn)行中的進(jìn)程
(2)選擇下一個(gè)要運(yùn)行的進(jìn)程(pick_next_task)
(3)設(shè)置新進(jìn)程的運(yùn)行環(huán)境
(4) 進(jìn)程上下文切換
Linux 調(diào)度器將進(jìn)程分為三類
進(jìn)程調(diào)度是操作系統(tǒng)的核心功能。
調(diào)度器只是調(diào)度過(guò)程中的一部分,進(jìn)程調(diào)度是非常復(fù)雜的過(guò)程,需要多個(gè)系統(tǒng)協(xié)同工作完成。
本文所關(guān)注的僅為調(diào)度器,它的主要工作是在所有RUNNING 進(jìn)程中選擇最合適的一個(gè)。
作為一個(gè)通用操作系統(tǒng),Linux 調(diào)度器將進(jìn)程分為三類:
交互式進(jìn)程
此類進(jìn)程有大量的人機(jī)交互,因此進(jìn)程不斷地處于睡眠狀態(tài),等待用戶輸入。典型的應(yīng)用比如編輯器 vi。此類進(jìn)程對(duì)系統(tǒng)響應(yīng)時(shí)間要求比較高,否則用戶會(huì)感覺(jué)系統(tǒng)反應(yīng)遲緩。
批處理進(jìn)程
此類進(jìn)程不需要人機(jī)交互,在后臺(tái)運(yùn)行,需要占用大量的系統(tǒng)資源。但是能夠忍受響應(yīng)延遲。比如編譯器。
實(shí)時(shí)進(jìn)程
實(shí)時(shí)對(duì)調(diào)度延遲的要求最高,這些進(jìn)程往往執(zhí)行非常重要的操作,要求立即響應(yīng)并執(zhí)行。比如視頻播放軟件或飛機(jī)飛行控制系統(tǒng),很明顯這類程序不能容忍長(zhǎng)時(shí)間的調(diào)度延遲,輕則影響電影放映效果,重則機(jī)毀人亡
到此,相信大家對(duì)“l(fā)inux任務(wù)調(diào)度機(jī)制指的是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。