Вытесняющая многозадачность и многопоточность
Операционная система Windows является многозадачной (multitasking – мультизадачной), т.е. она способна " одновременно" выполнять несколько программ. На самом деле один микропроцессор может выполнять инструкции только одной программы. Однако операционная система настолько оперативно реагирует на потребности той или иной программы, что создается впечатление одновременности их работы. Например, в процессе подготовки текста можно параллельно печатать содержимое какого-либо файла и проверять на вирус жесткий диск. Многозадачность может быть кооперативной и вытесняющей [2, 5]. При кооперативной многозадачности (cooperative multitasking) операционная система не занимается решением проблемы распределения процессорного времени. Распределяют его сами программы. Причем активная программа самостоятельно решает, отдавать ли процессор другой программе. Момент передачи управления здесь зависит от хода выполнения задачи. Таким моментом должен быть системный вызов, т.е. обращение к системе за какой-либо услугой (ввод или вывод на внешнее устройство и пр.). Фоновым задачам выделяется процессорное время при простое приоритетной задачи (ожидание нажатия клавиши и др.). Кооперативная многозадачность была реализована в среде Windows 3.1. В Windows 95 кооперативная многозадачность обеспечивается для 16-разрядньгх приложений, так как эти приложения, созданные для Windows 3.1, умеют самостоятельно распределять процессорное время. При вытесняющей многозадачности (preemptive multitasking) распределением процессорного времени между программами занимается операционная система. Она выделяет каждой задаче фиксированный квант времени процессора По истечении этого кванта времени система вновь получает управление, чтобы выбрать другую задачу для ее активизации. Если задача обращается к операционной системе до истечения ее кванта времени, то это также служит причиной переключения задач. Такой режим многозадачности Windows 95 реализует для 32-разрядных приложений, а также для программ, написанных для MS DOS. Многопоточность (multithreading) операционной системы означает, что работающие программы (процессы) могут разделяться на несколько частей, самостоятельно претендующих на процессорное время. Это обеспечивает одновременное выполнение программой нескольких не связанных друг с другом операций. Например, в табличном процессоре вычисления в разных ячейках благодаря многопоточности могут выполняться одновременно, причем параллельно с вычислениями могут быть организованы ввод данных в ячейки, их вывод на печатающее устройство и т.п.
|