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

Понятие прерывания

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

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

Прерывание— сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код. Обработчики прерываний обычно входят в состав ОС и как правило, определяют природу прерывания и выполняют необходимые действия. огда обработчик прерываний завершает свою работу, процессор возобновляет выполнение программы пользователя с того места, где она была прервана.

В зависимости от источника возникновения сигнала прерывания делятся на:

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

синхронные или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;

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

Термин «ловушка» иногда используется как синоним термина «прерывание» или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры.

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

Алгоритмы планирования можно разделить на две категории согласно их поведению после прерывания: Алгоритмы планирования без переключений, иногда называемого также неприоритетным планированием, выбирают процесс и позволяют ему работать вплоть до блокировки, либо вплоть до того момента, когда процесс сам не отдаст процессор. Процесс не будет прерван, даже если он работает часами. Соответственно, решения планировщика не принимаются по прерываниям от таймера. После обработки прерывания таймера управление всегда передается прерванному процессу; Алгоритмы планирования с переключениями, называемого также приоритетным планированием, выбирают процесс и позволяют работать ему некоторое максимально возможное фиксированное время. Если к концу заданного времени процесс все еще работает, он приостанавливается и управление передается другому процессу. Приоритетное планирование требует прерываний по таймеру, происходящих в конце отведенного периода времени, чтобы передать управление планировщику.

Категории алгоритмов планирования. В различных средах требуются различные алгоритмы планирования. Можно выделить три среды:

1. Системы пакетной обработки данных (Такой метод уменьшает количество переключений между процессами и улучшает эффективность)

2. Интерактивные системы (необходимы алгоритмы с переключениями, чтобы предотвратить захват процессора одним процессом)

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

В большинстве ОС универсального назначения планирование осуществляется динамически, то есть решения принимаются во время работы системы на основе анализа текущей ситуации. Планировщик называется статическим, если он принимает решения о планировании не во время работы системы, а заранее. Результатом работы статического планировщика является таблица, называемая расписанием, в которой указывается, какому потоку/процессу, когда и на какое время должен быть предоставлен процессор.