2012-04-10 36 views
1

我需要以下過程狀態分類(從獲得的/ proc/[PID] /狀態)如何將Linux進程狀態分類爲運行,可運行,不可運行或無效?

  • R(運行)
  • S(睡覺)
  • d(磁盤睡眠)
  • T(停止)
  • T(跟蹤站)
  • Z(殭屍)
  • X(死)
運行

如任一

  • (1),
  • 可運行(2), - 等待資源(CPU,存儲器,IO)
  • 不可運行(3), - 加載,但等待事件
  • 無效(4) - 未加載

我最初的猜測:

1:R (running) 
2:S (sleeping) 
3:D (disk sleep) 
3:T (stopped) 
3:T (tracing stop) 
4:Z (zombie) 
4:X (dead) 

這是正確的嗎?

+0

意疑問句用'Homework',如果他們是這樣的。 – Alain 2012-04-10 19:09:27

回答

2

從fs的/ proc/array.c:

static const char * const task_state_array[] = { 
     "R (running)",   /* 0 */ 
     "S (sleeping)",   /* 1 */ 
     "D (disk sleep)",  /* 2 */ 
     "T (stopped)",   /* 4 */ 
     "t (tracing stop)",  /* 8 */ 
     "Z (zombie)",   /* 16 */ 
     "X (dead)",    /* 32 */ 
     "x (dead)",    /* 64 */ 
     "K (wakekill)",   /* 128 */  
     "W (waking)",   /* 256 */ 
};  
+0

這完全沒有回答這個問題,你只是粘貼任務狀態列表以及它們的整數等價物。 最初的問題是想將這些州分成他指定爲1-4的四個類別 – 2012-05-11 07:22:07