TASK_RUNNING

  • task is running on a cpu or awaiting execution

TASK_INTERRUPTABLE

  • task is sleeping but can be awoken by an interrupt

TASK_UNINTERRUPTABLE

  • tasks is sleeping - any interrupt delivered to it will not change it’s state
  • more details here, TLDR:
    • some syscalls, (eg. read()) is interruptible - it takes a long time (seconds); when it receives SIGTERM, the syscall exits prematurely this early return enables the user space code to immediately respond to the signal
    • some syscalls cannot be interrupted this way - if the syscall stalls for some reason, the process can indefinitely remain in this unkillable state

__TASK_STOPPED

  • task is stopped

__TASK_TRACED

  • task is stopped by a debugger

os processes