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

33 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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