Многозадачность

Многозадачность – это способность системы выполнять одновременно несколько приложений.

Можно одновременно делать расчеты, печатать документ и играть в игру.

Для каждого приложения выделяется своя доля времени процессора. У пользователя создается иллюзия одновременного решения задач.

Различают два вида многозадачности: кооперативная и преемптивная.

В кооперативной многозадачности каждому приложению назначается приоритет. Задачи малого приоритета решаются во время простоя задачи большого приоритета (ожидание нажатия клавиши, чтение – запись на диск и др.). Задача большого приоритета может забрать себе все время процессора. Задача самостоятельно решает, когда отдать процессор другой задаче.

В преемптивной многозадачности каждая задача получает фиксированный квант времени процессора. Окончание кванта всегда приводит к попытке передать управление другой задаче. Задачи решаются по очереди, являются преемниками друг друга. Ответственность за передачу процессора несет ОС.

Приложения Windows способны порождать процессы. Процесс – последовательность действий, которые могут выполняться независимо от других процессов. Например, можно открыть несколько документов. За каждым окном документа будет закреплен процесс. Поток – это часть процесса, который может выполняться независимо от других потоков. Деление процесса на потоки функция самого приложения, а порядок предоставления потокам процессорного времени осуществляется операционной системой.

Процесс состоит из потоков, в крайнем случае, из одного. Многозадачность Windows основана на способности ОС обрабатывать много потоков.

Сетевая ОС может еще успешнее справляться с многозадачностью, если поддерживает многопроцессорную обработку. Тогда процессы будут фактически выполняться одновременно, каждый на своем процессоре.

Есть две разновидности многопроцессорной обработки: асимметричная и симметричная. При асимметричной обработке один или несколько процессоров обслуживают только операционную систему, а остальные заняты только приложениями. При симметричной обработке любой процесс может быть поручен любому свободному процессору. Симметричная обработка более предпочтительна, т.к. в целом отказоустойчива и более равномерно распределяет нагрузку..