Совместная многозадачность
-
Определение и использование совместной многозадачности
- Совместная многозадачность — это стиль работы компьютера, при котором процессы не вытесняются, а добровольно уступают управление.
- Совместная многозадачность требует взаимодействия всех программ для работы планировщика.
- Совместный планировщик операционной системы запускает процессы и позволяет им добровольно возвращать управление.
-
Применение и исторические примеры
- Совместная многозадачность редко используется в современных ОС, но широко применяется в встраиваемых системах и некоторых приложениях.
- Windows 9x и Mac OS использовали совместную многозадачность для 16-разрядных приложений.
- NetWare и RISC OS также использовали совместную многозадачность до определенной версии.
-
Сравнение с асинхронностью/ожиданием
- Совместная многозадачность похожа на асинхронность/ожидание в языках программирования, но отличается тем, что await может быть вызван только из асинхронной функции.
-
Преимущества и недостатки
- Совместная многозадачность упрощает разработку приложений, так как их выполнение не прерывается планировщиком.
- Однако плохо спроектированная программа может использовать все ресурсы процессора, что может привести к зависанию системы.
-
Проблемы и решения
- Совместная многозадачность может привести к зависанию системы, если один процесс использует все ресурсы.
- В серверных средах это может быть опасно, но сторожевой таймер может предотвратить зависание системы.
Полный текст статьи: