49
Пользователь имеет в своем распоряжении все адресное пространство ЭВМ
независимо от объема ее физической памяти (ОП) и объемов памятей, необходи-
мых для других программ, участвующих в мультипрограммной обработке. При этом
достигается гибкое динамическое распределение памяти, устраняется ее фрагмен-
тация и создаются значительные удобства для работы программиста. В современ-
ных ЭВМ
все это достигается без заметного снижения производительности компью-
тера, ценой усложнения аппаратуры, операционной системы и процессов их функ-
ционирования.
На всех этапах подготовки программы, включая загрузку в ОП, программа пред-
ставляется в
виртуальных адресах, и лишь при самом исполнении машинной ко-
манды производится преобразование виртуальных адресов в реальные адреса фи-
зической памяти ЭВМ (их называют еще
физическими адресами или исполни-
тельными).
Преобразование виртуальных адресов в физические упрощается, а также уст-
раняется фрагментация памяти, если физическую и виртуальную память разбить на
блоки небольшого размера, содержащие одно и то же число байт. Такие блоки на-
зываются
страницами. Страницам виртуальной и физической памяти присваивают
номера, называемые номерами соответственно виртуальных и физических страниц.
Каждая физическая страница способна хранить одну из виртуальных страниц. Нуме-
рация байт в виртуальной и физической страницах сохраняется одной и той же.
Вновь загружаемая в ОП программа может быть направлена в любые свобод-
ные в данный
момент физические страницы, независимо от того, расположены они
подряд или нет. Не требуется перемещения информации в остальной части памяти.
Страничная организация позволяет более
рационально осуществлять обмен ин-
формацией между ВП и ОП, так как страница программы не должна загружаться до
тех пор, пока она действительно не понадобится (имеется в виду, что обмен не-
большими блоками информации между ВП и ОП можно осуществить без заметного
снижения производительности процессора). Сначала в ОП загружается начальная
страница программы,
и ей передается управление. Если в процессе обработки про-
граммы делается попытка выборки слов из другой страницы, то производится авто-
матическое обращение к операционной системе, которая осуществляет загрузку
требуемой страницы. Так происходит в процессе выполнения всей программы, при
этом ненужные модифицированные страницы программы перемещаются из ОП в
ВП. (Алгоритмы замены страниц
в ОП рассматриваются в п. 9.6). Операция замены
(замещения) страниц в ОП называется
свопингом (swapping), а часть диска, выде-
ленная на нужды виртуальной памяти, –
файлом подкачки (swap file). Размер этого
файла, а следовательно, и максимальный объем виртуальной памяти конкретной
ЭВМ зависят от общего объема жесткого диска и типа установленной операционной
системы.
Соответствие между виртуальными и физическими памятями устанавливается
страничной таблицей, причем физические страницы могут содержаться в текущий
момент времени как в ОП, так и в ВП.
Упрощенная схема страничной организации памяти изображена на рис. 9.12.
Страничная таблица для каждой программы формируется операционной сис-
темой в процессе распределения памяти и перерабатывается ею каждый раз, когда
в распределении памяти производятся изменения. Процедура обращения
к памяти
состоит в том, что номер виртуальной страницы извлекается из адреса и использу-
ется для входа в страничную таблицу, которая указывает номер соответствующей
физической страницы. Этот номер вместе с номером байта, взятым непосредствен-
но из виртуального адреса, представляет собой физический адрес, по которому про-
исходит обращение к ОП. Процесс формирования
физического адреса можно изо-