導航:首頁 > 編程系統 > linux任務調度

linux任務調度

發布時間:2021-10-25 07:57:52

『壹』 linux的任務調度機制是什麼

調度程序運行時,要在所有可運行狀態的進程中選擇最值得運行的進程投入運行。選專擇進程的依據是什屬么呢?在每個進程的task_struct結構中有以下四 項:policy、priority、counter、rt_priority。這四項是選擇進程的依據。其中,policy是進程的調度策略,用來區分 實時進程和普通進程,實時進程優先於普通進程運行;priority是進程(包括實時和普通)的靜態優先順序;counter是進程剩餘的時間片,它的起始 值就是priority的值;由於counter在後面計算一個處於可運行狀態的進程值得運行的程度goodness時起重要作用,因此,counter 也可以看作是進程的動態優先順序。rt_priority是實時進程特有的,用於實時進程間的選擇。
Linux用函數goodness()來衡量一個處於可運行狀態的進程值得運行的程度。該函數綜合了以上提到的四項,還結合了一些其他的因素,給每個處於 可運行狀態的進程賦予一個權值(weight),調度程序以這個權值作為選擇進程的唯一依據。關於goodness()的情況在後面將會詳細分析。

『貳』 在Linux 9中,cron用來周期性的進行任務調度,請列出cron任務的格式,如果要月運行一次,怎麼設置請說

1)、cron的格式為
minute hour day month dayofweek command
* * * * *
入果要一月運行一次的話,格式是:
N(0-59) N(0-23) N(1-31) * * command
也可以舉例說明。

2)、法一:用crontab命令逐行進行輸入,按「ctrl+d」退出。
法二:用crontab –e 命令,用編輯器對文件進行編輯。
可用crontab –l 顯示cron信息
3)、/etc/init.d/crond 文件是cron 的服務程序運行腳本;
/etc/crontab是Linux系統維護所需的任務,一般不需要人為修改;
/etc/下的 cron.daily, cron.hourly, cron.monthly, cron.weekly的目錄,存放相應的系統執行任務;
/var/spool/cron/用戶名 是保存此用戶的cron任務的文件。
還有不會的請參考《linux就該這么學》,針對各種linux疑難雜症,幫助linux學習者。

『叄』 在Linux 9中,cron用來周期性的進行任務調度,

1)、cron的格式為

minute hour day month dayofweek command

* * * * *

入果要一月運行一次的話,格式是:

N(0-59) N(0-23) N(1-31) * * command

也可以舉例說明。

2)、法一:用crontab命令逐行進行輸入,按「ctrl+d」退出。

法二:用crontab –e 命令,用編輯器對文件進行編輯。

可用crontab –l 顯示cron信息

3)、/etc/init.d/crond 文件是cron 的服務程序運行腳本;

/etc/crontab是Linux系統維護所需的任務,一般不需要人為修改;

/etc/下的 cron.daily, cron.hourly, cron.monthly, cron.weekly的目錄,存放相應的系統執行任務;

/var/spool/cron/用戶名 是保存此用戶的cron任務的文件。

更多資料請查看《Linux就該這么學》。

『肆』 怎麼評判linux系統調度最優

你是指定時任務調度嗎?簡單的一個crontab就可以幫你解決定時調度問題: crontab -e 編寫crontab任務,可以定時具體到哪天哪分哪秒,很靈活

『伍』 linux進程調度的三種策略是什麼

linux內核的三種主要調度策略:
1,SCHED_OTHER 分時調度策略,
2,SCHED_FIFO實時調度策略,先到先服務
3,SCHED_RR實時調度策略,時間片輪轉

實時進程將得到優先調用,實時進程根據實時優先順序決定調度權值。分時進程則通過nice和counter值決定權值,nice越小,counter越大,被調度的概率越大,也就是曾經使用了cpu最少的進程將會得到優先調度。

