Карты памяти позволяют «размывать» страницы в нескольких процессах, чтобы несколько процессов могли получить к ним доступ. Объясните, как операционная система может справиться с этим с помощью подкачки страниц?
ЦП имеет блок управления памятью. Он сопоставляет адрес виртуальной памяти с адресами физической памяти. Это делается путем поиска сопоставлений в таблице. Эти записи кэшируются в резервном буфере перевода (TLB). Каждый процесс имеет свое собственное отображение.
Если два процесса совместно используют некоторый объем физической памяти, то ОС будет отображать часть виртуальной памяти процесса А на эту физическую память и отображать часть виртуальной памяти процесса Б на эту же физическую память. Они не обязательно должны находиться по одному и тому же виртуальному адресу в двух процессах.
Виртуальной памяти не существует, поэтому ее называют виртуальной. Виртуальная память — это просто адреса памяти (32- или 64-битные числа ), которые процесс видит и использует, и МОЖЕТ указывать на реальную аппаратную память.
Аппаратная память, на которую он указывает, может уже использоваться другим процессом, поэтому таким образом возможно совместное использование памяти между процессами, и это делается часто.
Существует также механизм, который может обнаруживать доступ процесса к определенной области виртуальной памяти, что может «делать что-то» прямо перед тем, как вы действительно получите доступ к адресу. Например, он может сопоставить -в некоторой аппаратной памяти с этим местом или убить ваш процесс за плохое поведение.
Все это делается с помощью страниц, блоков адресного пространства, которые имеют предопределенные функции и размер. Размер блока -часто фиксирован и может составлять от 1 до 16 килобайт (в зависимости от процессора ).