Тема лекции: «Система прерываний. Аппаратные и

advertisement
Тема лекции: «Система прерываний. Аппаратные и программные средства системы
прерываний».
Прерывание используются для быстрой реакции процессора на особые ситуации,
возникающие при выполнении программы и взаимодействии с внешними устройствами.Прерывания
представляют собой механизм позволяющий координировать параллельное функционирование
отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при
работе процессора.
Система прерываний - это совокупность программных и аппаратных средств, которые при наличии
запросов обеспечивают прекращение выполнения текущей программы,работу по вызванной
программе и возврат к прерванной.Система прерываний предназначена для обеспечения
эффективной мультипрограммной работы и организации взаимодействия в многопроцессорных
вычислительных системах. Источниками прерываний могут быть:сигналы счетчика реального
времени (таймера) ,аварийные сигналы от схем контроля,инициативные запросы датчиков входной
информации (внешние устройства),запросы от других процессоров и т.д.
Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами
компьютера. Структуры систем прерываний могут быть самыми различными, но все они имеют
общую особенность – прерывание непременно ведет за собой изменение порядка выполнения команд
процессором.Система прерываний предназначена для организации программной обработки событий,
происходящих в различных частях системы, программных циклов ожидания этих событий.
Всего микропроцессор различает 256 типов прерываний. Таким образом, все они могут быть
закодированы в 1 байте. Каждому запросу прерывания в компьютере присваивается свой номер (тип
прерывания), используемый для определения адреса обработчика прерывания.
Действия микропроцессора по обработке запроса прерывания выполняются аппаратными средствами
МП и включают в себя:
определение типа прерывания;
сохранение контекста прерываемой программы (некоторой информации, которая
позволит вернуться к прерванной программе и продолжить ее выполнение).

определение адреса обработчика прерывания и передача управления первой
команде этого обработчика.


Программа обработчик прерывания выполняется в соответствии поступившему запросу.
Эта программа пишется и размещается в памяти прикладным или системным программистом. Для
вызова обработчика прерывания микропроцессор использует таблицу векторов прерываний.
Таблица векторов прерываний располагается в самых младших адресах оперативной
памяти, имеет объем 1 Кбайт и содержит 4байтные элементы (векторы прерываний) для 256
обработчиков прерываний( типов прерываний). Обращение к элементам таблицы осуществляется по 8разрядному коду - типу прерывания.Занимает первый килобайт ОП (адреса 00000h-003FFh). Таблица
векторов прерываний инициализируется при запуске системы, но в принципе может быть изменена и
перемещена.Каждый вектор имеет свой номер и называется номером прерывания.
Механизм обработки прерываний включает в себя следующие элементы:
1. Установление факта прерывания (прием и идентификация сигнала на прерывание).
2. Запоминание состояния прерванного процесса (состояние процесса определяется значением
счетчика команд, содержимым регистра процессора)
3. Управление аппаратно передается программе обработки прерывания. В этом случае, в счетчик
команд заносится начальный адрес подпрограммы обработки прерывания, а в соответствующие
регистры из слова состояния.
4. Сохранение информации прерванной программе, которую не удалось спасти с помощью действий
аппаратуры.
5. Обработка прерывания. Работа может быть выполнена той же подпрограммой, которой было
передано управление на 3-ем шаге, но в ОС чаще всего эта обработка реализуется путем вызова соотв.
подпрограммы.
6. восстановление информации относящейся к прерванному процессу.
7. Возврат в прерванную программу.
Первые 3 шага реализуются аппаратными средствами, а остальные – программно.
Главные функции механизма прерывания:
1. Распознавание или классификация прерывания.
2. Передача управления обработчику прерывания.
3. Корректное возвращение к прерванной программе
Переход от прерванной программе к обработчику и обратно должен
производится как можно быстрее. Одним из быстрых методов является использование таблицы
сод. перечень всех допустимых для компьютера прерываний и адреса соотв. обработчиков. Для
корректного возвращения к прерванной программе, перед передачей управления обработчику,
содержимоерегистров процессора запоминается либо в памяти с прямым доступом либо в
системном стеке.
К аппаратным средствам системы прерываний относятся:
выводы микропроцессора
2) программируемый контроллер прерываний (предназначен для фиксирования сигналов прерываний
от восьми различных внешних устройств; он выполнен в виде микросхемы; именно он формирует
номер вектора прерывания и выдает его шину данных);
3) внешние устройства (таймер, клавиатура, магнитные диски и т.п.)
Программным средствам системы прерываний:
1) таблица векторов прерываний.
 два флага в регистре флагов flags/eflags:
 IF (Interrupt Flag) - флагпрерывания. Предназначен для маскирования (запрещения) аппаратных
