В чем разница между виртуальной и физической памятью

Обновлено: 03.07.2024

Виртуальная память – это область вторичной памяти компьютерной системы (например, жесткого диска или твердотельного накопителя), которая действует так, как если бы она была частью оперативной или основной памяти системы.

В идеале данные, необходимые для запуска приложений, хранятся в ОЗУ, откуда ЦП может быстро получить к ним доступ. Но при запуске больших приложений или при одновременном запуске многих приложений оперативная память системы может переполниться.

Чтобы обойти эту проблему, некоторые данные, хранящиеся в ОЗУ, которые активно не используются, можно временно переместить в виртуальную память (физически расположенную на жестком диске или другом устройстве хранения). Это освобождает место в ОЗУ, которое затем можно использовать для размещения данных, к которым система должна получить доступ в ближайшее время.

За счет обмена данными между ОЗУ и виртуальной памятью, когда они не нужны, и обратно из виртуальной памяти в ОЗУ, когда они нужны, система может продолжать бесперебойно работать с гораздо меньшим объемом физической памяти, чем в противном случае.

Виртуальная память позволяет системе запускать более крупные приложения или запускать больше приложений одновременно без нехватки оперативной памяти. В частности, система может работать так, как если бы ее общие ресурсы ОЗУ были равны объему физической ОЗУ плюс объем виртуальной ОЗУ.

Зачем нужна виртуальная память?

Виртуальная память была разработана, когда физическая оперативная память была очень дорогой, а стоимость оперативной памяти в пересчете на гигабайт по-прежнему выше, чем у носителей данных, таких как жесткие диски и твердотельные накопители. По этой причине гораздо дешевле использовать комбинацию физической ОЗУ и виртуальной памяти, чем оснащать компьютерную систему большим объемом ОЗУ.

Поскольку использование виртуальной памяти (или увеличение объема виртуальной памяти) не влечет за собой дополнительных финансовых затрат (поскольку при этом используется существующее дисковое пространство), оно позволяет компьютеру использовать больше памяти, чем физически доступно в системе.

Другим ключевым фактором использования виртуальной памяти является то, что все компьютерные системы имеют ограничение (продиктованное аппаратным и программным обеспечением) на объем физической оперативной памяти, которую можно установить. Использование виртуальной памяти позволяет системе продолжать работу за пределами физического объема ОЗУ.

Виртуальная память и физическая память

Поскольку оперативная память дороже виртуальной, может показаться, что при прочих равных условиях компьютеры должны быть оснащены как можно меньшим объемом оперативной памяти и как можно большим объемом виртуальной памяти.

Но на самом деле характеристики виртуальной памяти отличаются от характеристик физической памяти. Основное различие между виртуальной и физической памятью заключается в том, что ОЗУ намного быстрее виртуальной памяти.

Поэтому система с 2 ГБ физической ОЗУ и 2 ГБ виртуальной памяти не будет обеспечивать такую ​​же производительность, как аналогичная система с 4 ГБ физической ОЗУ. Чтобы понять почему, необходимо понять, как работает виртуальная память.

Как работает виртуальная память?

Когда приложение (включая операционную систему) работает, оно сохраняет расположение программных потоков и других данных по виртуальному адресу, в то время как данные фактически хранятся по физическому адресу в ОЗУ. Если позже это пространство ОЗУ понадобится другому процессу более срочно, данные могут быть выгружены из ОЗУ в виртуальную память.

Ответственность за отслеживание всех этих данных при их обмене между физической и виртуальной памятью ложится на диспетчер памяти компьютера. Диспетчер памяти поддерживает таблицу, которая сопоставляет виртуальные адреса, используемые операционной системой и приложениями, с физическими адресами, в которых фактически хранятся данные. в правильное физическое местоположение.

Компьютер может запускать потоки и управлять данными только в ОЗУ, а не в виртуальной памяти. И для подкачки необходимых данных в ОЗУ требуется незначительное количество времени. Следовательно, использование виртуальной памяти связано с падением производительности.

Иными словами, система с 4 ГБ ОЗУ, как правило, обеспечивает более высокую производительность, чем система с 2 ГБ ОЗУ и 2 ГБ виртуальной памяти, из-за падения производительности, вызванного свопингом, и по этой причине говорят, что виртуальная память медленнее, чем оперативная память.