SHCED_RR和SCHED_FIFO的不同:
當採用SHCED_RR策略的進程的時間片用完,系統將重新分配時間片,並置於就緒隊列尾。放在隊列尾保證了所有具有相同優先順序的RR任務的調度公平。
SCHED_FIFO一旦佔用cpu則一直運行。一直運行直到有更高優先順序任務到達或自己放棄。
如果有相同優先順序的實時進程(根據優先順序計算的調度權值是一樣的)已經准備好,FIFO時必須等待該進程主動放棄後才可以運行這個優先順序相同的任務。而RR可以讓每個任務都執行一段時間。

相同點:
RR和FIFO都只用於實時任務。
創建時優先順序大於0(1-99)。
按照可搶占優先順序調度演算法進行。
就緒態的實時任務立即搶占非實時任務。

所有任務都採用linux分時調度策略時:
1,創建任務指定採用分時調度策略,並指定優先順序nice值(-20~19)。
2,將根據每個任務的nice值確定在cpu上的執行時間(counter)。
3,如果沒有等待資源,則將該任務加入到就緒隊列中。
4,調度程序遍歷就緒隊列中的任務,通過對每個任務動態優先順序的計算權值(counter+20-nice)結果,選擇計算結果最大的一個去運行,當這個時間片用完後(counter減至0)或者主動放棄cpu時,該任務將被放在就緒隊列末尾(時間片用完)或等待隊列(因等待資源而放棄cpu)中。
5,此時調度程序重復上面計算過程,轉到第4步。
6,當調度程序發現所有就緒任務計算所得的權值都為不大於0時,重復第2步。

所有任務都採用FIFO時:
1,創建進程時指定採用FIFO,並設置實時優先順序rt_priority(1-99)。
2,如果沒有等待資源,則將該任務加入到就緒隊列中。
3,調度程序遍歷就緒隊列,根據實時優先順序計算調度權值(1000+rt_priority),選擇權值最高的任務使用cpu,該FIFO任務將一直佔有cpu直到有優先順序更高的任務就緒(即使優先順序相同也不行)或者主動放棄(等待資源)。
4,調度程序發現有優先順序更高的任務到達(高優先順序任務可能被中斷或定時器任務喚醒,再或被當前運行的任務喚醒,等等),則調度程序立即在當前任務堆棧中保存當前cpu寄存器的所有數據,重新從高優先順序任務的堆棧中載入寄存器數據到cpu,此時高優先順序的任務開始運行。重復第3步。
5,如果當前任務因等待資源而主動放棄cpu使用權,則該任務將從就緒隊列中刪除,加入等待隊列,此時重復第3步。

所有任務都採用RR調度策略時:
1,創建任務時指定調度參數為RR,並設置任務的實時優先順序和nice值(nice值將會轉換為該任務的時間片的長度)。
2,如果沒有等待資源,則將該任務加入到就緒隊列中。
3,調度程序遍歷就緒隊列,根據實時優先順序計算調度權值(1000+rt_priority),選擇權值最高的任務使用cpu。
4,如果就緒隊列中的RR任務時間片為0,則會根據nice值設置該任務的時間片,同時將該任務放入就緒隊列的末尾。重復步驟3。
5,當前任務由於等待資源而主動退出cpu,則其加入等待隊列中。重復步驟3。

系統中既有分時調度,又有時間片輪轉調度和先進先出調度:
1,RR調度和FIFO調度的進程屬於實時進程,以分時調度的進程是非實時進程。
2,當實時進程准備就緒後,如果當前cpu正在運行非實時進程,則實時進程立即搶占非實時進程。
3,RR進程和FIFO進程都採用實時優先順序做為調度的權值標准,RR是FIFO的一個延伸。FIFO時,如果兩個進程的優先順序一樣,則這兩個優先順序一樣的進程具體執行哪一個是由其在隊列中的未知決定的,這樣導致一些不公正性(優先順序是一樣的,為什麼要讓你一直運行?),如果將兩個優先順序一樣的任務的調度策略都設為RR,則保證了這兩個任務可以循環執行,保證了公平。

