4 ответов:
есть отличная эксплантация виртуальной памяти на суперпользователя.
проще говоря, виртуальная память представляет собой комбинацию оперативной памяти и дискового пространства, которое могут использовать запущенные процессы.
пространство подкачки-это часть виртуальной памяти на жестком диске, используемая при заполнении ОЗУ.
Что касается того, почему 32-битный процессор ограничен 4 ГБ виртуальной памяти, он адресован хорошо здесь:
по определению, 32-разрядный процессор использует 32 бита для ссылки на местоположение каждый байт памяти. 2^32 = 4.2 миллиард, что означает адрес памяти это 32 бит может относиться только к 4,2 миллиарда уникальных локаций (т. е. 4 ГБ).
существует некоторая путаница в отношении термина виртуальная память, и это на самом деле относится к следующим двум очень разным понятиям
- использование дисковых страниц для расширения концептуального объема физической памяти компьютера-правильный термин для этого на самом деле пейджинговая
- абстракция, используемая различными ОС / процессорами для создания иллюзии каждого процесса, работающего в отдельном непрерывном адресном пространстве.
пространство подкачки, OTOH, is имя части диска, используемой для хранения дополнительных страниц ОЗУ, когда он не используется.
важным осознанием является то, что первое прозрачно возможно благодаря аппаратной и операционной поддержке последнего.
чтобы лучше понять все это, вы должны рассмотреть, как "Виртуальная память" (как в определении 2) поддерживается процессором и ОС.
предположим, что у вас есть 32-разрядный указатель (64-разрядные точки похожи, но используют немного разные механизмы.) После включения" виртуальной памяти " процессор считает, что этот указатель состоит из трех частей.
- самые высокие 10 бит-это Запись В Каталоге Страницы
- следующие 10 бит-это Запись В Таблице
- последние 12 бит составляют Страница Смещение
теперь, когда процессор пытается получить доступ к содержимому указателя, он сначала обращается к
IMHO ужасно обманчиво использовать концепцию пространства подкачки как эквивалент виртуальной памяти. ВМ-это понятие гораздо более общее, чем подкачки. Помимо прочего, VM позволяет процессам ссылаться на виртуальные адреса во время выполнения, которые преобразуются в физические адреса с поддержкой аппаратных средств и таблиц страниц. Таким образом, процессы не заботятся о том, сколько физической памяти имеет система, или где команда или данные фактически находятся в физической памяти иерархия. VM разрешает это сопоставление. Ссылочный элемент (инструкция или данные) может быть резидентным в L1, или L2, или ОЗУ, или, наконец, на диске, и в этом случае он загружается в основную память.
пространство подкачки это просто место во вторичной памяти, где хранятся страницы, когда они неактивны. Если ОЗУ недостаточно, ОС может принять решение о замене страниц процесса, чтобы освободить место для других страниц процесса. Процессор никогда не выполняет инструкцию или чтение/запись данных непосредственно из swap пространство.
обратите внимание, что можно было бы иметь файл подкачки в системе с не ВМ. То есть процессы, которые непосредственно обращаются к физическим адресам, все еще могут иметь части его диск.
хотя нить довольно старая и уже ответили. Тем не менее хотел бы поделиться этой ссылкой, так как это самое простое объяснение, которое я нашел до сих пор. Ниже ссылка имеет диаграммы для лучшей визуализации.
ключевое отличие: Виртуальная память-это абстракция основной памяти. Он расширяет доступную память компьютера, сохраняя неактивные части содержимого ОЗУ на диске. Всякий раз, когда требуется содержимое, он возвращает его обратно в оперативную память. Менять памяти или пространства подкачки, это часть жесткого диска, который используется для виртуальной памяти. Таким образом, оба взаимозаменяемы.
Виртуальная память тихо отличается от физической памяти. Программисты получают прямой доступ к виртуальной памяти, а не физической памяти. Виртуальная память-это абстракция основной памяти. Он используется для скрытия информации из реальной физической памяти системы. Он расширяет доступную память компьютера путем хранить неактивное части содержимого ОЗУ на диске. Когда требуется содержимое, он возвращает его обратно в оперативную память. Виртуальная память создает иллюзию целого адресного пространства с адресами, начинающимися с нуля. Главным образом предпочтено для своей характеристики оптимизирования которой она уменьшает требования к космоса. Он состоит из оперативной памяти и дискового пространства.
память подкачки обычно называется пространством подкачки. Пространство подкачки относится к части виртуальной памяти, которая зарезервирована как временная место хранения. Пространство подкачки используется, когда доступная оперативная память не в состоянии удовлетворить требования памяти системы. Например, в системе памяти Linux ядро находит каждую страницу в физической памяти или в пространстве подкачки. Ядро также поддерживает таблицу, в которой хранится информация о замененных страницах и страницах в физической памяти. Страницы, которые не были доступны в течение длительного времени, отправляются в область пространства подкачки. Этот процесс называется заменой. В если требуется одна и та же страница, она заменяется в физической памяти путем замены другой страницы. Таким образом, можно сделать вывод, что своп-память и виртуальная память взаимосвязаны, поскольку своп-память используется для техники виртуальной памяти.
Comments