Организация ЭВМ и систем

Подсистема защиты памяти


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

Независимо от принятых принципов построения подсистемы защиты памяти в основе её функционирования заложена проверка всех адресов, по­ступающих для обращения к ОП. В результате такой проверки формируется сигналы управления, разрешающий обращение к ОП, если адрес относится к выделенной для данной программы области памяти, в противном случае вы­рабатывается сигнал, запрещающий выполнение данной команды (при этом посылается запрос на прерывание реализуемой программы с целью установ­ления причины нарушения границ разрешенной для использования области памяти).

Реализация идеи защиты памяти в любом случае не должна сопровож­даться заметным снижением производительности машины и не требовать больших аппаратных затрат.

Различают три способа защиты памяти: по граничным адресам, по мас­кам и по уровням привилегий (ключам).

Защита памяти по граничным адресам

Защита памяти по граничным адресам

осуществляется с помощью регистров и узлов сравнения кодов, размещаемых в блоке защиты памяти (БЗП). Реализация этого способа защиты предусматривает выделение для ка­ждой программы определенной области ОП, составленной из ячеек с после­довательными адресами. Границы области отмечаются фиксированием адре­сов её начальной и конечной ячеек. Граничные адреса вводятся в регистры БЗП управляющей программой операционной системы перед началом вы­полнения каждой рабочей программы. При выполнении данной рабочей про­граммы каждый поступающий в ОП исполнительный адрес с помощью узлов сравнения кодов сравнивается с граничными адресами.
По результатам срав­нения устанавливается возможность обращения к ОП по поступившему адре­су: если он находится в пределах граничных адресов, то разрешается доступ к соответствующей ячейке памяти, в противном случае вырабатывается сиг­нал запроса на прерывание выполняемой программы.

Преимущество данного способа защиты памяти состоит в том, что он позволяет защищать области памяти произвольной длины. Кроме того, блок защиты достаточно прост, а его функционирование не приводит к значитель­ным временным затратам. Однако необходимость размещения программ в областях памяти с последовательными номерами ячеек и ограниченных дву­мя граничными адресами существенно снижает возможности программиро­вания и даже эффективность работы ЭВМ. Поэтому способ защиты памяти по граничным адресам в настоящее время применяется редко, при статиче­ском распределении памяти, когда для каждой из параллельно выполняемых рабочих программ заранее (до начала их выполнения) отводится определен­ная область памяти.

Защита памяти по маскам

Защита памяти по маскам

используется при страничной организации ОП. Для каждой программы перед её выполнением указываются номера страниц, отведенные для размещения её команд и всех необходимых данных. Указание о номерах отведенных страниц для данной программы задается управляющей программой операционной системы в виде кода маски или ко­да признаков страниц. Код маски формируется для каждой рабочей програм­мы. Под маской программы понимается n-разрядный двоичный код, разряд­ность которого определяется количеством страниц ОП. Каждый i-й разряд маски указывает о принадлежности i-й страницы ОП данной программе: если в i-м разряде задано значение 1, то при обращении к ОП разрешен доступ к любой ячейке i-ой страницы, если же i-й разряд маски содержит ноль, то вы­полняемой программе доступ к i-й странице запрещен.

Перед выполнением программы её код маски по специальной команде засылается в регистр маски РМ (рис. 4.21) блока защиты.


При каждом обра­щении к ОП код номера страницы из исполнительного адреса загружается в регистр номера страницы PC и затем расшифровывается дешифратором но­мера страницы ДШС. На одном из выходов этого дешифратора, номер кото­рого равен номеру страницы, появляется единичный сигнал. Если в соответ­ствующем этой странице двоичном разряде кода маски программы задана единица, то схема сравнения выдает сигнал разрешения передачи адреса ячейки в ОП, в противном случае схема сравнения вырабатывает сигнал пре­рывания программы.



Рис.4.21. Защита памяти по маскам

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

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


Содержание раздела