How do I classify Linux process states as either running, runnable, not runnable or invalid?
I need to classify the following process states (obtained from /proc/[PID]/status)  

 - R (running)
 - S (sleeping)
 - D (disk sleep)
 - T (stopped)
 - T (tracing stop)
 - Z (zombie)
 - X (dead)

as either 
 

 - running(1),   
 -  runnable(2),    - waiting for resource (CPU, memory, IO)
 -  not runnable(3), - loaded but waiting for event  
   or  
 -  invalid(4)      - not loaded

My initial guess:

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

Is this correct?
How do I classify Linux process states as either running, runnable, not runnable or invalid?
===

I need to classify the following process states (obtained from /proc/[PID]/status)  

 - R (running)
 - S (sleeping)
 - D (disk sleep)
 - T (stopped)
 - T (tracing stop)
 - Z (zombie)
 - X (dead)

as either 
 

 - running(1),   
 -  runnable(2),    - waiting for resource (CPU, memory, IO)
 -  not runnable(3), - loaded but waiting for event  
   or  
 -  invalid(4)      - not loaded

My initial guess:

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

Is this correct?