
- •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 в старший разряд адреса.
Таким образом нашли адрес и перемещаем
его в РгССП. В РгССП находится слово,
которое связано с обрабатывающей
программой. Она начинает выполняться.
Она по коду прерывания, который находится
в старых ССП, перейдет к конкретной
программе, которая обслуживает прерывание.
Выполняется сохранение всех данных,
которые сохраняются на регистрах;
обеспечивается выполнение этой
прерывающей программы и затем
восстанавливается регистр с данными.
После восстановления из области старых
ССП возвращается запомненное ССП и
продолжается программа.
Фиксация запроса.
Запоминание ССП.
Вычисление нового адреса ССП.
Загрузка нового ССП.
Выполнение программной обработки запроса.
Возвращение в старое ССП.
Продолжение вычислений.
Обработка запросов прерывания на основе
вектора прерываний
Вектор – адрес программы обработки запросов (начало программы). Программа обработки запросов обеспечивает сохранение данного ССП в памяти. Она сохраняет те регистры данных, которые необходимо сохранить. Затем эта же программа загружает новое ССП. Оно определяется этой программой, происходит вычисление, а затем возврат старого ССП. Программа выполняется дальше.