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