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

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

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

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

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

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

Microsoft Windows и Windows NT

Область жестого диска, предназначенная для свопинга располагается в отдельном файле (Microsoft Windows, Windows NT), который называется файл подкачки.

Файл подкачки (swap-файл, рaging file) – это область на жестком диске, которую операционная система использует в качестве виртуальной памяти. Физически файл подкачки – это специальный файл, размещающийся на одном или нескольких дисках компьютера и предназначенный для (временного) хранения страниц виртуальной памяти, который располагается в корне жесткого диска с установленной системой и называется pagefile.sys.

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

Но, установить действительно необходимый объем swap-файла, можно лишь при помощи его мониторинга.

Файл подкачки может быть создан в одном из двух вариантов: постоянного (фиксированного) размера и динамически изменяемого размера.

По умолчанию, Windows создает динамически изменяемый файл подкачки, но у этого подхода есть несколько существенных недостатков. А именно: при увеличении файла подкачки операционная система «дописывает» его на свободные места, что приводит к фрагментации диска и фрагментации самого swap-файла, а это уж совсем нежелательно, поскольку доступ к нему должен осуществляться с максимально возможной скоростью.

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

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;
  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
  • Виртуальная память на ПК может быть организована одним из следующих способов:

  • Страничная организация виртуальной памяти.
  • Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого диска в оперативную память. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются той части, которая отвечает за использование файла подкачки).

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

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

    Менеджер
    Сафронова Екатерина
    Ведущий специалист
    +7 (495) 147-08-07
    Консультация специалиста
    Наш менеджер перезвонит вам в течение 5 минут
    Менеджер
    Хорошова Анастасия
    Эксперт
    +7 (495) 147-08-07
    Оставить заявку
    Наш специалист свяжется с вами в течение 5 минут
    Оставить отзыв
    Ваш отзыв опубликуется после модерации