прерываний. Если IF=1, микропроцессор обрабатывает внешние прерывания, если = 0, то игнорирует;
 TF(TraceFlag) - флаг трассировки. Если он=1, то микропроцессор переходит в режим покомандной
работы. В этом режиме в микропроцессоре генерируется внутреннее прерывание с номером 1;
 машинные команды микропроцессора: int, into (прерывание по переполнению), iret, cli, sti
Тема лекции: «Понятие ресурса. Распределение ресурсов».
Ресурсом является средство вычислительной системы, которое может быть выделено
процессу на определенный интервал времени.
Под управлением ресурсами в ОС понимается распределение ресурсов системы
между различными задачами и процессами, одновременно функционирующими в ней.
В ОС, как правило, отсутствует отдельный супервизор ресурсов, поскольку
функции распределения ресурсов реализуются как на уровне внешнего планирования, так и на
уровне внутреннего планирования.
Основными функциями управления ресурсами являются:
− учет наличия и состояния ресурсов;
− прием и учет заявок на ресурсы от задач и процессов;
− распределение ресурсов между задачами и процессами;
− организация использования ресурсов, выделенных каждой задаче или процессу;
− возврат ресурса в систему по мере его освобождения потребителем.
Для реализации функций управления ресурсами в ОС формируются
информационные таблицы, в которых отражаются следующие основные данные для ресурсов:
− учетная информация о ресурсе (идентификатор, класс, количество каналов и т.п.);
− код состояния ресурса;
− идентификатор процесса-владельца и т.п.;
для заявок на ресурсы:
− идентификатор процесса-заявителя;
− приоритет процесса;
− идентификатор и требуемый объем ресурса и т.п.
В ходе организации использования ресурсов формируются таблицы, в которых
указываются списки распределенных и свободных ресурсов, связи между ресурсами и процессами.
Наряду с проблемой рационального распределения ресурсов между процессами
существует также проблема синхронизации протекания параллельных процессов и исключение
возникновения тупиков в вычислительной системе.
Процесс в мультипрограммной системе находится в состоянии тупика, если он
ожидает некоторого события, которое никогда не произойдет.
Системная тупиковая ситуация, или ситуация "зависания" системы – это ситуация,
когда один или более процессов оказываются в состоянии тупика.
В операционных системах тупики возникают в большинстве случаев как результат
конкуренции процессов за обладание монопольно используемыми ресурсами
четыре необходимых условия наличия тупика:
1) процессы требуют предоставления им монопольного права управления
ресурсом, которые им выделяются (условие взаимоисключения);
2) процессы удерживают за собой ресурсы, уже выделенные им, ожидая в то же
время выделения дополнительных ресурсов (условие ожидания ресурсов);
3) ресурсы нельзя отобрать у процессов, удерживающих их, эти ресурсы не будут
использованы для завершения работы (условие неперераспределяемости);
4) существует кольцевая связь процессов, в которой каждый процесс удерживает за
собой один или более ресурсов, требующихся следующему процессу цепи (условие кругового
ожидания).
В проблеме тупиков выделяют следующие четыре основных направления:
предотвращение тупиков, обход тупиков, обнаружение тупиков, восстановление после тупиков.
При предотвращении тупиков целью является обеспечение условий, исключающих
возможность возникновения тупиковых ситуаций. Такой подход является вполне корректным
решением о том, что касается самого тупика, однако он часто приводит к нерациональному
использованию ресурсов.
Обход тупиков заключается в том, чтобы можно было предусматривать менее
жесткие ограничения, чем в случае предотвращения тупиков, и тем самым обеспечить лучшее
использование ресурсов. При наличии средств обхода тупиков не требуется такой реализации
системы, при которой опасность тупиковых ситуаций даже не возникает. Методы обхода
учитывают подобную возможность, однако в случае увеличения вероятности возникновения
тупиковой ситуации здесь принимаются меры по аккуратному обходу тупика.
Методы обнаружения тупиков применяются в системах, которые допускают
возможность возникновения тупиковой ситуации как следствие умышленных или неумышленных
действий программистов. Целью средств обнаружения тупиков является установить сам факт
возникновения тупиковой ситуации и точно определить те процессы и ресурсы, которые оказались
вовлеченными в эту тупиковую ситуацию.
Методы восстановления после тупиков применяются для устранения тупиковых
ситуаций с тем, чтобы система могла продолжать работать, а процессы, попавшие в тупиковую
ситуацию, могли завершиться с освобождением занимаемых ими ресурсов.
Download