digital-garden/_inbox/Кооперативная многозадачность.md
2024-06-13 21:01:37 +03:00

3.5 KiB
Raw Blame History

aliases tags date zero-link parents linked
non-preemptive multitasking
cooperative multitasking
кооперативная многозадачность
невытесняющей многозадачности
кооперативной многозадачности
невытесняющая многозадачность
кооперативную многозадачность
зрелость/🌱
2024-03-19
00 Архитектура ПО
Многозадачность ЦПУ
Вытесняющая многозадачность

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

В этом режиме операционная система не может прервать и вытеснить текущий процесс для переключения на другой процесс. Вместо этого, каждый процесс должен "добровольно" уступить ресурсы, достигнув определённой точки в своём выполнении или завершив свою работу.

В современных операционных системах преимущественно используется вытесняющая многозадачность.

Особенности невытесняющей многозадачности:

  • Кооперативность: Процессы сами решают, когда отдать управление ОС, что требует более внимательного программирования, чтобы избежать занимания процессора одним процессом на долгое время.
  • Риски: Если один из процессов захватывает процессор и не отдаёт управление, это может привести к "зависанию" системы или снижению отзывчивости, поскольку другие процессы не смогут выполняться до тех пор, пока не будет освобожден процессор.
  • Простота: Механизмы невытесняющей многозадачности проще в реализации по сравнению с вытесняющей многозадачностью, так как не требуют сложной логики управления приоритетами и безопасности переключения контекста.
  • Применение: Этот подход чаще всего используется в системах с ограниченными ресурсами, встраиваемых системах или в старых операционных системах, где аппаратная поддержка для вытесняющей многозадачности может отсутствовать.