adblock check

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

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

Nk_Name Nk_Name
Серебряный комментатор
6 комментариев по лайкам по дате
Оставьте комментарий...
Оставьте комментарий...
iriver7777 10 лет

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


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

В настоящее время технология виртуальной памяти имеет аппаратную поддержку на всех современных процессорах.

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

Также существует термин swap, означающий виртуальную память (точнее способ её представления) или файл подкачки.

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

Для наиболее эффективной организации свопинга и повышения производительности используют следующие методики:
1. Под swap-файл выделяется место, объем которого равно объёму оперативной памяти, умноженному на 1, на 2 или на 3.
2. Если в компьютере или ноутбуке несколько жестких дисков, то располагать файл подкачки нужно на менее нагруженном из них.
3. Располагать файл подкачки следует на диске с наибольшими скоростями чтения/записи и как можно ближе к началу диска.
4. При работе в Windows swap-файл лучше размещать на разделе с файловой системой FAT32, при этом не забывать, что она менее надежна, чем NTFS.
5. При наличии достаточно большого объема оперативной памяти (более 2Гб) на малонагруженной системе можно вообще отказаться от файла подкачки.Страничная организация виртуальной памяти
При страничной организации виртуальной памяти оперативная память делится на области памяти фиксированной длины, называемые страницами памяти. Страница является минимальное единицей выделяемой памяти.Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого диска в оперативную память.
В семействе операционных систем Microsoft Windows используется файл pagefile.sys для хранения вытесненных из оперативной памяти страниц. Место под файл должно быть выделено заранее, размер можно указать самостоятельно или же доверить выбор операционной системе.Сегментная организация виртуальной памяти
Еще один механизм реализации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты, что позволяет, например, разбить данные процесса на логические блоки.
При загрузке процесса часть сегментов помещается в оперативную память, а часть размещается на диске. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация.Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.

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

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.
SkiFcha_LoL 10 лет
сам писал?)
iriver7777 10 лет
Просто нашёл человеку — инфу )) Хотя сам знаю эти вещи наизусть, писать — долго… Позаимствовал с форума, где общаюсь с ребятами.
iriver7777 10 лет
В смартфонах принцип такой же, как на компе.
TimAxe 10 лет
Виртуальная память — это сочетание памяти ОЗУ и временного хранилища на жестком диске
Superphone 10 лет
Не знаю