|
||
Понятие виртуальной памяти 26 9
|
||
|
||
но целое число страниц, даже если одна из страниц заполнена частично. Возникает определенная иерархия в организации доступа к данным, состоящая из трех ступеней: сегмент > страница > слово. Этой структуре соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. В сегментной таблице программы перечисляются все сегменты данной программы с указанием начальных адресов СТ, относящихся к каждому сегменту. Количество страничных таблиц равно числу сегментов и любая из них определяет расположение каждой из страниц сегмента в памяти, которые могут располагаться не подряд — часть страниц может находиться в ОП, остальные — во внешней памяти. Структуру виртуального адреса и процесс преобразования его в физический адрес иллюстрирует рис. 5.34.
|
||
|
||
|
||
|
||
Рис. 5.34. Преобразование адреса при сегментно-страничной организации памяти
|
||
|
||
Для получения физического адреса необходим доступ к сегментной и одной из страничных таблиц, поэтому преобразование адреса может занимать много времени.
Организация защиты памяти
Современные вычислительные машины, как правило, работают в многопользовательском и многозадачном режимах, когда в основной памяти одновременно находятся программы, относящиеся как к разным пользователям, так и к различным задачам одного пользователя. Если даже ВМ выполняет только одну программу, в ОП, помимо этой программы и относящихся к ней данных, всегда присутствуют фрагменты операционной системы. Каждой задаче в основной памяти выделяется свое адресное пространство. Такие пространства, если только это специально не предусмотрено, обьгано независимы. В то же время в программах могут содержаться ошибки, приводящие к вторжению в адресное пространство других задач. След-; ствием этих ошибок может стать искажение информации, принадлежащей другим программам. Следовательно, в ВМ обязательно должны быть предусмотрены меры,
|
||
|
||
|
||
270 Глава 5. Память
|
||
|
||
предотвращающие несанкционированное воздействие программ одного пользователя на работу программ других пользователей и на операционную систему. Особенно опасны последствия таких ошибок при нарушении адресного пространства операционной системы.
Чтобы воспрепятствовать разрушению одних программ другими, достаточно защитить область памяти данной программы от попыток записи в него со стороны других программ (защита от записи). В ряде случаев необходимо иметь возможность защиты и от чтения со стороны других программ, например при ограничениях на доступ к системной информации.
Защита от вторжения программ в чужие-адресные пространства реализуется различными средствами и способами, но в любом варианте к системе защиты предъявляются два требования: ее реализация не должна заметно снижать производительность ВМ и требовать слишком больших аппаратных затрат.
Задача обычно решается за счет сочетания программных и аппаратных средств, хотя ответственность за охрану адресных пространств от несанкционированного доступа обычно возлагается на операционную систему. В учебнике рассматриваются, главным образом, аппаратные аспекты проблемы защиты памяти.
Защита отдельных ячеек памяти
Этим видом защиты обычно пользуются при отладке новых программ параллельно с функционированием других Программ. Реализовать подобный режим можно за счет выделения в каждой ячейке памяти специального «разряда защиты» и связывания его со схемой управления записью в память/Установка этого разряда в 1 блокирует запись в данную ячейку. Подобный режим использовался в вычислительных машинах предыдущих поколений ДЛЯ современных ВМ он не типичен).
Кольца защиты
Защиту адресного пространства операционной системы от несанкционированного вторжения со стороны пользовательских программ обычно организуют за счет аппаратно реализованного разделения системного и пользовательского уровней привилегий. Предусматриваются как минимум два режима работы процессора: системный (режим супервизора — «надзирателя») и пользовательский. Такую структуру принято называть кольцами защиты и изображать в виде концентрических окружностей, где пользовательский режим представлен внешним кольцом, а системный — внутренней окружностью. В системном режиме программе доступны все ресурсы ВМ, а возможности пользовательского режима существенно ограничены. Переключение из пользовательского режима в системный осуществляется специальной командой. В большинстве современных ВМ число уровней привилегий (колец защиты) увеличено. Так, в микропроцессорах класса Pentium предусмотрено четыре уровня привилегий. -,„,„.-..■
Метод граничных регистров
Данный вид защиты наиболее распространен. Метод предполагает наличие в процессоре двух граничных регистров, содержимое которых определяет нижнюю и верхнюю границы области памяти, куда программа имеет право доступа. Заполнение
|
||
|
||
|
||
Внешняя память 271
|
||
|
||
граничных регистров производится операционной системой при загрузке программы. При каждом обращении к памяти проверяется, попадает ли используемый адрес в установленные границы. Такую проверку, например, можно организовать на этапе преобразования виртуального адреса в физический. При нарушении границы доступ к памяти блокируется, и формируется запрос прерывания, вызывающий соответствующую процедуру операционной системы. Нижнюю границу разрешенной области памяти определяет сегментный регистр. Верхняя граница подсчитывается операционной системой в соответствии с размером размещаемого в ОП сегмента.
В рассмотренной схеме необходимо, чтобы в ВМ поддерживались два режима работы: привилегированный и пользовательский. Запись информации в граничные регистры возможна лишь в привилегированном режиме.
Метод ключей защиты
, Метод позволяет организовать защиту несмежных областей памяти. Память условно делится на блоки одинакового размера. Каждому блоку ставится в соответствие некоторый код, называемый ключом защиты памяти. Каждой программе, в свою очередь, присваивается код защиты программы. Условием доступа программы к конкретному блоку памяти служит совпадение ключей защиты памяти и программы, либо равенство одного из этих ключей нулю. Нулевое значение ключа защиты программы разрешает доступ ко всему адресному пространству и используется только программами операционной системы. Распределением ключей защиты программы ведает операционная система. Ключ защиты программы обычно представлен в виде отдельного поля слова состояния программы, хранящегося в специальном регистре. Ключи защиты памяти хранятся в специальной памяти. При каждом обращении к ОП специальная комбинационная схема производит сравнение ключей защиты памяти и программы. При совпадении доступ к памяти разрешается. Действия в случае несовпадения ключей зависят от того, какой вид доступа запрещен: при записи, при чтении или в обоих случаях. Если выяснилось, что данный вид доступа запрещен, то так же как и в методе граничных регистров формируется запрос прерывания и вызывается соответствующая процедура операционной системы.
Внешняя память
Важным звеном в иерархии запоминающих устройств является внешняя, или вторичная память, реализуемая на базе различных ЗУ. Наиболее распространенные виды таких ЗУ — это магнитные и оптические диски и магнитоленточные устройства.
Магнитные диски
Информация в ЗУ на магнитных дисках (МД) хранится на плоских металлических или пластиковых пластинах (дисках), покрытых магнитным материалом. Данные записываются и считываются с диска с помощью электромагнитной катушки» называемой головкой считывания/записи, которая в процессе считывания и записи
|
||
|
||