--- aliases: - non-preemptive multitasking - cooperative multitasking - кооперативная многозадачность - невытесняющей многозадачности - кооперативной многозадачности - невытесняющая многозадачность - кооперативную многозадачность tags: - maturity/🌱 date: - - 2024-03-19 zero-link: - "[[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]]" parents: - "[[Многозадачность]]" linked: - "[[Вытесняющая многозадачность]]" --- Подход к управлению выполнением задач в [операционных системах](Операционная%20система.md), при котором текущий выполняющийся [процесс](Процесс%20ОС.md) должен явно отдать управление [[../../../../knowledge/dev/pc/Операционная система|операционной системе]], чтобы другой процесс мог быть запущен. В этом режиме [[../../../../knowledge/dev/pc/Операционная система|операционная система]] не может прервать и вытеснить текущий процесс для переключения на другой процесс, как в [[Вытесняющая многозадачность|вытесняющей многозадачности]]. Вместо этого, каждый процесс должен "добровольно" уступить ресурсы, достигнув определённой точки в своём выполнении или завершив свою работу. > [!INFO] > В современных операционных системах преимущественно используется [вытесняющая многозадачность](Вытесняющая%20многозадачность.md). **Особенности кооперативной многозадачности:** - **Кооперативность:** Процессы сами решают, когда отдать управление ОС, что требует более внимательного программирования, чтобы избежать занимания [[Центральный процессор|процессора]] одним процессом на долгое время. - **Риски:** Если один из процессов захватывает процессор и не отдаёт управление, это может привести к "зависанию" системы или снижению отзывчивости, поскольку другие процессы не смогут выполняться до тех пор, пока не будет освобожден процессор. - **Простота:** Механизмы кооперативной многозадачности проще в реализации по сравнению с [[Вытесняющая многозадачность|вытесняющей многозадачностью]], так как не требуют сложной логики управления приоритетами и безопасности [переключения контекста](Переключение%20контекста.md). - **Применение:** Этот подход чаще всего используется в системах с ограниченными ресурсами, встраиваемых системах или в старых операционных системах, где аппаратная поддержка для вытесняющей многозадачности может отсутствовать. *** ## Мета информация **Область**:: [[../../meta/zero/00 Архитектура ЭВМ|00 Архитектура ЭВМ]] **Родитель**:: [[Многозадачность]] **Источник**:: **Автор**:: **Создана**:: [[2024-03-19]] ### Дополнительные материалы - [[Вытесняющая многозадачность]] ### Дочерние заметки - [[Callback]] - [[Green thread]]