Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы ОЭВМС.docx
Скачиваний:
17
Добавлен:
07.08.2019
Размер:
103.28 Кб
Скачать

43. Сегментно-страничная организация памяти.

Виртуальная память, которой располагает программист, представляет собой непрерывный массив с единой нумерацией байтов.

Такое логическое адресное пространство называют еще плоским или линейным. Между тем программа обычно состоит из нескольких массивов-подпрограмм, одной или нескольких секций данных. При программировании длина таких массивов (программных модулей) получается произвольной (различной), поэтому удобно, чтобы каждый массив имел свою собственную нумерацию байтов, начинающуюся с нуля. Желательно также, чтобы составленная таким образом программа могла работать при динамическом распределении памяти, не требуя от программиста усилий по объединению различных ее частей в единый массив.

В современных вычислительных системах эта задача решается путем использования особого метода преобразования виртуальных адресов в физические, называемого сегментно-страничной организацией памяти.

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

Возникает определенная иерархия в организации программ, состоящая из четырех ступеней:

- программа – сегмент – страница – байт.

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

44. Защита памяти. Способы реализации защиты памяти.

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

Можно выделить следующие варианты дифференцированной защиты при различных операциях с памятью:

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

• Задается одно из следующих отношений к области памяти собственной программы:

- разрешается доступ к данному блоку как для записи, так и для считывания;

- разрешается только считывание;

- разрешается обращение любого вида, но по адресу, взятому только из счетчика команд;

- разрешается обращение по адресу из любого регистра, кроме счетчика команд.

Если нарушается защита памяти, исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти.

Рассмотрим наиболее распространенные способы реализации защиты памяти:

- защита отдельных ячеек памяти (В небольших управляющих вычислительных устройствах, работающих, например, в составе АСУ технологических процессов (АСУ ТП), необходимо обеспечить возможность отладки новых программ параллельно с функционированием находящихся в памяти рабочих программ, управляющих технологическим процессом.

Этого можно достичь выделением в каждой ячейке памяти специального разряда защиты. Установка 1 в этот разряд запрещает производить запись в данную ячейку. Это так называемый метод контрольного разряда.

В системах с мультипрограммной обработкой и сегментацией памяти защищают не отдельные ячейки, а области памяти или блоки, на которые делится память.);

- метод граничных регистров (Идея метода состоит в том, что вводят два граничных регистра, указывающих верхнюю и нижнюю границы области памяти, куда программа имеет право доступа. При каждом обращении к памяти проверяется, находится ли используемый адрес в установленных границах. При выходе за границы обращение к памяти подавляется и формируется запрос прерывания, передающий управление операционной системе. Содержание граничных регистров устанавливается операционной системой перед тем, как для очередной целевой программы начнется активный цикл);

- метод ключей защиты (Он позволяет организовывать доступ программы к областям памяти, расположенным не подряд.

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

Метод ключей защиты не исключает использование метода контрольного разряда для защиты отдельных ячеек памяти и метода граничных регистров для защиты отдельных зон памяти.).