Одна потенциальная проблема с виртуальной памятью заключается в том, что если объем имеющейся оперативной памяти слишком мал по сравнению с объемом виртуальной памяти, система может в конечном итоге тратить большую часть ресурсов ЦП на обмен данными туда и обратно. Тем временем выполнение полезной работы почти останавливается — процесс, известный как пробуксовка.

Чтобы предотвратить перегрузку, обычно необходимо уменьшить количество одновременно запущенных приложений или просто увеличить объем оперативной памяти в системе.

Операционные системы, такие как большинство версий Windows, обычно рекомендуют пользователям не увеличивать виртуальную память больше 1.5-кратный объем физической оперативной памяти. Таким образом, система с 4 ГБ ОЗУ должна иметь виртуальную память не более 6 ГБ.

Чтобы свести к минимуму падение производительности, вызванное переключением между физической и виртуальной памятью, лучше всего использовать самое быстрое устройство хранения данных, подключенное к системе, для размещения виртуальной памяти и размещения области хранения виртуальной памяти на отдельном разделе.

виртуальная память

Виртуальная память может работать совместно с основной памятью компьютера, обеспечивая более быстрые и плавные операции.

Как увеличить виртуальную память в системе

Большинство операционных систем позволяют пользователям увеличивать виртуальную память со страницы конфигурации.

  • В Windows пользователи также могут разрешить системе динамически управлять объемом виртуальной памяти.
  • Аналогичным образом в Mac OS пользователи могут использовать панель настроек для выделения виртуальной памяти.

Типы виртуальной памяти: пейджинг и сегментация

Системная операционная система может управлять виртуальной памятью различными способами, и два наиболее распространенных подхода – разбиение по страницам и сегментация.

Страница виртуальной памяти

В системе, использующей подкачку, ОЗУ делится на несколько блоков, обычно размером 4 КБ, называемых страницами. Затем процессам выделяется ровно столько страниц, сколько необходимо для удовлетворения их требований к памяти. Это означает, что всегда будет теряться небольшой объем памяти, за исключением необычного случая, когда процессу требуется ровно целое число страниц.

Во время обычной работы страницы (т. е. блоки памяти размером 4 КБ) передаются между ОЗУ и файлом подкачки, представляющим виртуальную память.

Сегментация виртуальной памяти

Сегментация — это альтернативный подход к управлению памятью, при котором вместо страниц фиксированного размера процессам выделяются сегменты разной длины, точно соответствующие их требованиям. Это означает, что, в отличие от страничной системы, в сегменте память не тратится впустую.

Сегментация также позволяет разделить приложения на логически независимые адресные пространства, что упрощает их совместное использование и повышает безопасность.

Но проблема с сегментацией заключается в том, что поскольку каждый сегмент имеет разную длину, это может привести к "фрагментации" памяти. Это означает, что при выделении и освобождении сегментов могут остаться разбросанными небольшие фрагменты памяти, которые слишком малы, чтобы быть полезными.

По мере накопления этих небольших фрагментов может выделяться все меньше и меньше сегментов полезного размера. И если ОС начнет использовать эти маленькие сегменты, то придется отслеживать огромное их количество, и каждому процессу потребуется использовать много разных сегментов, что неэффективно и может снизить производительность.

Преимущества и недостатки виртуальной памяти

Несмотря на то, что оперативная память сейчас относительно недорога по сравнению с ее стоимостью, когда виртуальная память была впервые разработана, она по-прежнему чрезвычайно полезна и по-прежнему используется во многих, а может быть, и в большинстве компьютерных систем. Основная проблема с виртуальной памятью связана с производительностью.

Физическая и виртуальная память — это формы памяти (внутреннее хранилище данных). Физическая память существует на микросхемах (оперативная память) и на запоминающих устройствах, таких как жесткие диски. Прежде чем процесс может быть выполнен, он должен сначала загрузиться в физическую память RAM (также называемую основной памятью).

Виртуальная память — это процесс, посредством которого данные (например, программный код) могут быстро обмениваться между местами хранения в физической памяти и оперативной памятью. Быстрый обмен данными является плавным и прозрачным для пользователя. Использование виртуальной памяти позволяет использовать более крупные программы и позволяет этим программам работать быстрее.

