Лабораторная работа №4. "Изучение функций управления виртуальной памятью"
Теоретическое описание Описание лабораторной работы |
Теоретическое описание Виртуальная память
Термин "виртуальная память" обычно ассоциируется с возможностью адресовать пространство, гораздо большее, чем емкость реальной (физической) памяти конкретной ЭВМ. Существуют два наиболее общих способа реализации виртуальной памяти - страничная и сегментная. Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается выполняющийся процесс, отделяются от адресов, реально существующих в оперативной памяти. Те адреса, на которые делает ссылки выполняющийся процесс, называются виртуальными адресами, а те адреса, которые существуют в первичной памяти, называются реальными (физическими) адресами. Диапазон виртуальных адресов, к которым может обращаться выполняющийся процесс, называется виртуальным адресным пространством V этого процесса. Диапазон реальных адресов, существующих в конкретной ЭВМ, называется реальным (физическим) адресным пространством R этой машины.
Несмотря на то, что процессы обращаются только к виртуальным адресам, в действительности они должны работать с реальной памятью. Таким образом, во время выполнения процесса виртуальные адреса необходимо преобразовывать в физические, причем это преобразование нужно выполнять быстро, иначе производительность ЭВМ будет снижаться до неприемлемых уровней и тем самым практически сведутся на нет преимущества, которые должна обеспечить концепция виртуальной памяти.
Для установления соответствия между виртуальными и физическими адресами наиболее часто используется механизм динамического преобразования адресов. Этот механизм обеспечивает преобразование виртуальных адресов в физические во время выполнения процесса. При таком преобразовании смежные адреса виртуального адресного пространства не обязательно будут смежными в физической памяти. Таким образом, программист освобождается от необходимости учитывать размещение своих процедур и данных в оперативной памяти.
Так как пространство V всегда будет больше, чем пространство R, и если операционная система работает в многозадачном режиме, то необходимо обеспечить средства хранения программ и данных в большой вспомогательной памяти. Такая необходимость следует из того, что ресурсы физической памяти совместно используются многими процессами, т.е., становятся разделяемыми. Обычно эта задача решается с помощью двухуровневой схемы построения памяти, показанной на рис. 1. Первый уровень представляет собой физическую память, в которой находятся выполняемые процессы. В этой же памяти должны размещаться данные, к которым обращается выполняющийся процесс. Второй уровень - это внешняя память большой емкости, способная хранить программы и данные, которые не могут все сразу разместиться в первичной памяти. Память этого уровня называется внешней, или вторичной.
Виртуальная память в современных операционных системах, в том числе и в ОС Windows, создается на дисковых устройствах и является расширением логического и физического адресных пространств. С точки зрения программы, виртуальная память является непрерывным адресным пространством, объем которого ограничен только возможностями устройств внешней памяти (дисков), имеющихся в конфигурации компьютера. Такая память может восприниматься программой как непрерывный участок памяти с прямым доступом, что позволяет выполнять обращение к ней как к обычному массиву. Это в значительной степени упрощает программирование задач, обрабатывающих большие объемы информации (видео файлы, базы данных и т. п.).
Рис 1. Двухуровневая организация виртуальной памяти.
