Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Средства защиты памяти



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

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

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

Защита памяти по граничным адресам. Каждой программе выделяется область основной памяти, начинающаяся от ячейки с адресом G 1. Предполагается, что различным программам супервизор выделяет непрекрывающиеся области. Адреса А команд и операндов, генерируемые в процессе выполнения программы, проверяются на корректность путем сравнения их с граничными адресами G 1 А G 2 (G 1< G 2). Адрес некорректен, если А < G 1 или А > G 2. Проверка адресов производится схемой рис. 3.17, встраиваемой в процессор. При инициировании программы из слова состояния программы СПП (уровня прерывания) в процессор загружаются значения граничных адресов G 1, G 2. Адрес А, сформированный в программе, перед обращением к памяти сравнивается на меньше–больше с граничными адресами G 1, G 2. Если А < G 1или А > G 2 формируется сигнал прерывания λ, по которому прекращается выполнение программы и управление передается супервизору, который выводит на печать информацию о команде, породившей некорректный адрес.


Если в компьютере используется страничная организация памяти, то программе выделяются области, состоящие из целого числа страниц. В этом случае границы G 1, G 2 определяются адресами страниц, которыми начинается и заканчивается область памяти. В m -разрядном адресе выделяются старшие разряды, представляющие адрес страницы, к которой производится обращение, и сравниваются с граничными значениями G 1, G 2 адресов страниц.

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

Защита памяти по ключам. При страничной организации памяти в компьютере общего назначения широко используется способ защиты информации по ключам. Ключ – это r -разрядный двоичный код. Например, могут использоваться 4-разрядные коды, которые позволяют сформировать 16 различных ключей 0,1,…,15. Ключи присваиваются программам и страницам памяти. Каждой программе присваивается свой ключ, называемый ключом программы. Этот же ключ присваивается всем страницам, выделенным программе. Ключи страниц хранятся в памяти ключей (рис. 3. 18): ключ К 0 страницы 0 – в ячейке 0; ключ К 1 страницы 1 – в ячейке 1 и т. д. Ключи записываются в память ключей супервизором в момент подготовки программы к выполнению. Для этого используется привилегированная операция Установить ключ памяти А, Р, где А – адрес ячейки, в которой хранится значение ключа; Р – адрес страницы, которой присваивается ключ. В результате выполнения этой команды странице Р, закрепленной за программой с ключом К П, присваивается ключ К П, который становится ключом страницы.

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

Чтобы супервизору был обеспечен доступ к любой области памяти и несколько программ могли использовать для обмена информацией общую область памяти, используется универсальный ключ 0, который присваивается супервизору и страницам, общим для нескольких программ. При сравнении ключа программы К Пс ключом страницы К Р, ключ 0 считается равным любому другому ключу. Поэтому, если один из ключей К П, К Р имеет нулевой код, адрес считается корректным и сигнал прерывания λ не формируется.





Дата публикования: 2014-11-29; Прочитано: 1417 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...