У багатозадачних комп'ютерних системах процеси можуть перебувати у декількох станах. Ці окремі стани не обов'язково розпізнаються ядром операційної системи, але вони є важливими для розуміння роботи процесів.

Основні стани процесів Наведені нижче стани дійсні для будь-якого типу комп'ютерів. Переважна більшість процесів у цих станах знаходиться у основній пам'яті. 

Створений (Created) При створенні процесу він знаходиться у стані «Створений», або ж «Новий». В такому випадку він очікує дозволу для переходу в стан готовності — «Ready». Такий дозвіл може бути отриманий одразу або через деякий час планувальником операційної системи. В більшості настільних ПК дозвіл надається автоматично. Тим не менше, в операційних системах реального часу процес підтвердження може бути відкладено. В таких ОС перехід в стан готовності надто великої кількості процесів може призвести до перенасичення та перевантаження ресурсів системи, наслідком якого може бути відмова роботи.

Готовність або очікування (Ready) Процеси у стані готовності завантажуються до основної пам'яті і переводяться в стан очікування виконання на ЦП(чекають на зміну стану диспетчером чи планувальником ОС). Одночасно може бути багато процесів у стані готовності в певний момент роботи системи, наприклад, в однопроцесорній системі тільки один процес може виконуватися в конкретний момент часу, а всі решта процеси, які виконуються «паралельно» очікують на виконання.

При роботі планувальник ОС використовує чергу готовності, або ж чергу запуску. Сучасні комп'ютери здатні виконувати багато процесів одночасно. Але процесори можуть виконувати лише одне завдання одночасно. В такому випадку процеси, які вже готові для виконання зберігаються у спеціальній черзі. Інші процеси, які очікують на певні події, наприклад, зчитування даних з жорсткого диску чи відповіді інтернет-запису, не зберігаються у цій черзі.

Працює (Running) Процес переходить в стан «Працює» тоді, коли його обрано планувальником або диспетчером для виконання. Команди процесу виконуються на одному з процесорів(або процесорних ядер) системи. На кожному процесорі чи ядрі завжди виконується не більше одного процесу одночасно. Процес може виконуватися у двох режимах: у режимі користувача(User mode) і  режимі ядра(Kernel mode).

Kernel mode Процеси в цьому режимі мають доступ до адресного простору як ядра, так і користувача Kernel mode надає необмежений доступ до апаратного забезпечення, включаючи привілейовані інструкції. Деякі команди(наприклад, введення/виведення або переривання) є привілейованими інструкціями, які можуть виконуватися виключно в Kernel mode Для переходу в цей режим необхідний системний виклик від користувача

User mode Процеси мають доступ лише до своїх власних інструкцій та адресного простору Коли система виконує інструкції від імені користувача, це означає, що вона знаходиться в User mode. У випадку, якщо програма у режимі користувача запитує дані операційної системи(за допомогою системних викликів), система мусить переходити у kernel mode для виконання запиту. User mode запобігає різним небажаним ситуаціям: Віртуальний адресний простір є ізольованим для кожного процесу. У режимі користувача кожен процес гарантовано виконуватиметься окремо від інших процесів, що виключає можливість впливу на роботу інших інструкцій. Прямий доступ до апаратного забезпечення є забороненим

Заблокований (Blocked) Процес, заблокований певною подією(наприклад, операціями введення/виведення чи спеціальним сигналом) може приймати стан Blocked з різних причин, як, наприклад, надмірне навантаження на ЦП або вичерпання процесорного часу.

Зупинено (Terminated) Процес може бути зупинено(переведено в стан «Terminated» із стану «Running») після завершення його роботи або у випадку його умисного завершення. В обох випадках процес переходить до стану «Terminated». Програма, що відповідає цьому процесу, більше не виконується, але сам процес залишається у таблиці процесів як процес-зомбі, допоки процес, який його викликав не виконає системний виклик wait для виходу, після якого процес буде прибрано з таблиці процесів, що завершить процес його життєдіяльності. Якщо батьківський процес не виконує wait, то ресурси продовжуватимуть споживатися, що може призвести до витоку ресурсів.

Додаткові стани процесу В системах, що підтримують віртуальну пам'ять, можливі ще два додаткові стани. В обох цих станах процес «знаходиться» у вторинній пам'яті (переважно — жорсткому диску).

Вивантажений і очікуючий (Інша назва — призупинений і очікуючий). В системах які підтримують віртуальну пам'ять процес може бути вивантажений з основної пам'яті та поміщений у віртуальну пам'ять середньотерміновим планувальником. Звідти процес може бути вивантажений у стан «очікуючий».

Вивантажений і блокований (Інша назва — призупинений і блокований). Процеси які є заблокованими можуть також бути вивантажені. В цьому випадку процес є «вивантажений і очікуючий» і може бути вивантажений у тих же випадках, що і вивантажений і очікуючий процес (хоча в цьому випадку процес буде у блокованому стані і може все ще очікувати доки ресурс стане доступним).

Посилання

Particularly chapter 3, section 3.2, «process states», including figure 3.9 «process state transition with suspend states»