Ingo Molnar-實時補丁
為了能並入主流內核,Ingo Molnar的實時補丁也採用了非常靈活的策略,它支持四種搶占模式:
1.No Forced Preemption (Server),這種模式等同於沒有使能搶占選項的標准內核,主要適用於科學計算等伺服器環境。
2.Voluntary Kernel Preemption (Desktop),這種模式使能了自願搶占,但仍然失效搶占內核選項,它通過增加搶占點縮減了搶占延遲,因此適用於一些需要較好的響應性的環境,如桌面環境,當然這種好的響應性是以犧牲一些吞吐率為代價的。
3.Preemptible Kernel (Low-Latency Desktop),這種模式既包含了自願搶占,又使能了可搶占內核選項,因此有很好的響應延遲,實際上在一定程度上已經達到了軟實時性。它主要適用於桌面和一些嵌入式系統,但是吞吐率比模式2更低。
4.Complete Preemption (Real-Time),這種模式使能了所有實時功能,因此完全能夠滿足軟實時需求,它適用於延遲要求為100微秒或稍低的實時系統。
實現實時是以犧牲系統的吞吐率為代價的,因此實時性越好,系統吞吐率就越低。

『陸』 關於linux的調度演算法

Linux2.6
版本
Linux
內核使用了新的調度器演算法,它是由
Ingo
Molnar開發的
O(1)調度器演算法。它在高負載的情況下極其出色,並且對處理器調度有很好的擴展。
Linux2.4
版本的標准調度器中,使用時間片重算的演算法。這種演算法要求在所有的進程都用盡時間片以後,重新計算下一次運行的時間片。這樣每次任務調度的花銷不確定,可能因為計算比較復雜,產生較大調度延遲。特別是多處理器系統,可能由於調度的延遲,導致大部分處理器處於空閑
狀態,影響系統性能。
新的調度器採用
O(1)的調度演算法,通過優先順序數組的數據結構來實現。優先順序數組可以使每個優先順序都有相應的任務隊列,還有一個優先順序點陣圖,每個優先順序對應點陣圖中一位,通過點陣圖可快速執行最高優先順序任務。因優先順序個數是固定的,所以查找的時間也固定,不受運行任務數的影響。
新的調度器為每個處理器維護
2
個優先順序數組:有效數組和過期數組。有效數組內任務隊列的進程都還有可以運行的時間片;過期數組內任務隊列的進程都沒有時間片可以執行。當一個進程的時間片用光時,就把它從有效數組移到過期數組,並且時間片也已經重新計算好了。當需要重新調度這些任務的時候,只要在有效數組和過期數組之間切換就好了。這種交換是O(1)演算法的核心。
關於該演算法的更多內容,google
一下!

『柒』 linux和ucosiii線程的任務調度的區別

任務切換本質是靠tick中斷和實時系統中的任務調度的 在arm晶元中即SysTick Timer,其1個tick產生一次中斷,1個tick對實時系統算作一個時間片 在實時系統中,高優先順序的任務可以嵌套即打斷低優先順序任務 在實時系統中,高優先順序的任務進入掛起狀態。

『捌』 如何設置linux 的計劃任務

cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。由於 是Linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
你也可以將這個服務在系統啟動的時候自動啟動:
在/etc/rc.d/rc.local這個腳本的末尾加上:
/sbin/service crond start
現在Cron這個服務已經在進程裡面了,我們就可以用這個服務了,Cron服務提供以下幾種介面供大家使用:
1.直接用crontab命令編輯
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:crontab -u root -l
再例如,root想刪除fred的cron設置:crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e
進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
任務調度的crond常駐命令
crond 是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
1、linux任務調度的工作主要分為以下兩類:
*系統執行的工作:系統周期性所要執行的工作,如備份系統數據、清理緩存
*個人執行的工作:某個用戶定期要做的工作,例如每隔10分鍾檢查郵件伺服器是否有新信,這些工作可由每個用戶自行設置。
2.crontab命令選項:
-u指定一個用戶,
-l列出某個用戶的任務計劃,
-r刪除某個用戶的任務,
-e編輯某個用戶的任務
3.cron文件語法:
分 小時 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范圍,0表示周日一般一行對應一個任務)
4.記住幾個特殊符號的含義:
"*"代表取值范圍內的數字,
"/"代表"每",
"-"代表從某個數字到某個數字,
","分開幾個離散的數字
一、任務調度設置文件的寫法
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件
具體格式如下:
Minute Hour Day Month Dayofweek command
分鍾 小時 天 月 天每星期 命令
每個欄位代表的含義如下:
Minute 每個小時的第幾分鍾執行該任務
Hour 每天的第幾個小時執行該任務
Day 每月的第幾天執行該任務
Month 每年的第幾個月執行該任務
DayOfWeek 每周的第幾天執行該任務
Command 指定要執行的程序
在這些欄位里,除了「Command」是每次都必須指定的欄位以外,其它欄位皆為可選欄位,可視需要決定。對於不指定的欄位,要用「*」來填補其位置。

