https://wiki.osdev.org/Blocking_Process
Waiting
- Blocking – state of wait, waiting for event i.e. semaphore released. Not in active scheduling queue.
- Sleep – Process is set inactive for period of time (i.e. 20ms) while in a sleeping queue.
Busy-waiting – looping indefinitely (undesirable, wastes CPU time).
man ps:
PROCESS STATE CODES top
Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process: D uninterruptible sleep (usually IO) I Idle kernel thread R running or runnable (on run queue) S interruptible sleep (waiting for an event to complete) T stopped by job control signal t stopped by debugger during the tracing W paging (not valid since the 2.6.xx kernel) X dead (should never be seen) Z defunct ("zombie") process, terminated but not reaped by its parent
https://www.tutorialspoint.com/operating_system/os_process_scheduling.htm
http://www.informit.com/articles/article.aspx?p=101760&seqNum=2