digital-garden/dev/fundamental/Кооперативная многозадачность.md
Struchkov Mark be8fd578f3
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-10-09 09:23:45 +03:00

49 lines
4.6 KiB
Markdown
Raw 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:
- 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]]
### Дополнительные материалы
- [[Вытесняющая многозадачность]]
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
- [[Callback]]
- [[Green thread]]
<!-- SerializedQuery END -->