Linux進(jìn)程調(diào)度簡單理解

一、Linux進(jìn)程的R、S、D、T、Z、X狀態(tài)

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括金山網(wǎng)站建設(shè)、金山網(wǎng)站制作、金山網(wǎng)頁制作以及金山網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,金山網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到金山省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

R(TASK_RUNNING):進(jìn)程處于ready狀態(tài),及可執(zhí)行狀態(tài)

S(TASK_INTERRUPTIBLE):可以中斷的睡眠狀態(tài)

D(TASK_UNINTERRUPTIBLE):不可中斷的睡眠狀態(tài),很少見

T(TASK_STOPPED or TASK_TRACED):暫?;蛘吒櫊顟B(tài),收到sigstopt信號變?yōu)闀和顟B(tài),收到sigcont變?yōu)閞unning狀態(tài);gdb調(diào)試及跟蹤狀態(tài)

Z(TASK_DEAD-TASK_ZOMBIE):退出狀態(tài),進(jìn)程稱為僵尸進(jìn)程(子進(jìn)程退出)

X(TASK_DEAD-EXIT_DEAD):退出狀態(tài),進(jìn)程即將被銷毀(一個進(jìn)程cancel另一個進(jìn)程)

在平時工作中其中R和S最常見,當(dāng)進(jìn)程接受消息隊(duì)列,sleep等,進(jìn)程處于阻塞狀態(tài)(S)。

一般狀態(tài)變化,R-S,S-R

通過ps -l查看進(jìn)程狀態(tài) s(state)那列

Linux 進(jìn)程調(diào)度簡單理解

二、Linux提供兩種優(yōu)先級:普通進(jìn)程優(yōu)先級、實(shí)時進(jìn)程優(yōu)先級

1、?實(shí)時進(jìn)程優(yōu)先級

實(shí)時優(yōu)先級采用兩種調(diào)度算法:SCHED_FIFO(先入先出調(diào)度算法)、SCHED_RR(時間片輪詢調(diào)度算法)

實(shí)時優(yōu)先級調(diào)度特點(diǎn):只有靜態(tài)優(yōu)先級,不會調(diào)整優(yōu)先級,默認(rèn)優(yōu)先級0-99(MAX_RT_PRIO=100)。nice值只影響100~100+40的進(jìn)程優(yōu)先級.

總結(jié):對FIFO,只有當(dāng)進(jìn)程執(zhí)行完畢才能輪到其他進(jìn)程執(zhí)行

對RR,一旦時間片消耗完,則將該進(jìn)程放到隊(duì)列末端,其他進(jìn)程才能執(zhí)行。

2、?普通進(jìn)程優(yōu)先級

普通優(yōu)先級采用的調(diào)度算法:SCHED_NORMAL(CFS調(diào)度器實(shí)現(xiàn))

普通優(yōu)先級調(diào)度特點(diǎn):根據(jù)動態(tài)優(yōu)先級調(diào)度,動態(tài)優(yōu)先級由靜態(tài)優(yōu)先級調(diào)整而來。靜態(tài)優(yōu)先級由內(nèi)核隱藏,但是提供接口:由nice值計(jì)算得到:

static_prio = MAX_RT_PRIO(默認(rèn)100)+ nice +20

nice取值范圍是 -20~19,所以靜態(tài)優(yōu)先級100~139

并且進(jìn)程時間片也是有靜態(tài)優(yōu)先級得到:

If(?static_prio?<?120?)
???????????time?=?(?140?–?static_prio?)*20
else?if(?static_prio?>=?120)
???????????time?=?(?140?–static_prio?)*5

動態(tài)優(yōu)先級主要考慮的兩個因素:靜態(tài)優(yōu)先級和進(jìn)程平均運(yùn)行時間bouns值,計(jì)算公式:

dynamic_prio = max( 100,min(static_prio-bouns+5 ,139)

bouns值的大小0-10,當(dāng)大于5表示優(yōu)先級提高,當(dāng)小于5時優(yōu)先級變低;Linux內(nèi)核會根據(jù)進(jìn)程的平均運(yùn)行時間動態(tài)的改變進(jìn)程的動態(tài)優(yōu)先級。

一般來說,交互式進(jìn)程的平均運(yùn)行時間比較長,因此Linux內(nèi)核會獎勵從而增加bouns的值。

總結(jié):實(shí)時進(jìn)程只考慮靜態(tài)優(yōu)先級;普通進(jìn)程一般不需要太在意進(jìn)程優(yōu)先級,因?yàn)閮?nèi)核會動態(tài)調(diào)整進(jìn)程的優(yōu)先級。

文章題目:Linux進(jìn)程調(diào)度簡單理解
鏈接分享:http://bm7419.com/article24/pcgjje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)建站公司定制網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站策劃、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名