新聞中心
linux進(jìn)程狀態(tài)用于描述正在運(yùn)行的程序,它包含了8種狀態(tài),分別為:RUNNING、SLEEPING、WAITING、TRANSITION、STOPPED、ZOMBIE、DEAD以及PAGING。每一種狀態(tài)都有自己的特點(diǎn)和行為,本文將詳細(xì)介紹它們。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供遠(yuǎn)安網(wǎng)站建設(shè)、遠(yuǎn)安做網(wǎng)站、遠(yuǎn)安網(wǎng)站設(shè)計(jì)、遠(yuǎn)安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、遠(yuǎn)安企業(yè)網(wǎng)站模板建站服務(wù),十余年遠(yuǎn)安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
一、RUNNING狀態(tài)
RUNNING狀態(tài)是Linux系統(tǒng)中最常見的進(jìn)程狀態(tài),該狀態(tài)表示進(jìn)程正在運(yùn)行中并能從核心獲取到CPU資源。如果某個(gè)進(jìn)程正在執(zhí)行某項(xiàng)任務(wù),比如正在讀寫文件或者執(zhí)行網(wǎng)絡(luò)操作,系統(tǒng)會(huì)自動(dòng)將其轉(zhuǎn)換為SLEEPING狀態(tài),等任務(wù)完成后又會(huì)自動(dòng)回到RUNNING狀態(tài)。除此之外,RUNNING狀態(tài)可通過信號(hào)來控制,比如SIGSTOP可以將其設(shè)置為STOPPED狀態(tài),SIGCONT可以重新設(shè)置為RUNNING狀態(tài)。
二、SLEEPING狀態(tài)
SLEEPING狀態(tài)表示進(jìn)程正在睡眠中,無法從核心獲得CPU資源,此狀態(tài)下進(jìn)程能夠接受信號(hào),一旦接收到信號(hào),會(huì)自動(dòng)轉(zhuǎn)換到RUNNING狀態(tài)。進(jìn)入SLEEPING狀態(tài)的原因通常是因?yàn)檫M(jìn)程正在執(zhí)行IO或者正在等待IO操作,例如調(diào)用系統(tǒng)調(diào)用函數(shù)read或者write,此時(shí)可以通過SIGINT信號(hào)殺死當(dāng)前進(jìn)程,并返回出錯(cuò)碼。
三、WAITING狀態(tài)
WAITING狀態(tài)表示進(jìn)程正在等待其他的進(jìn)程的資源,該狀態(tài)僅在多線程或進(jìn)程之間交互時(shí)才會(huì)出現(xiàn),比如當(dāng)一個(gè)線程正在等待另一個(gè)線程完成任務(wù)后將數(shù)據(jù)傳遞時(shí),此時(shí)的線程狀態(tài)就會(huì)轉(zhuǎn)換為WAITING狀態(tài),而開發(fā)中可以通過pthread_join函數(shù)進(jìn)行控制,在某個(gè)線程等待其他線程完成后,那么該線程也會(huì)回到RUNNING狀態(tài)。
四、TRANSITION狀態(tài)
TRANSITION狀態(tài)表示進(jìn)程正在被調(diào)度,該狀態(tài)發(fā)生在當(dāng)一個(gè)進(jìn)程嘗試從核心獲取CPU資源時(shí),比如,當(dāng)進(jìn)程發(fā)出請(qǐng)求后,需要經(jīng)過一系列過程來分配CPU資源,此時(shí)系統(tǒng)就會(huì)將該進(jìn)程設(shè)置為TRANSITION狀態(tài),等調(diào)度程序處理完畢后,此狀態(tài)就會(huì)被設(shè)置為RUNNING狀態(tài)。
五、STOPPED狀態(tài)
STOPPED狀態(tài)表示進(jìn)程被暫停,此狀態(tài)一般是由外部信號(hào)所觸發(fā),例如通過kill命令或者SIGSTOP信號(hào)停止正在運(yùn)行的進(jìn)程,此時(shí)進(jìn)程會(huì)被設(shè)置為STOPPED狀態(tài),等待外部干預(yù)后再恢復(fù)到RUNNING狀態(tài)。
六、ZOMBIE狀態(tài)
ZOMBIE狀態(tài)表示已經(jīng)結(jié)束的進(jìn)程,但是而其父進(jìn)程仍未接受到子進(jìn)程的結(jié)束狀態(tài)時(shí),系統(tǒng)會(huì)將其置為ZOMBIE狀態(tài),一直到父進(jìn)程執(zhí)行wait或者waitpid函數(shù),將子進(jìn)程的結(jié)束狀態(tài)取出后,該進(jìn)程就會(huì)被系統(tǒng)回收。
七、DEAD狀態(tài)
DEAD狀態(tài)是指進(jìn)程已經(jīng)結(jié)束,但是其父進(jìn)程仍未接受到子進(jìn)程的結(jié)束狀態(tài)時(shí),系統(tǒng)會(huì)將其置為DEAD狀態(tài),直到父進(jìn)程執(zhí)行wait或者waitpid函數(shù),將子進(jìn)程的結(jié)束狀態(tài)取出后,該進(jìn)程才會(huì)被回收。
八、PAGING狀態(tài)
PAGING狀態(tài)指的是當(dāng)進(jìn)程的內(nèi)存使用量超過配置的內(nèi)存限制后,系統(tǒng)會(huì)將其
創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。
當(dāng)前題目:Linux下進(jìn)程狀態(tài)的分類和特性詳解(linux進(jìn)程狀態(tài))
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/djgjigh.html


咨詢
建站咨詢