В современных операционных системах возможен постоянный обмен данными между жестким диском и оперативной памятью через виртуальную память. Процесс подкачки используется для обмена данными через виртуальную память. Использование виртуальной памяти создает впечатление, что компьютер имеет больший объем ОЗУ, потому что виртуальная память позволяет эмулировать передачу целых блоков данных, обеспечивая плавную и эффективную работу программ. Вместо того, чтобы пытаться поместить данные в часто ограниченную энергозависимую оперативную память, данные фактически записываются на жесткий диск. Соответственно, размер виртуальной памяти ограничен только размером жесткого диска, либо пространством, отведенным под виртуальную память на жестком диске. Когда информация требуется в ОЗУ, система обмена быстро обменивает блоки памяти (также часто называемые страницами памяти) между ОЗУ и жестким диском.

Современные системы виртуальной памяти заменяют более ранние формы физического обмена файлами и фрагментации программ.

В некотором смысле виртуальная память — это специализированный вторичный тип хранилища данных, а часть жесткого диска предназначена для хранения специализированных файлов виртуальной памяти (также называемых страницами). Область жесткого диска, предназначенная для хранения блоков данных, подлежащих обмену через интерфейс виртуальной памяти, называется файлом подкачки. В большинстве операционных систем существует предустановленный размер области файла подкачки на жестком диске, и файлы подкачки могут существовать на нескольких дисках. Однако пользователи большинства современных операционных систем могут изменять размер файла подкачки в соответствии с конкретными требованиями к производительности. Как и в случае с размером файла подкачки, хотя фактический размер страниц задан заранее, современные операционные системы обычно позволяют пользователю изменять размер страницы. Страницы виртуальной памяти имеют размер от тысячи байтов до многих мегабайт.

Использование виртуальной памяти позволяет размещать весь блок данных или программы (например, процесс приложения) в виртуальной памяти, в то время как в физической памяти находится только часть исполняемого кода. Соответственно, использование виртуальной памяти позволяет операционным системам запускать множество программ и, таким образом, повышает степень многозадачности в операционной системе.

Интеграция виртуальной памяти осуществляется либо с помощью процесса, называемого сегментацией по требованию, либо с помощью другого процесса, называемого пейджингом по требованию. Пейджинг по требованию более распространен, потому что он проще по дизайну. Процессы виртуальной памяти с подкачкой по запросу не передают данные с диска в ОЗУ, пока программа не вызовет страницу. Существуют также упреждающие процессы подкачки, используемые операционными системами, которые пытаются читать вперед и выполнять передачу данных до того, как данные действительно потребуются в ОЗУ. После выгрузки данных процессы подкачки отслеживают использование памяти и постоянно вызывают данные между ОЗУ и жестким диском. Состояния страниц (действительные или недействительные, доступные или недоступные для ЦП) регистрируются в таблице виртуальных страниц. Когда приложения пытаются получить доступ к недопустимым страницам, диспетчер виртуальной памяти, который инициирует подкачку памяти, перехватывает сообщение об ошибке страницы. Быстрое преобразование виртуальных адресов в реальный физический адрес осуществляется с помощью процесса, называемого сопоставлением. Отображение является важной концепцией процесса виртуальной памяти. Отображение виртуальной памяти работает путем связывания реальных аппаратных адресов (адреса физического хранилища) для блока или страницы хранимых данных с виртуальным адресом, поддерживаемым процессом виртуальной памяти. Реестр виртуальных адресов позволяет осуществлять выборочную и рандомизированную трансляцию данных с дисков для последовательного чтения. По сути, процессы виртуальной памяти предоставляют альтернативные адреса памяти для данных, и программы могут быстро использовать данные, используя эти виртуальные адреса вместо физического адреса страницы данных.

Виртуальная память является частью многих операционных систем, включая Windows, но не является функцией DOS. В дополнение к увеличению скорости выполнения и операционного размера программ (строк кода) использование систем виртуальной памяти дает ценный экономический эффект. Память на жестком диске в настоящее время намного дешевле, чем оперативная память. Соответственно, использование виртуальной памяти позволяет проектировать высокопроизводительные вычислительные системы при относительно низких затратах.

