2

Кажется, что есть два определения виртуальной памяти, и мне интересно, оба ли они описывают одно и то же или два похожих, но разных понятия называются одним и тем же?

Определение 1: средство расширения ОЗУ с использованием вторичного хранилища

«Виртуальная память - это особенность операционной системы (ОС), которая позволяет компьютеру компенсировать нехватку физической памяти» - techtarget

«Виртуальная память - это имитация ОЗУ. Когда вы израсходуете всю свою ОЗУ, ваш компьютер перенесет данные на свободное место на жестком диске». - удалить компьютерную историю

«Виртуальная память представляет собой метод , который позволяет выполнять процессы , которые не являются полностью доступны в памяти» - tutorialspoint

Определение 2: система, к которой обращена память

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

виртуальная память - это то, что отвечает за предоставление программе собственного адресного пространства, поэтому можно предположить, что ее начало находится по адресу 0x00.

Вопрос: я в замешательстве? Как эти определения совместимы?

3 ответа3

2

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

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

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

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

0

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

Второй описывает, как процессор решает, к какой части памяти (обычно фактической физической памяти) обращаться к каждой программе, работающей в системе. Это может быть лучше описано как адресация виртуальной памяти. Таким образом, каждая программа, работающая на машине, может думать, что у нее есть собственный выделенный блок памяти, начиная с адреса 00000, но на самом деле блоки памяти фактически распределяются по физической памяти. Попробуйте поискать адресацию памяти, указатели

0

Они описывают одно и то же. Статья в Википедии - это техническое объяснение. Я думаю, что введение статьи плохо / неловко сформулировано, все же. Основная часть статьи описывает это довольно тщательно.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .