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