Как блок управления памятью отображает виртуальный адрес на физический адрес
Если компьютерная система имеет основную память 1mb
и виртуальное адресное пространство 16mb
в то время как размер блока диска 1kb
, Как блок управления памятью отображает виртуальный адрес на физический адрес?
2 ответа
Я предполагаю, что вы намереваетесь спросить "как 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 будет заменен на диске.
Эти выгруженные страницы будут возвращаться в основную память операционной системой только в том случае, если программе нужны данные, а одну из страниц, ранее присутствовавших в основной памяти, необходимо заменить, чтобы освободить место. Алгоритмы определения того, какую страницу нужно поменять, - это еще одна тема (например, LRU, алгоритм синхронизации).
В действительности система памяти является более сложной, чем этот сценарий, поскольку современные операционные системы допускают несколько процессов, выполняющихся в системе, а сама ОС использует другие методы (например, устанавливают пороговое значение для переключения страниц), чтобы сделать систему памяти более эффективной.
Управление памятью с использованием преобразования логических адресов в физические адреса.
Он выполняет этот перевод, используя PAGE TABLE, определенный операционной системой. Формат таблиц страниц варьируется в зависимости от системы, и для их определения используются как минимум три основных подхода. Обычно процессор имеет один или несколько привилегированных регистров, которые указывают на таблицы страниц для текущего процесса. Эти регистры обычно загружаются как часть изменения контекста, которое приводит к новому процессу.
В простом случае таблица страниц - это просто массив, содержащий отображение между логическим и физическим адресом. Некоторое количество старших битов адреса служат индексом в таблице страниц. Соответствующая запись таблицы страниц определяет физический фрейм страницы, на который отображается логическая страница.
Некоторое количество младших битов адреса сохраняется в качестве смещения во фрейме физической страницы.
Операционная система поддерживает таблицы страниц в том формате, в котором MMU ожидает их появления. MMU выполняет трансляцию между логическими адресами физических адресов прозрачно.
Размер блока диска не имеет значения для этого перевода.