Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 1 сем ос.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
457.73 Кб
Скачать

Занятие 2.Прерывания, многозадачность

Прерывания

Прерывания можно разбить на 4 типа:

  • Программные прерывания Прерывание вызванное исполняемой программой по ошибке( деление на 0, ссылка на недоступную память, ...)

  • Прерывания таймера Генерируются таймером процессора и позволяют системе выполнять свои задачи через заданные промежутки времени

  • Прерывания ввода-вывода генерируются контроллером ввода-вывода. Сигналы о завершении операции или ошибке.

  • Аппаратные прерывания генерируются аппаратурой: клавиатурой, мышью, принтером ...или при возникновении аварийных ситуаций: падение напряжения, ошибка памяти ...

Пример использования прерываний для повышения эффективности работы системы:

Допустим, программа состоит из 3 частей, между которыми выполняются команды ввода-вывода:

---1часть---|команда печати| ---2 часть---|команда ввода|---3часть---|команада сохранения|

1 вариант) исполнение такой программы без прерываний:

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

  • аналогичные шаги выполняются для всех трех процедур ввода-вывода и при выполнении каждой из них программа ждет завершения операции ввода-вывода и только затем выполняется следующая часть

ВЫВОД: при таком способе образуется много простоев процессора во время операций ввода-вывода, хотя в это время процессор мог бы выполнять следующий действия программы – ведь он не используется при выполнении самой печати или вывода на диск ….

2 вариант ) исполнение программы с прерываниями:

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

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

  • для всех остальных команд ввода-вывода выполняются аналогичные шаги

ИТОГ:

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

- обработчики прерываний входят в состав операционной системы. Они определяют устройство, генерирующее прерывание и передают управление программе, выполняющей ввод-вывод для данного устройства.

- дополнительное время использует обработчик, но это время не соизмеримо с временем ввода-вывода

- после получения сигнала прерывания от устройства, процессор посылает сигнал уведомления этому устройству.

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

Множественные прерывания.

При нескольких прерываниях одновременно возможны два подхода:

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

  2. приоритет прерываний: выполняются прерывания в порядке их приоритетов т.е. если коммуникационная программа пошлет прерывание во время прерывания принтера, то обработка прерывания принтера будет приостановлена и запущена обработка прерывания коммуникационной программы. После завершения обработки прерывания коммуникационной программы, продолжится обработка прерывания принтера.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программа1

Программа2

Программа3

Программа1

Программа2

Программа3

∙∙∙

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

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

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

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

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

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

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