SII писал(а):
Вообще говоря, не означают. Дело в том, что под вытесняющей многозадачностью понимается способность ОС снять с процессора текущую задачу (поток) режима пользователя и поставить другую задачу по своему выбору.
Возвращаемся на круги своя. Если у ОС нет возможности переключить задачу, надёжность всей ОС зависит от одной безграмотно написанной задачи. Если есть - это уже не кооперативка.
Mr.McD. писал(а):
В кооперативке разделение проц. времени и передача управления обоснованы логикой работы программы, а не механизмами заложенными в ядре ОС.
Так или иначе, планирование времени кто-то должен осуществлять. Либо небольшой единый фрагмент проверенного кода, написанный создателями ОС, либо толпы безграмотных писателей ВСЕГО запущенного прикладного ПО.
Кооперативка может эффективно работать только при следующих условиях:
- каждый поток в состоянии проанализировать общую текущую ситуацию и потребности других потоков. Это эффективно решается только если потоков немного и они более-менее однородные. При большом количестве разнородных потоков более эффективно будет работать только централизованное распределение ресурсов.
- каждая задача написано добросовестно с учётом всех возможных обстоятельств, а не исходя из принципов перетягивания одеяла. Иначе мы даже не сможем записать компакт-диск при просмотре видеоролика т.к. автор видеопроигрывателя забыл, что могут найтись потребности ещё более реального времени.