
- •Системное программное обеспечение Кошкин в. В.
- •Место программных средств в вычислительных системах
- •Состав по
- •Общие требования к программному обеспечению
- •Требования к проектируемому программному обеспечению
- •(2) Основные принципы проектирования программного обеспечения (по).
- •Механизмы выполнения программы
- •Последовательность выполнения программы. Основные положения.
- •2) Понятие процедур.
- •(3) Прерывания
- •(4) Процедура ввода/вывода.
- •Управление реальной памятью.
- •Управление виртуальной памятью.
- •Р абота с файлами.
- •Планирование заданий.
- •Распределение ресурсов
- •Защита пользователей.
- •Синхронизация процессов. (1) Синхронизация. Мониторы как инструмент синхронизации.
- •(2) Синхронизация. Реализация взаимного исключения. Семафоры.
- •Загрузчики.
- •Загрузчик, абсолютный загрузчик
- •Перемещающий загрузчик.
- •Управление процессами загрузки.
- •Связывающие загрузчики.
- •Динамическое связывание.
- •Макропроцессоры. (1) понятия о макропроцессорах.
- •(2 )Варианты построения макропроцессоров.
- •Компиляторы Основные функции компиляторов. Последовательность компиляции.
- •Свойства компиляторов, варианты построения.
- •Интерпретаторы.
- •Компиляторы в р-код.
- •Автоматизация процедуры компиляции.
- •Тестовое по. Основные принципы построения тестового по.
- •Основы методики тестирования.
- •Генерация тестовых последовательностей.
- •Вопросы для подготовки к экзаменам по Системному программному обеспечению
- •Объектный файл 1.Obj
- •Выполняемый файл 1.Exe
- •Если нужны изменения
(3) Прерывания
Если рассматривать процедуру выполнения процесса как последовательное активное состояние и связи между ними, то она может прерваться вследствие работы ВУ. При этом в ОС предусматривают два механизма: асинхронность. Процессор основной и процессоры ВУ работают в асинхронно, что позволяет им выполнять свои программы параллельно. Вместе с этим ОС должна предусматривать метод активного ожидания, когда анализируется флаги ВУ. Выставляется флаг запроса, процессор анализирует его. Если он активный процессор проверяет свой флаг окончания операции. При активном этом флаге производиться переход на подпрограмму обслуживания ВУ. Чтобы определить конец этой подпрограммы нужен третий флаг (конца подпрограммы). При его появлении процессор возвращается к выполнению основной программы. Особенность режима: периодически процессор проверяет флаг запроса от ВУ. Процедуры защиты памяти требуют учета запрещенных областей доступа в память (запрещение адресов) и реализации процедуры защиты памяти. Процедура прерывания предусматривает перестановку контекста процессора в следствии внешних причин. Физически это может быть сигнал, который изменит состояние указателя. Источником такого сигнала может быть любой другой процессор или просто внешний физический сигнал (кончик).
Прерывание должно заставить процессор перейти из текущей процедуры (А) в вызываемую процедуру (Б). От обычных подпрограмм она отличается тем, что имеет несколько другой режим защиты информации.
Поскольку принятая модель подразумевает начало процедур вызова и возврата после завершения текущей процедуры, то реакция процессора на какие-то внешние события возможна только в этих точках. Отсюда такая модель ограничена. Для того, чтобы иметь возможность изменять контекст, произвольные временные точки необходимо, предусмотреть организацию приостановок текущей процедуры и смены контекста. Наиболее известный способ – прерывание. Но в организации системного программирования эту группу разделяют на три составляющих.
Н
прерывание
Собственно
прерывание
захват
Обращение к
супервизору
о
прежде чем вызвать процедуру, определенную
внешним событием необходимо поместить
слово состояния в выделенное место
памяти. И загрузить слово состояния в
процессор. Процедура возможна, если
процессор находиться в режиме ожидания,
либо между двумя командами – изменение
содержимого контекста возможно только
после завершения текущей команды.
Перестановка содержимого может
производиться по различным причинам в
цифровой технике. Они (причины) обычно
занумерованы по порядку. Возможны два
варианта схемы перестановки: 1) хранение
в фиксированных ячейках. Каждый номер
причины имеет соответствующий адрес,
в который и записываются старые и новое
содержимое ССП. Как правило, это возможно
с привилегированным командами. 2) хранение
в стеке. Любая процедура перестановки
выполняется согласно внутренних
указателей (номеров причин, вызывающих
это событие). Собственно прерывания
вызываются внешними по отношению к
процессору событиями. Например: сигнал
с внешнего разъема, поступивший от
преобразователя (датчики). Согласно
этого сигнала происходит изменение
состояния регистра указателя
соответствующего в нем разряда. И это
изменение заставит процессор перейти
на выполнение другой программы. ССП
(признаки), прерывания поступают на
устройство управления процессора,
который при расшифровке следующей
команды определяет, что это сигнал
активный и необходимо изменить адрес
выбираемой команды. Команда, на которую
переходит процессор – начальная команда
программы прерываний. Причин, вызывающих
собственно прерывание может быть
несколько, поэтому в регистре
предусматривается несколько разрядов
под запоминание таких сигналов. Различаю
уровни прерываний (приоритеты). Поэтому
первая задача устройства управления
процессора – распознать, определить
причину (код сигнала, пришедшего от ВУ).
Это механизм может присутствовать в
двух вариантах: 1) приходит один разряд
ССП, первый шаг. Процессор отмечает, что
необходимо прерывание. И на втором шаге
по дополнительному коду ССП определяет
причину – последовательный путь. 2)
параллельный – в ССП все причины
присутствуют одновременно. Но второй
способ требует увеличение разрядности
ССП. Причин внешних сигналов, требующих
прерывания в произвольный момент времени
может быть несколько. Чтобы не было
конфликтов, предусматривают процедуру
маскирования.
С
Прерванная
программа А Перестановка
Сохранение
контекста А
Обработка
прерывания, запуск программы Б
Восстановление
контекста, запуск ССП
Выполнение
программы
уть
– отсрочки перестановки контекста на
неопределенное время, если появляется
сигнал более высокого уровня (более
важная причина). Сигналы с меньшими
уровнями маскируются. Механизм выбора:
дешифратор автоматически из нескольких
сигналов выберет наиболее важный. Если
выполнится программа обработки с высшим
приоритетом производиться снятие маски
и прерывания. Для некоторый уровней
можно не только отсрочить прерывание,
но и снять его вообще: дешифратор не
пропускает сигнал с меньшим приоритетом,
если был обработан высший приоритет.
Структуру программы прерывания можно
представить в следующем виде.
Если процессор перешел в режим обработки прерываний, он необязательно должен вернуться в прерванную программу. Подпрограмма прерывания может заменить соответствующий контекст и процессор получает переназначение. Это основное различие механизма прерывания и обращения к подпрограмме.
2) захват. Вызывается причинами, связанными с непосредственным выполнением команд.
При захвате причины следующие: 1) не правильные данные, приводящие к нарушению результата; 2) обращение к защищенной области памяти; 3) невозможность выполнения команды, т.е. обращение к устройству которого нет в конфигурации. Адрес вне памяти и т.д. принципиальное отличие этой группы в том, что сигнал захвата не может быть маскирован, отсрочен.
Вызов супервизора – команда, приводит к перестановке контекста, т.е. по сути вызов процедуры. Основное отличие – в ССП меняется все содержимое, а не только адресная часть. При этом вызывается процедура ОС: режим распорядителя, замаскированные прерывания. Механизм перестановки следующий: 1) новый контекст определяется новым ССП. Это ССП располагается в недоступной пользователю области памяти. 2) программа обработки супервизора начинает с проверки прав пользователя на этот вызов. И здесь же проверка допустимости новых параметров. Механизм возврата прежний. Наиболее часто используют доступ к файлам и к драйверам ввода/вывода. Таки образом третья группа прерываний инициализируется программно.