
- •Назначение, эволюция и основные принципы построения
- •Эволюция и основные идеи
- •Пакетный режим
- •Разделение времени и многозадачность
- •Разделение полномочий
- •Реальный масштаб времени
- •Файловые системы и структуры
- •Основные принципы построения ос
- •Основные концепции ос
- •Концепция виртуализации
- •Концепция прерывания
- •Отношения между процессами
- •Синхронизация процессов
- •Обобщенная структура ос
- •Операционная система ms-dos
Концепция прерывания
Реализация многопрограммного режима работы ЭВМ основана на ис-
пользовании прерывания.
Обобщенная временная диаграмма выполнения прерывания
Прерываемая ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ ┌┬┬┬┬┐
программа ──┴┴┴┴┴┴┴┼┴┴┴┴┴┴┴┼────────────────────────┼┴┴┴┴┘
│ │ │
Запрос прерывания────────┼┬┬┬┬┬┬┬┼────────────────────────┼──────
│ ├┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┤
Прерывающая ─────────┼───────┼┴┴┴┴┴┼┴┴┴┴┴┴┴┴┴┴┴┴┴┼┴┴┴┴┼─────
программа ├5─────6┼5───6┼5───────────6┼5──6┤
t1 t2 t3 t4 t5
%Время Сохра- Прерывающая Восста-
реакции нение программа новлен-
состоя ние сос-
ния тояния
При обработке прерывания обычно выполняется следующая последова-
тельность действий:
1)t2 - t1 - восприятие запроса на прерывание в течение времени
реакции. В общем случае величина этого времени случайна из-за следую-
щих причин:
- в момент t1 была выключена система прерываний;
- в момент t1 данное прерывание было "замаскировано";
- в момент t1 возникло одновременно несколько запросов на прерыва-
ние и они последовательно обрабатываются в соответствии с их приорите-
тами.
2)сохранение состояния прерванного процесса, включающее в общем
случае:
- адрес команды, перед выполнение которой произошло прерывание;
- содержимое регистров общего назначения;
- режим процессора ( привелигированный или непривелигированный)
3)передача управления прерывающей программе, путем занесения в
регистр адреса команд адреса первой исполняемой команды этой программы.
4)обработка прерывания , то есть выполнение обрабатывающей прог-
раммы.
5)восстановление состояния прерванного процесса, то есть :
- запись в регистры общего назначения сохраненных ранее данных(см
п.2)
- перевод процессора в ранее сохраненный режим (см.п.2);
- передача управления прерванной программе на команду , перед вы-
полнением которой произошло прерывание .
В большинстве ЭВМ этапы 1-3 реализуются аппаратными средствами, а
этапы 4 и 5 -средствами ОС.
В зависимости от источника запроса на прерывание выделяют следую-
щие основные классы прерываний:
Прерывания от внешних устройств вызываются сигналами, поступающи-
ми от периферийных устройств ввода-вывода либо от каналов ввод-выво-
да, и являющихся либо сигналом об окончании очередной операции вво-
да-вывода, либо сигналом от инициативного устройства, требующего на-
чать с ним операцию ввода-вывода.
Прерывания от схем контроля процессора возникают при :
- при попытке выполнить несуществующую команду;
- нарушении защиты памяти;
- переполнение разрядной сетки или исчезновение порядка в арифме-
тических командах;
- падение напряжения питания процессора ниже предельно допустимо-
го.
Прерывания, возникшие по первым трем причинам иногда называют
"программными", поскольку эти причины возникают в выполняемых програм-
мах.
Прерывания при обращении к супервизору происходят по специальной
команде. Этот вид прерываний является средством, позволяющим пользова-
тельским программам инициировать работу ОС(супервизора - диспетчера)
для выполнения определенных действий( например: выделить блок опера-
тивной памяти, выполнить операцию ввода-вывода, выдать системное время
и т.д и т. п.)
Существует классификация прерываний, в которой различают: преры-
вания первого и второго рода.
Системные причины прерывания первого рода возникают в случае,
когда у процесса, находящегося в активном состоянии, возникает потреб-
ность получить некоторый ресурс или отказаться от него, либо выполнить
над ресурсом какие-либо действия. При таких прерываниях возникает не-
обходимость в явной форме выразить требование на прерывание процесса
самого себя.
Прерывания первого рода порождаются самой программой,исполняемой
в данный момент процессором, в момент времени определяемый этой же
программой.
Реализуются прерывания первого рода, с помощью команды "обращение
к супервизору", которая находится в программе активного процесса.
При ее выполнении происходит переключение процессора с обработки
программы процесса на работу ОС, которая обеспечивает выполнение тре-
буемых процессу действий.
Системная причина прерывания второго рода возникает в случае не-
обходимости проведения синхронизации между параллельными процесса-
ми.Процессы , выполняемые под управлением ОС, по мере их окончания или
при возникновений каких либо важных событий при их выполнении выраба-
тывают сигнал прерывания(например: возникновение переполнения при вы-
полнении арифметической операции, завершении операции ввода-вывода)
Основной особенностью прерываний второго рода является то, что
прерывание выполняемой процессором программы происходит "без ее ведо-
ма" , то есть асинхронно.