Я предполагаю, что вы намереваетесь спросить "как MMU отображает виртуальную память в физическую память" (как в описании вашего вопроса).
Для начала, виртуальная память управляется операционными системами. MMU предоставляет только аппаратный механизм, чтобы использовать его в своих интересах.
Операционные системы будут хранить карту virtual_address -> физического_адреса для каждого отдельного процесса.
Например, если программа использует виртуальную страницу [0, 1, 2, 3], операционные системы могут отображать эти страницы на физические страницы как [64, 128, 256, 512].
Поскольку виртуальное адресное пространство больше физического адресного пространства, не вся виртуальная память будет отображаться в физическую память в любой момент, если физическая память не может вместить все из них. Поэтому некоторые данные будут выгружены на диск и, следовательно, не будут присутствовать в физической памяти.
Например, давайте упростим ваш случай, предполагая, что виртуальная память имеет 8 страниц, но физическая память может содержать только 4 страницы данных. Если процесс имеет данные на виртуальной странице [0,1,2,3,4], очевидно, что физическая память не может вместить все 5 страниц. Поэтому одна из виртуальных страниц будет помещена на диск, и отображения памяти системы будут выглядеть примерно так: [0-> 2, 1-> 1, 2-> 3, 4-> 0], и в этом случае виртуальная страница 3 будет заменено на диске.
![enter image description here](https://i.stack.imgur.com/RwPcQ.png)
Эти выгруженные страницы будут возвращаться в основную память ОС только в том случае, если программе нужны данные, и одну из страниц, ранее присутствовавших в основной памяти, необходимо заменить, чтобы освободить место. Другая тема (например, LRU, алгоритм синхронизации) - это алгоритмы, позволяющие определить, какую страницу нужно поменять.
В действительности система памяти более сложна, чем этот сценарий, потому что современные операционные системы допускают несколько процессов, выполняющихся в системе, а сама ОС использует другие методы (например, устанавливают пороговое значение для переключения страниц), чтобы сделать систему памяти более эффективной. .