Для эффективного использования процессора одних прерываний не достаточно. Например, если во время ввода-вывода выполняющаяся часть программы (до следующего ввода-вывода) закончилась выполняться раньше, чем закончился ввод-вывод, то процессор простаивает. Если бы в это время можно было выполнять другую задачу ( программу), то эффективность была бы выше. На этом построена многозадачность.
Для многозадачности в оперативной памяти одновременно должны находиться несколько программ (задач). При этом возникает задача управления памятью между задачами, безопасности ее использования разными задачами.
Многозадачные ОС есть 2 типов:
программа 1: | работа |________________________| работа |_______________ ...
программа 2: |_______| работа|________________________| работа |_________ ...
программа 3: |______________| работа|________________________| работа|____ ...
все программы: | работа | работа | работа |__________| работа | работа | работа |___ ...
В этом примере: пропуски – это операции ввода-вывода или просто ожидание своей очереди.
Как только начинается операция ввода-вывода одной программы, управление передается на выполнение другой программе (которая ожидала). Если ожидают несколько программ, то существуют механизмы выбора – кому передать управление в первую очередь. Обычно для этого используется приоритет задач.
Преимущества: максимально эффективное использование времени процессора
Недостатки: нет возможности быстрого отклика на действия пользователя в интерактивных задачах
Программа1 | Программа2 | Программа3 | Программа1 | Программа2 | Программа3 | ∙∙∙ |
Необходимость создания таких систем продиктована интерактивной средой работы системы, когда в каждый промежуток времени пользователь хочет непосредственно взаимодействовать с системой ( нажимая клавиши и работая мышью, пользователь ждет мгновенной реакции от системы, он не хочет ждать завершения каких-то других задач).
Если одновременно выполняется К задач, то каждой из них выделяется 1/К доля процессорного времени, при этом скорость процессора для каждой задачи как бы уменьшается в К раз, но создается эффект одновременной работы и возможности мгновенной реакции на запросы пользователя.
Преимущества: возможность быстрого отклика на действия пользователя в интерактивных задачах
Недостатки: затраты на сохранение состояния задачи при многих переключениях между задачами и системой, что замедляет работу задач и требует все более скоростных аппаратных средств.
Вопросы на повторение:
· Что такое прерывание, какие дополнительные действия должна выполнять система для каждого прерывания. Назовите основные типы прерываний. Чем отличается приоритет прерываний от запрета прерываний
· Принцип работы пакетной многозадачности.Принцип работы многозадачности с разделением времени Какие недостатки и преимущества каждого типа многозадачности перед другим