Тема лекции: «Система прерываний. Аппаратные и программные средства системы прерываний». Прерывание используются для быстрой реакции процессора на особые ситуации, возникающие при выполнении программы и взаимодействии с внешними устройствами.Прерывания представляют собой механизм позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Система прерываний - это совокупность программных и аппаратных средств, которые при наличии запросов обеспечивают прекращение выполнения текущей программы,работу по вызванной программе и возврат к прерванной.Система прерываний предназначена для обеспечения эффективной мультипрограммной работы и организации взаимодействия в многопроцессорных вычислительных системах. Источниками прерываний могут быть:сигналы счетчика реального времени (таймера) ,аварийные сигналы от схем контроля,инициативные запросы датчиков входной информации (внешние устройства),запросы от других процессоров и т.д. Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера. Структуры систем прерываний могут быть самыми различными, но все они имеют общую особенность – прерывание непременно ведет за собой изменение порядка выполнения команд процессором.Система прерываний предназначена для организации программной обработки событий, происходящих в различных частях системы, программных циклов ожидания этих событий. Всего микропроцессор различает 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) существует кольцевая связь процессов, в которой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу цепи (условие кругового ожидания). В проблеме тупиков выделяют следующие четыре основных направления: предотвращение тупиков, обход тупиков, обнаружение тупиков, восстановление после тупиков. При предотвращении тупиков целью является обеспечение условий, исключающих возможность возникновения тупиковых ситуаций. Такой подход является вполне корректным решением о том, что касается самого тупика, однако он часто приводит к нерациональному использованию ресурсов. Обход тупиков заключается в том, чтобы можно было предусматривать менее жесткие ограничения, чем в случае предотвращения тупиков, и тем самым обеспечить лучшее использование ресурсов. При наличии средств обхода тупиков не требуется такой реализации системы, при которой опасность тупиковых ситуаций даже не возникает. Методы обхода учитывают подобную возможность, однако в случае увеличения вероятности возникновения тупиковой ситуации здесь принимаются меры по аккуратному обходу тупика. Методы обнаружения тупиков применяются в системах, которые допускают возможность возникновения тупиковой ситуации как следствие умышленных или неумышленных действий программистов. Целью средств обнаружения тупиков является установить сам факт возникновения тупиковой ситуации и точно определить те процессы и ресурсы, которые оказались вовлеченными в эту тупиковую ситуацию. Методы восстановления после тупиков применяются для устранения тупиковых ситуаций с тем, чтобы система могла продолжать работать, а процессы, попавшие в тупиковую ситуацию, могли завершиться с освобождением занимаемых ими ресурсов.