Многозадачность – это способность системы выполнять одновременно несколько приложений.
Можно одновременно делать расчеты, печатать документ и играть в игру.
Для каждого приложения выделяется своя доля времени процессора. У пользователя создается иллюзия одновременного решения задач.
Различают два вида многозадачности: кооперативная и преемптивная.
В кооперативной многозадачности каждому приложению назначается приоритет. Задачи малого приоритета решаются во время простоя задачи большого приоритета (ожидание нажатия клавиши, чтение – запись на диск и др.). Задача большого приоритета может забрать себе все время процессора. Задача самостоятельно решает, когда отдать процессор другой задаче.
В преемптивной многозадачности каждая задача получает фиксированный квант времени процессора. Окончание кванта всегда приводит к попытке передать управление другой задаче. Задачи решаются по очереди, являются преемниками друг друга. Ответственность за передачу процессора несет ОС.
Приложения Windows способны порождать процессы. Процесс – последовательность действий, которые могут выполняться независимо от других процессов. Например, можно открыть несколько документов. За каждым окном документа будет закреплен процесс. Поток – это часть процесса, который может выполняться независимо от других потоков. Деление процесса на потоки функция самого приложения, а порядок предоставления потокам процессорного времени осуществляется операционной системой.
Процесс состоит из потоков, в крайнем случае, из одного. Многозадачность Windows основана на способности ОС обрабатывать много потоков.
Сетевая ОС может еще успешнее справляться с многозадачностью, если поддерживает многопроцессорную обработку. Тогда процессы будут фактически выполняться одновременно, каждый на своем процессоре.
Есть две разновидности многопроцессорной обработки: асимметричная и симметричная. При асимметричной обработке один или несколько процессоров обслуживают только операционную систему, а остальные заняты только приложениями. При симметричной обработке любой процесс может быть поручен любому свободному процессору. Симметричная обработка более предпочтительна, т.к. в целом отказоустойчива и более равномерно распределяет нагрузку..