Совместная многозадачность

редактировать

Совместная многозадачность, также известный как невытесняющая многозадачность, это стиль многозадачности компьютера, в котором операционная система никогда не инициирует переключение контекста из запуск процесса в другой процесс. Вместо этого процессы добровольно управление доходностью периодически или при простое или логически заблокированы, чтобы позволить нескольким приложениям работать одновременно. Этот тип многозадачности называется «кооперативным», потому что для работы всей схемы планирования все программы должны взаимодействовать. В этой схеме планировщик процессов операционной системы известен как совместный планировщик, роль которого сводится к запуску процессов и предоставлению им возможности добровольно возвращать управление ему.

Содержание

  • 1 Использование
  • 2 Проблемы
  • 3 См. Также
  • 4 Ссылки

Использование

Хотя он редко используется в современных больших системах, он широко используется в памяти -ограниченные встроенные системы, а также в определенных приложениях, таких как CICS или подсистема JES2. Совместная многозадачность была основной схемой планирования для 16-разрядных приложений, используемых Microsoft Windows до Windows 95 и Windows NT (например, Windows 3.1x ) и классической Mac OS. Windows 9x использовала не- вытесняющую многозадачность для 16-битных устаревших приложений, а PowerPC версии Mac OS X до Leopard использовались это для классических приложений. NetWare, которая является сетевой операционной системой, использовала кооперативную многозадачность вплоть до NetWare 6.5. Кооперативная многозадачность по-прежнему используется в системах RISC OS.

Кооперативная многозадачность используется с await на языках с однопоточным циклом обработки событий во время выполнения, например JavaScript или Python.

Проблемы

Поскольку кооперативная многозадачная система полагается на то, что каждый процесс регулярно уступает время другим процессам в системе, одна плохо спроектированная программа может использовать все время ЦП для себя, либо выполняя обширные вычисления или занятое ожидание ; в обоих случаях вся система зависает. В среде server это опасность, которая делает всю среду неприемлемо хрупкой. Однако совместная многозадачность позволяет значительно упростить реализацию приложений, поскольку их выполнение никогда не прерывается неожиданно планировщиком процессов; например, различные функции внутри приложения не должны быть реентерабельными.

Напротив, вытесняющая многозадачность прерывает приложения и дает управление другим процессам, находящимся вне контроля приложения.

См. Также

Ссылки

Последняя правка сделана 2021-05-15 11:42:33
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте