Общие сведения о картах памяти

Карты памяти позволяют «размывать» страницы в нескольких процессах, чтобы несколько процессов могли получить к ним доступ. Объясните, как операционная система может справиться с этим с помощью подкачки страниц?

0
15.09.2018, 22:18
2 ответа

ЦП имеет блок управления памятью. Он сопоставляет адрес виртуальной памяти с адресами физической памяти. Это делается путем поиска сопоставлений в таблице. Эти записи кэшируются в резервном буфере перевода (TLB). Каждый процесс имеет свое собственное отображение.

Если два процесса совместно используют некоторый объем физической памяти, то ОС будет отображать часть виртуальной памяти процесса А на эту физическую память и отображать часть виртуальной памяти процесса Б на эту же физическую память. Они не обязательно должны находиться по одному и тому же виртуальному адресу в двух процессах.

2
28.01.2020, 02:31

Виртуальной памяти не существует, поэтому ее называют виртуальной. Виртуальная память — это просто адреса памяти (32- или 64-битные числа ), которые процесс видит и использует, и МОЖЕТ указывать на реальную аппаратную память.

Аппаратная память, на которую он указывает, может уже использоваться другим процессом, поэтому таким образом возможно совместное использование памяти между процессами, и это делается часто.

Существует также механизм, который может обнаруживать доступ процесса к определенной области виртуальной памяти, что может «делать что-то» прямо перед тем, как вы действительно получите доступ к адресу. Например, он может сопоставить -в некоторой аппаратной памяти с этим местом или убить ваш процесс за плохое поведение.

Все это делается с помощью страниц, блоков адресного пространства, которые имеют предопределенные функции и размер. Размер блока -часто фиксирован и может составлять от 1 до 16 килобайт (в зависимости от процессора ).

0
28.01.2020, 02:31

Теги

Похожие вопросы