3

Linux имеет: готов, заблокирован, работает, завершен.

Windows имеет: Готово, Отложено готово, Ожидание, Работает, Ожидание, Завершено, Инициализировано.

Почему в Windows так много состояний? Какое преимущество дает эта дополнительная сложность?

1 ответ1

2

Работающий поток - это поток, который в данный момент выполняется на процессоре. Запущенный поток выбирается из списка потоков Ready для этого процессора, которые являются потоками, которые можно заменить для выполнения. Резервный поток - это поток Готов, который в данный момент выбран для переключения в состояние « Выполнение» на следующем процессоре. Однако это может измениться, если поток с более высоким приоритетом станет готовым до внесения изменений.

Отложенное состояние готовности - это глобальное состояние, указывающее, что поток готов к работе на любом процессоре. Это может использоваться, например, для одного ЦП для планирования потока с высоким приоритетом на другом ЦП.

Потоки, которые не готовы к работе, получают состояние, определяемое причиной, по которой они не могут работать:

  • Потоки переводятся в состояние инициализации во время их создания.
  • Потоки могут быть Ожидание какого - либо события, такие как синхронизация или I/O завершения, или может быть вынужден ждать , если они получают доступ к памяти, которая выгружаемого на диск, например. Как только событие будет сигнализировано или истечет время ожидания, поток будет иметь право на повторный запуск.
  • Потоки переводятся в состояние перехода, потому что их стек ядра был выгружен. Эти потоки не будут готовы к запуску, пока их стек ядра снова не станет доступен.
  • Выходящие потоки переводятся в состояние « Завершено» до тех пор, пока система не будет очищена.

Следует отметить, что состояния потоков полностью отделены от приоритетов планирования, которые определяют порядок, в котором потоки выбираются для запуска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .