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

 

Для эффективного использования процессора одних прерываний не достаточно. Например, если во время ввода-вывода выполняющаяся часть программы (до следующего ввода-вывода) закончилась выполняться раньше, чем закончился ввод-вывод, то процессор простаивает. Если бы в это время можно было выполнять другую задачу ( программу), то эффективность была бы выше. На этом построена многозадачность.

Для многозадачности в оперативной памяти одновременно должны находиться несколько программ (задач). При этом возникает задача управления памятью между задачами, безопасности ее использования разными задачами.

Многозадачные ОС есть 2 типов:

  1. Пакетная многозадачность – выполняется 1 программа и, если появляется простой процессора( например, если выполняются операции ввода-вывода), то он используется для выполнения 2 программы .... Например :

программа 1: | работа |________________________| работа |_______________ ...

программа 2: |_______| работа|________________________| работа |_________ ...

программа 3: |______________| работа|­­­­­­­­­­­­­________________________| работа|____ ...

все программы: | работа | работа | работа |__________| работа | работа | работа |___ ...

В этом примере: пропуски – это операции ввода-вывода или просто ожидание своей очереди.

Как только начинается операция ввода-вывода одной программы, управление передается на выполнение другой программе (которая ожидала). Если ожидают несколько программ, то существуют механизмы выбора – кому передать управление в первую очередь. Обычно для этого используется приоритет задач.

Преимущества: максимально эффективное использование времени процессора

Недостатки: нет возможности быстрого отклика на действия пользователя в интерактивных задачах

  1. Разделение времени - операционная система чередует выполнение программ через малые промежутки времени.
Программа1 Программа2 Программа3 Программа1 Программа2 Программа3 ∙∙∙

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

Если одновременно выполняется К задач, то каждой из них выделяется 1/К доля процессорного времени, при этом скорость процессора для каждой задачи как бы уменьшается в К раз, но создается эффект одновременной работы и возможности мгновенной реакции на запросы пользователя.

Преимущества: возможность быстрого отклика на действия пользователя в интерактивных задачах

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

Вопросы на повторение:

· Что такое прерывание, какие дополнительные действия должна выполнять система для каждого прерывания. Назовите основные типы прерываний. Чем отличается приоритет прерываний от запрета прерываний

· Принцип работы пакетной многозадачности.Принцип работы многозадачности с разделением времени Какие недостатки и преимущества каждого типа многозадачности перед другим