Безопасность операционных систем. Безбогов А.А - 45 стр.

UptoLike

Строгих доказательств преимуществ той или иной стратегии перед остальными не существует, так что их применение в
операционных системах основано на интуитивных аргументах разработчиков ОС.
4.3. ОРГАНИЗАЦИЯ ВИРТУАЛЬНОЙ ПАМЯТИ
(с использованием дискового пространства)
4.3.1. Основные концепции виртуальной памяти
Термин виртуальная память обычно ассоциируется с возможностью адресовать пространство памяти, гораздо боль-
шее, чем емкость первичной (реальной, физической) памяти конкретной вычислительной машины. Концепция виртуальной
памяти впервые была реализована в машине, созданной в 1960 г. в Манчестерском университете (Англия). Однако широкое
распространение системы виртуальной памяти получили лишь в ЭВМ четвертого и последующих поколений.
Существует два наиболее известных способа реализации виртуальной памяти
страничный и сегментный. Применяется
также их комбинация
странично-сегментная организация виртуальной памяти.
Все системы виртуальной памяти характеризуются тем, что адреса, формируемые выполняемыми программами, не
обязательно совпадают с адресами первичной памяти. Виртуальные адреса, как правило, представляют гораздо большее
множество адресов, чем имеется в первичной памяти.
Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается выполняющийся процесс,
отделяются от адресов, реально существующих в первичной памяти.
Адреса, на которые делает ссылки выполняющийся процесс, называются
виртуальными адресами. Адреса, которые ре-
ально существуют в первичной памяти, называются
реальными (физическими) адресами.
Диапазон виртуальных адресов, к которым может обращаться выполняющийся процесс, называется
пространством
виртуальных адресов
V этого процесса. Диапазон реальных адресов, существующих в конкретной вычислительной машине,
называется
пространством реальных адресов R этой ЭВМ.
Несмотря на то, что процессы обращаются только к виртуальным адресам, в действительности они должны работать с
реальной памятью. Для установления соответствия между виртуальными и реальными адресами разработаны механизмы
динамического преобразования адресов ДПА (или DAT – от англ. Dynamics Adress Transformation), обеспечивающие преоб-
разование виртуальных адресов в реальные во время выполнения процесса. Все подобные системы обладают общим свойст-
вомсмежные адреса виртуального адресного пространства процесса не обязательно будут смежными в реальной памя-
ти. Это свойство называют "искусственной смежностью". Тем самым пользователь освобождается от необходимости рас-
сматривать физическую память с ее уникальными характеристиками.
Виртуальная память строится, как правило, по двухуровневой схеме.
Первый уровеньэто реальная память, в которой находятся выполняемые процессы и в которой должны размещаться
данные, к которым обращаются эти процессы.
Второй уровеньэто внешняя память большой емкости, например накопители на магнитных дисках, способные хра-
нить программы и данные, которые не могут все сразу уместиться в реальной памяти из-за ограниченности ее объема. Па-
мять второго уровня называют вторичной или внешней.
Механизм динамического преобразования адресов ведет учет того, какие ячейки виртуальной памяти в данный момент
находятся в реальной памяти и где именно они размещаются. Это осуществляется с помощью таблиц отображения, веду-
щихся механизмом ДПА.
Информация, перемещаемая из виртуальной памяти в реальную, механизмом ДПА группируется в блоки, и система
следит за тем, в каких местах реальной памяти размещаются различные блоки виртуальной памяти. Размер блока влияет на
то, какую долю реальной памяти ДПА будет использовать непроизводительно, для своих целей.
Если блоки имеют одинаковый размер, то они называются страницами, а соответствующая организация виртуальной
памяти называется страничной. Если блоки могут быть различных размеров, то они называются сегментами, а соответст-
вующая организация виртуальной памяти называется сегментной. В некоторых системах оба подхода комбинируются, т.е.
сегменты реализуются как объекты переменных размеров, формируемые из страниц фиксированного размера. Такая организа-
ция виртуальной памяти называется либо сегментно-страничной, либо странично-сегментной.
4.3.2. Схема прямого отображения адресов
Адреса в системе поблочного отображения являются двухкомпонентными (двумерными). Чтобы обратиться к конкрет-
ному элементу данных, программа указывает блок, в котором расположен этот элемент, и смещение элемента относительно
начала блока. Виртуальный адрес ν указывает при помощи упорядоченной пары (b, d), где bномер блока, в котором раз-
мещается соответствующий элемент данных, а dсмещение относительно начального адреса этого блока.
Преобразование адреса виртуальной памяти ν = (b, d) в адрес реальной памяти r осуществляется следующим образом
(рис. 4.6).
Каждый процесс имеет собственную таблицу отображения блоков, которую операционная система ведет в реальной
памяти. Реальный адрес в этой таблицы загружается в специальный регистр центрального процессора, называемый регист-
ром начального адреса таблицы отображения блоков процесса.