- •1. Классификация систем обработки данных
- •2. Структура и формат данных
- •3. Структура и формат команд
- •4. Обобщенный алгоритм
- •5. Разработка конвейера
- •Количество конвейерных ступеней зависит от распределения операций по ступеням. Ниже рассмотрен пример трехступенчатого конвейера.
- •6. Обобщенная структура конвейера
- •7. Адресная организация памяти
- •8. Способы адресации
- •9. Виртуальная память
- •1. Страничная организация
- •2. Сегментная организация
- •3. Сегментно-страничная организация
- •10. Защита памяти
- •3. На основе ключей защиты памяти.
- •11. Организация прерываний
- •12. Организация памяти
- •13. Расслоение оп.
- •14. Локальная память
3. На основе ключей защиты памяти.
ПКЗ – память ключей защиты;
РКЗ – регистр ключей защиты;
РССП – регистр слова состояния программы;
ТРО – триггеры режима обращения.
Суть данного метода заключается в том, что вся память разбивается на блоки, каждому из которых присваивается свой ключ. В свою очередь каждая программа, загружаемая в ОП, получает ключ, соответствующий ключу блока, который она загружает. Кроме того, устанавливается режим защиты (в четвертом разряде РКЗ). Он может быть или «защита по записи» – значение равно 0, или «защита по записи считывания» - значение равно 1. При выполнении программы происходит обращение к соответствующей ячейке памяти, при этом старшие разряды адреса одновременно поступают в ПКЗ. Из ПКЗ считывается соответствующий ключ, который сравнивается с ключом, находящимся в РССП. Комбинационная схема КСх вырабатывает сигнал прерывания, если значения ключей не совпадают или сигнал разрешения обращения при совпадающих ключах защиты. Нулевое значение ключей защиты, которые размещаются в РССП или являются ключами программы, говорят о том, что данная программа имеет высший уровень привилегий, и данная программа может изменять информацию в памяти. Как правило, такие команды являются привилегированными, и программы ОС имеют нулевые ключи защиты (ключи программы).
В современных микропроцессорах на основе ТС и таблиц дескрипторов сегментов осуществляется защита памяти с использованием уровней привилегий. Тогда выполняются следующие виды защиты:
Защита программ ОС от пользовательских программ;
Защита программ пользователей друг от друга;
Защита программ ОС друг от друга;
Защита пользовательских программ от внутренних ошибок.
Каждая программа, которая выполняется в машине, имеет свой уровень привилегий. И ОС, и прикладные программы могут иметь нулевой уровень привилегий. Это значит, что любая программа имеет доступ к любой ячейке памяти и может соответствующим образом изменить информацию. Это говорит о незащищенной, или открытой системе. Значения уровня привилегий находятся в таблице дескрипторов (ТД). В ТД выделяется специальный разряд, который указывает на уровень привилегий данного сегмента памяти.
На практике: нулевой уровень привилегий имеет программу ОС, а остальные уровни привилегий имеют прикладные программы (ПП). В данном случае мы защищаем ОС от ПП. Существует возможность защиты программы ОС друг от друга. Тогда нулевой уровень имеет ядро ОС: некоторая часть основных программ, а первый уровень имеют утилиты ОС.
ПП имеют третий уровень привилегий. Таким образом решается защита памяти, используя несколько уровней привилегий.
11. Организация прерываний
Каждая система в каждый момент времени имеет некоторые значения триггеров, регистров, ячеек памяти. Эти значения являются состояниями системы. Чтобы обработать запрос на прерывание, а затем вернуться к выполнению программы с того момента, где она была прервана, необходимо восстановить состояние системы. Из всего количества состояний выбираются некоторые, которые способствуют восстановлению системы. Информация о состоянии процессора или о состоянии программы хранится в слове состояния программы, а это слово хранится в регистре. Этот регистр называется РССП, или РСС процессора. При этом не обязательно иметь строго выделенный РССПр. Можно иметь регистр, набор триггеров, счетчик, которые в общем составляют РССПр.
Второй подход обработки прерываний основан на использовании вектора прерываний. В качестве вектора прерываний выступает некоторый адрес, который указывает на начало программы обработки прерывания.
ПРИНЦИПЫ ОРГАНИЗАЦИИ СИСТЕМ ПРЕРЫВАНИЙ
Одна из причин, которая отражается на сложности системы прерывания – это то, что момент возникновения прерывания неизвестен.
Совокупность аппаратных и программных средств, предназначенная для быстрого реагирования на прерывание, называется системой прерывания. Система прерывания выполняет следующие функции:
Запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе.
Определение порядка обслуживания запросов на прерывание.
Восстановление состояния прерываемой программы.
Характеристики системы прерываний.
Общее количество запросов.
Время реализации – это время между появлением запроса на прерывание и началом выполнения обработки прерывания.
Затраты времени на переключение программ (t издержек):
а) время запоминания t3
б) время восстановления tвосст.
tизд. = t3 + tвосст.
Глубина прерывания – это количество программ, которые могут прерывать друг друга.
Насыщение системы прерывания – это количество запросов на обработку к моменту прихода следующего запроса от того же источника.
Момент обслуживания запроса на прерывание:
а) обслуживание после выполнения команды;
б) обслуживание после выполнения такта;
в) немедленное обслуживание.
Число уровней запроса:
а) прерывание по машинным ошибкам;
б) прерывание от повторного пуска;
в) программные прерывания;
г) прерывание при обращении к супервизору;
д) внешние прерывания;
е) прерывания от устройств ввода-вывода.
Наивысший приоритет имеет первый уровень (так как реализация на неисправной технике ни к чему хорошему не приводит).
Программные прерывания – это те прерывания, которые определены пользователем.
Аппаратные прерывания – это все остальные прерывания (ввод-вывод, машинные ошибки и т.д.).
Существует 2 класса:
Внутренние прерывания (к ним относят прерывания от схем контроллера, программные прерывания).
Внешние прерывания (это прерывания от устройств ввода-вывода).
Приоритет существует для фиксации запросов на прерывание, а обслуживание производится в другом приоритете. Наивысший приоритет обслуживания имеют 1, 6, 5, 4, 3, 2.
Обработка запросов на прерывание, когда
используем слово состояния программы.
Когда выполняется программа, то в РгССП имеется вся информация, необходимая для выполнения и восстановления программы (маски прерываний, код длины команды, признаки вычислений, ключ программы, адрес следующей команды). Когда получен запрос на прерывание, то завершилось выполнение команды и вся информация находится в РгССП. В ОП имеется фиксированная область, предназначенная для хранения слов состояния программы – область старых ССП. Каждому уровню прерываний соответствует своя ячейка. После остановки процесса вычисления вычисляется адрес старого ССП, этот адрес вычисляется на основе уровней запроса. После этого текущее ССП заносится в соответствующее место в области старых ССП. В ОП также в фиксированных ячейках имеется область новых ССП. После записи текущего ССП в область старых ССП, определяется адрес ячейки с новым ССП. Адрес определяется добавлением 1 в старший разряд адреса. Таким образом нашли адрес и перемещаем его в РгССП. В РгССП находится слово, которое связано с обрабатывающей программой. Она начинает выполняться. Она по коду прерывания, который находится в старых ССП, перейдет к конкретной программе, которая обслуживает прерывание. Выполняется сохранение всех данных, которые сохраняются на регистрах; обеспечивается выполнение этой прерывающей программы и затем восстанавливается регистр с данными. После восстановления из области старых ССП возвращается запомненное ССП и продолжается программа.
Фиксация запроса.
Запоминание ССП.
Вычисление нового адреса ССП.
Загрузка нового ССП.
Выполнение программной обработки запроса.
Возвращение в старое ССП.
Продолжение вычислений.
Обработка запросов прерывания на основе
вектора прерываний
Вектор – адрес программы обработки запросов (начало программы). Программа обработки запросов обеспечивает сохранение данного ССП в памяти. Она сохраняет те регистры данных, которые необходимо сохранить. Затем эта же программа загружает новое ССП. Оно определяется этой программой, происходит вычисление, а затем возврат старого ССП. Программа выполняется дальше.