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


