一、Linux進(jìn)程的R、S、D、T、Z、X狀態(tài)
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信號(hào)變?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)程即將被銷毀(一個(gè)進(jìn)程cancel另一個(gè)進(jìn)程)
在平時(shí)工作中其中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提供兩種優(yōu)先級(jí):普通進(jìn)程優(yōu)先級(jí)、實(shí)時(shí)進(jìn)程優(yōu)先級(jí)
1、? 實(shí)時(shí)進(jìn)程優(yōu)先級(jí)
實(shí)時(shí)優(yōu)先級(jí)采用兩種調(diào)度算法:SCHED_FIFO(先入先出調(diào)度算法)、SCHED_RR(時(shí)間片輪詢調(diào)度算法)
實(shí)時(shí)優(yōu)先級(jí)調(diào)度特點(diǎn):只有靜態(tài)優(yōu)先級(jí),不會(huì)調(diào)整優(yōu)先級(jí),默認(rèn)優(yōu)先級(jí)0-99(MAX_RT_PRIO=100)。nice值只影響100~100+40的進(jìn)程優(yōu)先級(jí).
總結(jié):對(duì)FIFO,只有當(dāng)進(jìn)程執(zhí)行完畢才能輪到其他進(jìn)程執(zhí)行
對(duì)RR,一旦時(shí)間片消耗完,則將該進(jìn)程放到隊(duì)列末端,其他進(jìn)程才能執(zhí)行。
2、? 普通進(jìn)程優(yōu)先級(jí)
普通優(yōu)先級(jí)采用的調(diào)度算法:SCHED_NORMAL(CFS調(diào)度器實(shí)現(xiàn))
普通優(yōu)先級(jí)調(diào)度特點(diǎn):根據(jù)動(dòng)態(tài)優(yōu)先級(jí)調(diào)度,動(dòng)態(tài)優(yōu)先級(jí)由靜態(tài)優(yōu)先級(jí)調(diào)整而來。靜態(tài)優(yōu)先級(jí)由內(nèi)核隱藏,但是提供接口:由nice值計(jì)算得到:
static_prio = MAX_RT_PRIO(默認(rèn)100)+ nice +20
nice取值范圍是 -20~19,所以靜態(tài)優(yōu)先級(jí)100~139
并且進(jìn)程時(shí)間片也是有靜態(tài)優(yōu)先級(jí)得到:
If(?static_prio?<?120?) ???????????time?=?(?140?–?static_prio?)*20 else?if(?static_prio?>=?120) ???????????time?=?(?140?–static_prio?)*5
動(dòng)態(tài)優(yōu)先級(jí)主要考慮的兩個(gè)因素:靜態(tài)優(yōu)先級(jí)和進(jìn)程平均運(yùn)行時(shí)間bouns值,計(jì)算公式:
dynamic_prio = max( 100,min(static_prio-bouns+5 ,139)
bouns值的大小0-10,當(dāng)大于5表示優(yōu)先級(jí)提高,當(dāng)小于5時(shí)優(yōu)先級(jí)變低;Linux內(nèi)核會(huì)根據(jù)進(jìn)程的平均運(yùn)行時(shí)間動(dòng)態(tài)的改變進(jìn)程的動(dòng)態(tài)優(yōu)先級(jí)。
一般來說,交互式進(jìn)程的平均運(yùn)行時(shí)間比較長,因此Linux內(nèi)核會(huì)獎(jiǎng)勵(lì)從而增加bouns的值。
總結(jié):實(shí)時(shí)進(jìn)程只考慮靜態(tài)優(yōu)先級(jí);普通進(jìn)程一般不需要太在意進(jìn)程優(yōu)先級(jí),因?yàn)閮?nèi)核會(huì)動(dòng)態(tài)調(diào)整進(jìn)程的優(yōu)先級(jí)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:Linux進(jìn)程調(diào)度簡單理解-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://jinyejixie.com/article32/ddshsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站營銷、移動(dòng)網(wǎng)站建設(shè)、微信公眾號(hào)、服務(wù)器托管、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容