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

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

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

Поскольку процессы как правило используют существенно меньше физической памяти, чем им доступно виртуальной, менеджер памяти откачивает часть страниц на вторичное хранилище. Для откачки страниц как физическая так и виртуальная память делится на части фиксированного размера, называемые страницами (Page). Процессоры х86 делят физическое адресное пространство на страницы размером 5кВ, используя для этого устройство управления памятью MMU (Memory Management Unit). При выполнении процесса в физическую память загружаются лишь используемые страницы, остальные же хранятся во вторичной памяти.

Рисунок 2‑9. Для выделения процессу памяти вирутальная память использует как основную, так и вторичную память (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

Когда процесс обращается по виртуальному адресу, хранящемуся в массовой памяти, менеджер памяти загружает требуемую страницу в основную память. Приложения не должны учитывать откачку/подкачку страниц - этим с аппаратной поддержкой занимается менеджер памяти, и весь процесс прозрачен для приложений. Адресное пространство виртуальной памяти зависит от аппаратной платформы. Так, адресное пространство 32-битных х86 систем составляет 4ГБ.