Вопросы к Поиску с Алисой
Разница между кооперативной и вытесняющей многозадачностью заключается в способе передачи управления между задачами. senjun.ru
Кооперативная многозадачность предполагает, что операционная система не инициирует передачу управления между задачами. senjun.ru Задачи самостоятельно отдают управление планировщику, а он решает, какая задача будет выполняться следующей. senjun.ru При таком подходе приложение может захватить столько процессорного времени, сколько оно считает нужным. www.polessu.by www.sbup.com
Вытесняющая многозадачность характеризуется тем, что планировщик задач принудительно приостанавливает выполнение текущей задачи и отдаёт управление другой задаче, готовой для исполнения. senjun.ru Приостановка текущей задачи называется вытеснением. senjun.ru Существуют разные механизмы вытеснения: таймер, приоритет, прерывания. senjun.ru
Некоторые преимущества кооперативной многозадачности: полный контроль за выполнением программы, программа получает в своё распоряжение все системные ресурсы, реализация операционной системы с кооперативной многозадачностью проще, чем с вытесняющей. github.com
Некоторые преимущества вытесняющей многозадачности: программа, написанная с ошибками, не заберёт себе все ресурсы сервера, система не «зависает», пока одна из программ выполняет свою задачу, программирование на системах с вытесняющей многозадачностью проще, так как программисту не нужно думать о том, как и когда отдавать управление операционной системе. github.com
Вытесняющая многозадачность используется во многих операционных системах, в том числе Linux, MacOS, Windows. senjun.ru Кооперативная многозадачность, в свою очередь, применяется в системах с жёстким временем выполнения (медицинское, автомобильное, аэрокосмическое оборудование). github.com