Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPO_na_ekz_1.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
425 Кб
Скачать
☆
  1. Обработка прерываний. Типы прерываний.

Типы прерываний: запросы ввода/вывода, исключения, программные прерывания

Рассмотрим более подробно прерывания, остановившись на трех их типах. Работа любой вычислительной установки управляется центральным процессором. По отношению к нему рассматриваются два типа прерываний. Первая группа вызывается внешними событиями. Прежде всего, это запросы от различных внешних устройств. Они не связаны с работой самого центрального процессора. Другим типом прерываний являются такие, которые вызваны событиями возникающим при работе ЦПУ. Таким могут быть, например, нарушение защиты памяти, попытка деления на ноль и другие.

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

Большая группа прерываний происходят, когда встречается специальная команда. Такая группа составляют программные прерывания. Они обрабатываются, так же как и внутренние прерывания процессора. Эта группа была введена для того, чтобы переключение на выполнение обычных программных модулей пользовательских программ отличался от переключения на системные программные модули. В последнем случае происходит автоматическое переключение в привилегированный режим работы процессора и, следовательно, могут выполняться любые машинные команды.

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

Еще больше о прерываниях процессоров маршрутизаторов, вы можете почитать на сайте cisco systems. Эта известная фирма программирует маршрутизаторы и сетевое оборудование.

  1. Системные вызовы. Синхронный и асинхронный режим.

Системный вызов позволяет приложению обратиться к ОС на выполнение того или иного действия, оформленного как процедура ОС

• Системные вызовы могут обслуживаться децентрализовано и централизовано

• При децентрализованном способе за каждым вызовом закрепляется определенное значение вектора прерываний

• Программа при таком способе вызова указывает в аргументе запроса значение вектора, после чего управление немедленно передается требуемой процедуре ОС

• Недостаток – привязка к аппаратной платформе

В большинстве ОС системные вызовы обслуживаются централизовано, с использованием диспетчера системных вызовов

• При любом системном вызове программа выполняет программное прерывание с определенным и единственным номером вектора

• Номер системного вызова передается ОС

• Этот номер является индексом в таблице адресов процедур ОС, реализующих системные вызовы.

Происходит переход в привилегированный

режим

• Диспетчер – это модуль сохранения контекста в системном стеке, проверяющая попадание номера вызова в диапазон и передающая управление процедуре ОС, адрес которой находится в таблице адресов системных вызовов

• Процедура реализации системного вызова получает аргументы и выполняет заданное действие

• По завершению работы системного вызова управление возвращается диспетчеру, при этом он получает код возврата

• Для программ системный вызов внешне ничем е отличается от вызова обычной функции языка программирования С

Синхронный системный вызов означает, что поток блокируется до тех пор, пока вызов не выполнит всю свою работу. Затем поток переводится в состояние готовности.

• Большая часть системных вызовов в ОС являются синхронными

• Асинхронный режим не переводит поток в блокированное состояние

• Асинхронных вызовов становится всовременных ОС все больше и больше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]