В информатике подкачка памяти - это метод управления виртуальной памятью , при котором инструкции машинного процесса работают с логическими адресами, которые MMU (обычно часть процессора ) преобразует в физические адреса (фактическое расположение в ОЗУ ).
Это создает виртуальное адресное пространство , которое начинается с нуля для каждого процесса, устраняя необходимость в передислокации в машинный код , используемый . Во время преобразования адресное пространство делится на страницы (фреймы) одинакового размера (обычно 4 КиБ ).
Подкачка памяти используется всеми текущими операционными системами.( Linux , Windows NT , FreeBSD , Solaris и т.д.) И является основой для подкачки диска .
Исторически подкачка называлась механизмом распределения памяти, который использовал страницы фиксированного размера, а не сегменты переменной длины. Самые старые реализации не использовали методы виртуальной памяти и не перемещали эти страницы на диск. Однако сегодня такое использование редко.
В то же время в некоторых операционных системах (UNIX) использовалась так называемая техника подкачки. Этот метод переместил весь спящий процесс из ОЗУ во вторичное хранилище и наоборот, также известный как дизайн развертывания / развертывания.
В 1960-х годах, после введения концепции виртуальной (логической) памяти (в двух вариантах: сегментация или просто разбиение на страницы), было лучше использовать меньшую степень детализации, чем весь процесс для хранения неиспользуемых в настоящее время данных, и термин свопинг применялся к перемещать сегменты или страницы между диском и памятью.
Сегодня виртуальная память основана почти исключительно на страницах, сегментация используется довольно редко, а подкачка на внешние носители стала синонимом подкачки.
Также в системах на базе Windows NT выделенное пространство подкачки называется файлом подкачки.
С другой стороны, в архитектуре процессора x86 изначально была реализована сегментация, а позже добавлена поддержка разбивки на страницы.
Благодаря этому они различают три адресных пространства - виртуальное (состоящее из селектора сегмента и смещения в сегменте), которое преобразуется в соответствии с базовым адресом сегмента в так называемый линейный адрес, который затем преобразуется в физический адрес с помощью алгоритма подкачки.
Сегодня сегментация находится в упадке, и различие между виртуальным и линейным пространством размыто, но сегментация все еще используется для определенных операций ( адресное пространство локального потока ).