Несмотря на то, что подкачки страниц данных (определенной длины данных или тактовых импульсов данных) посредством подкачки виртуальной памяти между жестким диском и оперативной памятью выполняются очень быстро, чрезмерная зависимость от подкачки виртуальной памяти может снизить общую производительность системы. Если объем жесткого диска, выделенного для хранения файлов подкачки, недостаточен для удовлетворения требований системы, которая в значительной степени зависит от обмена данными через виртуальную память, пользователи могут получать сообщения «НЕДОСТАТОЧНО ПАМЯТИ» и ошибки, даже хотя у них много неиспользуемого места на жестком диске.

К началу 2003 г. персональные компьютеры с объемом ОЗУ 1024 МБ (1 мегабайт = 1 000 000 байт) были широко доступны в Соединенных Штатах, а персональные компьютеры многих марок имели емкость жесткого диска 60 ГБ (1 гигабайт равен 1 миллиарду байтов). байт). Относительные пределы как емкости жесткого диска, так и емкости оперативной памяти неуклонно улучшаются с развитием технологии микрочипов.

Физическая память и виртуальная память — это две формы памяти, используемые для хранения данных на компьютере. Физическая память относится к микросхемам, таким как оперативная память (ОЗУ) и запоминающим устройствам, таким как жесткие диски, которые используются для хранения данных. Виртуальная память — это пространство памяти, созданное операционной системой, когда на компьютере недостаточно физической памяти для выполнения программы. Виртуальная память создается путем объединения оперативной памяти с пространством на жестком диске. Виртуальная память позволяет быстрее выполнять большие программы, когда оперативной памяти не хватает.

Физическая память

Как упоминалось ранее, под физической памятью понимается оперативная память и жесткие диски компьютера, которые используются для хранения данных.В компьютере операционная система, прикладные программы и используемые в данный момент данные хранятся в оперативной памяти, чтобы процессор мог быстро получить к ним доступ. К оперативной памяти можно было получить доступ быстрее, чем к другим устройствам хранения, таким как жесткий диск и CD-ROM. Но данные в оперативной памяти существуют только во время работы компьютера. При отключении питания все данные в ОЗУ теряются, а операционная система и другие данные снова загружаются в ОЗУ с жесткого диска при включении компьютера. Жесткий диск — это энергонезависимая память (память, в которой хранятся данные, даже если на нее не подается питание), которая используется для хранения данных в компьютере. Он состоит из круглых дисков, называемых пластинами, на которых хранятся магнитные данные. Данные записываются на пластины и считываются с них с помощью головок чтения/записи.

Виртуальная память

Виртуальная память используется, когда компьютеру не хватает места в ОЗУ для выполнения программы. Виртуальная память объединяет пространство оперативной памяти с пространством на жестком диске. Когда на компьютере недостаточно места в ОЗУ для выполнения программы, виртуальная память передает данные из ОЗУ в файл подкачки, что освобождает место в ОЗУ. Часть жесткого диска используется для хранения файла подкачки. Этот процесс передачи выполняется настолько быстро, что пользователь не чувствует разницы. Виртуальная память может содержать целый блок данных, в то время как часть, которая выполняется в данный момент, находится в оперативной памяти. Поэтому виртуальная память позволяет операционной системе запускать несколько программ одновременно, тем самым повышая степень многозадачности. Увеличивая размер программ, которые могут выполняться, виртуальная память обеспечивает экономическую выгоду, поскольку память на жестком диске дешевле, чем ОЗУ.

В чем разница между физической и виртуальной памятью

В то время как под физической памятью понимаются физические устройства, на которых хранятся данные в компьютере, такие как ОЗУ и жесткие диски, виртуальная память объединяет пространство ОЗУ с пространством на жестком диске для хранения данных в ОЗУ, когда места в ОЗУ недостаточно. . Часть жесткого диска используется для хранения файлов подкачки, которые используются виртуальной памятью для хранения данных, передаваемых из ОЗУ. Несмотря на то, что подкачка данных между файлами подкачки на жестком диске и в ОЗУ (через виртуальную память) происходит очень быстро, слишком большая подкачка может снизить общую производительность системы.

Читайте также: