Состояния потоков в операционных системах
Когда поток движется по системе, он всегда находится в одном из пяти состояний:
(1) Готово (2) Бег (3) Ожидание (4) С задержкой (5) Заблокировано
Исключая состояния СОЗДАНИЕ и ЗАВЕРШЕНО.
- Когда приложение должно быть обработано, оно создает поток.
- Затем ему выделяются необходимые ресурсы (например, сеть), и он попадает в очередь READY.
- Когда планировщик потоков (например, планировщик процессов) назначает поток процессору, он попадает в очередь RUNNING.
- Когда процессу нужно запустить какое-то другое событие, которое находится вне его контроля (например, другой процесс, который должен быть завершен), он переходит из очереди RUNNING в очередь WAITING.
- Когда приложение имеет возможность отложить обработку потока, оно при необходимости может задержать поток и перевести его в спящий режим на определенное время. Затем поток переходит из очереди RUNNING в очередь DELAYED.
Пример задержки потока - откладывание сигнала тревоги. После того, как он звонит в первый раз и не выключается пользователем, он звонит снова через определенное время. В это время нить усыпляется.
- Когда поток генерирует запрос ввода-вывода и не может двигаться дальше, пока он не будет выполнен, он переходит из очереди RUNNING в BLOCKED.
- После завершения процесса поток переходит из RUNNING в FINISHED .
Разница между переходом WAITING и BLOCKED заключается в том, что в режиме WAITING поток ожидает сигнала от другого потока или ожидает завершения другого процесса, что означает, что время пакета является определенным. В то время как в состоянии ЗАБЛОКИРОВАНО нет определенного времени (это зависит от пользователя, когда вводить данные).
Для успешного выполнения всех процессов процессор должен поддерживать информацию о каждом потоке через блоки управления потоком (TCB) .