1. linux程序狀態有:
task_running : 就緒態或者執行態,程序就緒可以執行,但是不一定正在占有cpu,對應程序狀態的r
task_interruptible:睡眠態,但是程序處於淺度睡眠,可以響應訊號,一般是程序主動sleep進入的狀態,對應程序狀態s
task_uninterruptible:睡眠態,深度睡眠,不響應訊號,典型場景是程序獲取訊號量阻塞,對應程序狀態d
task_zombie:殭屍態,程序已退出或者結束,但是父程序還不知道,沒有**時的狀態,對應程序狀態z
task_stoped:停止,除錯狀態,對應程序狀態t
2. 程序排程時機:
程序排程會引起程序狀態轉換,由上圖可知如下情況會觸發排程,程序終止或程序睡眠時主動exit或sleep釋放cpu;淺度睡眠的程序被cfs排程選中喚醒,深度睡眠程序由於訊號量,鎖等的釋放而被喚醒;程序收到訊號量等;還有一種最常見的中斷,異常。
Linux 程序的狀態轉換
1.程序的三態模型 在多道程式系統中,程序在處理器上交替執行,狀態也不斷地發生變化。程序一般有3種基本狀態 執行 就緒和阻塞。1 執行 當乙個程序在處理機上執行時,則稱該程序處於執行狀態。處於此狀態的程序的數目小於等於處理器的數目,對於單處理機系統,處於執行狀態的程序只有乙個。在沒有其他程序可以執行...
程序狀態轉換
1.就緒 執行 2.執行 就緒 3.執行 等待 4.等待 就緒 一 程序的三種基本狀態 程序在執行中不斷地改變其執行狀態。通常,乙個執行程序必須具有以下三種基本狀態。就緒 ready 狀態 當程序已分配到除cpu以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序狀態稱為就緒狀態。執行 ru...
程序狀態轉換
程序在執行中不斷地改變其執行狀態。通常,乙個執行程序必須具有以下三種基本狀態。就緒 ready 狀態 當程序已分配到除cpu以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序狀態稱為就緒狀態。執行 running 狀態 當程序已獲得處理機,其程式正在處理機上執行,此時的程序狀態稱為執行狀態...