舉例如下:
5 * * * * ls 指定每小時的第5分鍾執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[註:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[註:「,」用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鍾執行ls命令[註:「-」用來連接連續的時段]
*/15 * * * * ls 每15分鍾執行一次ls命令 [即每個小時的第0 15 30 45 60分鍾執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。 ]
每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件
50 7 * * * root run-parts /etc/cron.daily [ 註:run-parts參數表示,執行後面目錄中的所有可執行文件。 ]
二、新增調度任務
新增調度任務可用兩種方法:
1、在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。
2、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。
三、查看調度任務

crontab -l //列出當前的所有調度任務
crontab -l -u jp //列出用戶jp的所有調度任務
四、刪除任務調度工作
crontab -r //刪除所有任務調度工作
五、任務調度執行結果的轉向
例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
註:2>&1 表示執行結果及錯誤信息。
編輯/etc/crontab 文件配置cron
cron服務每分鍾不僅要讀一次/var/spool/cron內的所有文件,還需要讀一次/etc/crontab,因此我們配置這個文件也能運用cron服務做一些事情。用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號
HOME=/ //使用者運行的路徑,這里是根目錄
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小時執行/etc/cron.hourly內的腳本
02 4 * * * root run-parts /etc/cron.daily //每天執行/etc/cron.daily內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期執行/etc/cron.weekly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly //每月去執行/etc/cron.monthly內的腳本
大家注意"run-parts"這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名了
例如: 1、在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。
2、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務
11 2 21 10 * rm -rf /mnt/fb

『玖』 linux中設置任務調度兩種方法:/etc/crontab文件和crontab -e命令,兩種方式有什功能上的區別

修改/etc/crontab這種方法只有root用戶能用,這種方法更加方便與直接直接給其他用戶設置計劃任務,而且還可以指定執行shell等等,推薦這種方法。

crontab -e這種所有用戶都可以使用,普通用戶也只能為自己設置計劃任務。

『拾』 在linux系統下如何實現任務調度

你是指定時任務調度嗎?簡單的一個crontab就可以幫你解決定時調度問題:
crontab -e 編寫crontab任務,可以定時具體到哪天哪分哪秒,很靈活

閱讀全文

與linux任務調度相關的資料

熱點內容
韓國推理片在線播放 瀏覽:110
推薦韓日推理電影 瀏覽:989
華師大電影院 瀏覽:971
重生漢靈帝劉宏的小說 瀏覽:512
kktv怎麼調到網路電視 瀏覽:341
數據評價的方法有哪些 瀏覽:399
日韓好看電影 瀏覽:170
什麼怪談電影恐怖片 瀏覽:787
哪些渠道可以查看行業數據 瀏覽:88
無需下載免費在線觀看電影 瀏覽:230
真實里的馬尾女叫什麼名字 瀏覽:548
電腦網線區域網傳輸文件 瀏覽:805
win8文件批量重命名 瀏覽:843
大頭兒子小頭爸爸電影全部系列順序 瀏覽:676
iphone4s鑒別 瀏覽:562
365dy 瀏覽:866
林曼曼和么公的小說免費閱讀 瀏覽:609
宜春電影院有幾家 瀏覽:550
天天看下載安卓版本嗎 瀏覽:944
如何用origin處理器epr數據 瀏覽:5

友情鏈接