КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Вопрос 22. Концепция виртуальной памяти
Термин виртуальная память ассоциируется с возможностью адресовать пространство памяти, большее, чем емкость основной (реальной, физической) памяти конкретного процессора. Концепция виртуальной памяти впервые была реализована в компьютерной системе Atlas, созданной в Манчестерском университете в Англии в 1960 г. При выполнении программы предполагается, что все команды программы и данные содержатся в основной памяти, так как обращение к не существующим в основной памяти командам и данным невозможно. Следовательно, общее пространство памяти, к которому может обращаться программа, ограничивается емкостью основной памяти, т. е. аппаратными средствами. Однако было бы удобнее составлять программу, не учитывая емкость основной памяти. Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается выполняющаяся программа (задача, процесс), отделяются от адресов, реально существующих в основной памяти. Те адреса, на которые делает ссылки выполняющаяся программа, называются виртуальными (логическими) адресами, а те адреса, которые существуют в основной памяти, называются реальными или физическими. Диапазон виртуальных адресов, к которым может обращаться выполняющаяся программа, называется пространством виртуальных адресов этой программы. Диапазон физических адресов, реально существующих в конкретном процессоре, называется пространством физических адресов этого процессора. Для программы создается единое виртуальное адресное пространство – виртуальная (логическая) память, в которой физическая ограниченность емкости основной памяти скрыта от нее, т. е. создается видимость произвольной адресации с отсутствием ограничения на емкость используемой памяти, что значительно облегчает программирование. Несмотря на то, что программы обращаются к виртуальной памяти (виртуальным адресам), процессор в действительности должен работать с реальной памятью. Поэтому во время выполнения программы виртуальные адреса необходимо преобразовывать в реальные (физические), причем это нужно делать быстро, так как в противном случае производительность системы будет снижаться до неприемлемых уровней и тем самым практически сведутся на нет те преимущества, которые призвана обеспечить концепция виртуальной памяти. Соответствие между физическими и виртуальными адресами устанавливается совместно аппаратными средствами и операционной системой, причем это делается прозрачно (невидимо) для программиста. Для установления соответствия между виртуальными и физическими адресами на практике используется механизм динамического преобразования адресов DAT, который обеспечивает преобразование адресов во время выполнения программы. Этот механизм обладает следующим свойством (рис. 26): смежные адреса виртуального адресного пространства не обязательно будут смежными в физической памяти. Это свойство называют искусственной смежностью. Оно позволяет устранять фрагментацию физической памяти. Таким образом, программист освобождается от необходимости учитывать размещение своих программ и данных в физической памяти. Он получает возможность писать программы наиболее естественным образом, прорабатывая только детали алгоритма и структуры программы и игнорируя конкретные особенности структуры аппаратных средств, служащих для выполнения программы. При этом микропроцессорная система может рассматриваться, как логическое средство, обеспечивающее реализацию необходимых алгоритмов, а не как физическая система с уникальными характеристиками, часть которых может лишь затруднить процесс проектирования программ.
Концепция виртуальной памяти требует применения двухуровневой схемы построения памяти (рис. 27). Первый уровень – это основная память, в которой находятся выполняемые программы и в которой должны размещаться данные, чтобы программа во время работы могла к ним обращаться. С точки зрения виртуальной памяти это реальная или физическая память. Второй уровень – это внешняя память большой емкости, способная хранить программы и данные, которые не могут все сразу уместиться в основной (реальной, физической) памяти ограниченной емкости. С точки зрения виртуальной памяти это вспомогательная память.
Только небольшая часть процедур и данных каждой выполняемой программы, как правило, размещается в первичной памяти одновременно. Остальная часть хранится на устройствах внешней памяти с быстрым прямым доступом. Таким образом, виртуальное адресное пространство размещается во внешней памяти, например на магнитных дисках. Часть этого пространства, необходимая для выполнения программ в данный момент, копируется в основную память. Виртуальная память – это способ организации основной памяти микропроцессорной системы большой емкости с помощью внешней памяти или метод расширения адресного пространства основной памяти за счет ее совместного использования с внешней памятью, при котором достигается гибкое динамическое распределение памяти, устраняется ее фрагментация и создаются значительные удобства для работы программистов. Это удается достигнуть без заметного снижения производительности системы ценой усложнения аппаратных средств и операционной системы и процессов их функционирования. Принцип виртуальной памяти предполагает, что пользователь при подготовке своей программы имеет дело не с физической основной памятью, действительно (реально) работающей в составе микропроцессорной системы, а с виртуальной (т. е. кажущейся) одноуровневой памятью, объем которой равен всему адресному пространству, определяемому принятым в процессоре способом адресации памяти (размером адресных полей в форматах команд и адресных регистров). Например, в 32-разрядных процессора фирмы Intel размер виртуального адресного пространства для одной задачи составляет 64 Тбайт.
Дата добавления: 2014-01-13; Просмотров: 1317; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |