<<
>>

Вытесняющая многозадачность и многопоточность

Операционная система Windows является многозадачной (multitasking – мультизадачной), т.е. она способна "одновременно" выполнять несколько программ. На самом деле один микропроцессор может выполнять инструкции только одной программы.

Однако операционная система настолько оперативно реагирует на потребности той или иной программы, что создается впечатление одновременности их работы. Например, в процессе подготовки текста можно параллельно печатать содержимое какого-либо файла и проверять на вирус жесткий диск.

Многозадачность может быть кооперативной и вытесняющей [2, 5]. При кооперативной многозадачности (cooperative multitasking) операционная система не занимается решением проблемы распределения процессорного времени. Распределяют его сами программы. Причем активная программа самостоятельно решает, отдавать ли процессор другой программе. Момент передачи управления здесь зависит от хода выполнения задачи. Таким моментом должен быть системный вызов, т.е. обращение к системе за какой-либо услугой (ввод или вывод на внешнее устройство и пр.).

Фоновым задачам выделяется процессорное время при простое приоритетной задачи (ожидание нажатия клавиши и др.). Кооперативная многозадачность была реализована в среде Windows 3.1. В Windows 95 кооперативная многозадачность обеспечивается для 16-разрядньгх приложений, так как эти приложения, созданные для Windows 3.1, умеют самостоятельно распределять процессорное время.

При вытесняющей многозадачности (preemptive multitasking) распределением процессорного времени между программами занимается операционная система. Она выделяет каждой задаче фиксированный квант времени процессора По истечении этого кванта времени система вновь получает управление, чтобы выбрать другую задачу для ее активизации. Если задача обращается к операционной системе до истечения ее кванта времени, то это также служит причиной переключения задач. Такой режим многозадачности Windows 95 реализует для 32-разрядных приложений, а также для программ, написанных для MS DOS.

Многопоточность (multithreading) операционной системы означает, что работающие программы (процессы) могут разделяться на несколько частей, самостоятельно претендующих на процессорное время. Это обеспечивает одновременное выполнение программой нескольких не связанных друг с другом операций. Например, в табличном процессоре вычисления в разных ячейках благодаря многопоточности могут выполняться одновременно, причем параллельно с вычислениями могут быть организованы ввод данных в ячейки, их вывод на печатающее устройство и т.п.

<< | >>
Источник: Под ред. проф. Н.В. Макаровой. ИНФОРМАТИКА. 2000

Еще по теме Вытесняющая многозадачность и многопоточность:

  1. БЕССОЗНАТЕЛЬНОЕ ЛИЧНОЕ
  2. ЦЕНЗУРА
  3. ШАГ 2. МЫСЛЕННОЕ ПРЕДСТАВЛЕНИЕ КОНЕЧНОГО РЕЗУЛЬТАТА
  4. Психотехнические приемы
  5. Почему одни заболевают тяжелыми и даже смертельными болезнями, а другие - только легкими?
  6. Глава 6. Как вытеснить из головы чувство беспокойства.
  7. 13.1.4. Автоматический предохранитель
  8. Резюме третьей части. Как изжить привычку к беспокойству прежде, чем оно поломает вас.
  9. ОЛЬФАКТОМЕТР
  10. Суть сопротивления изменениям.
  11. СУЕВЕРИЕ
  12. МОРИТА-ТЕРАПИЯ