Состояния потоков в операционных системах

Опубликовано: 19 Декабря, 2021

Когда поток движется по системе, он всегда находится в одном из пяти состояний:

 (1) Готово
(2) Бег
(3) Ожидание
(4) С задержкой
(5) Заблокировано

Исключая состояния СОЗДАНИЕ и ЗАВЕРШЕНО.

  1. Когда приложение должно быть обработано, оно создает поток.
  2. Затем ему выделяются необходимые ресурсы (например, сеть), и он попадает в очередь READY.
  3. Когда планировщик потоков (например, планировщик процессов) назначает поток процессору, он попадает в очередь RUNNING.
  4. Когда процессу нужно запустить какое-то другое событие, которое находится вне его контроля (например, другой процесс, который должен быть завершен), он переходит из очереди RUNNING в очередь WAITING.
  5. Когда приложение имеет возможность отложить обработку потока, оно при необходимости может задержать поток и перевести его в спящий режим на определенное время. Затем поток переходит из очереди RUNNING в очередь DELAYED.

    Пример задержки потока - откладывание сигнала тревоги. После того, как он звонит в первый раз и не выключается пользователем, он звонит снова через определенное время. В это время нить усыпляется.

  6. Когда поток генерирует запрос ввода-вывода и не может двигаться дальше, пока он не будет выполнен, он переходит из очереди RUNNING в BLOCKED.
  7. После завершения процесса поток переходит из RUNNING в FINISHED .

Разница между переходом WAITING и BLOCKED заключается в том, что в режиме WAITING поток ожидает сигнала от другого потока или ожидает завершения другого процесса, что означает, что время пакета является определенным. В то время как в состоянии ЗАБЛОКИРОВАНО нет определенного времени (это зависит от пользователя, когда вводить данные).

Для успешного выполнения всех процессов процессор должен поддерживать информацию о каждом потоке через блоки управления потоком (TCB) .

РЕКОМЕНДУЕМЫЕ СТАТЬИ