Как модуль управления памятью преобразует логические адреса в физические адреса?
1. Таблица страниц. MMU поддерживает таблицу страниц, которая представляет собой структуру данных, сопоставляющую логические адреса с физическими адресами. Таблица страниц организована на несколько уровней, каждый из которых представляет отдельную часть логического адреса.
2. Разделение адреса. Когда процесс ссылается на логический адрес, MMU разбивает адрес на несколько частей:
- Номер страницы:это старшие биты логического адреса, идентифицирующие конкретную страницу в памяти.
- Смещение страницы:это младшие биты логического адреса, определяющие конкретное местоположение на странице.
3. Поиск в таблице страниц:MMU использует номер страницы для поиска соответствующей записи в таблице страниц. Каждая запись в таблице страниц содержит физический адрес соответствующей страницы.
4. Трансляция адресов:если запись в таблице страниц действительна (т. е. страница находится в памяти), MMU объединяет физический адрес страницы со смещением страницы для получения окончательного физического адреса. Этот физический адрес затем можно использовать для доступа к данным или инструкциям в памяти.
5. Ошибки страниц:если запись в таблице страниц недействительна (т. е. страница отсутствует в памяти), MMU генерирует исключение ошибки страницы. Затем операционная система обрабатывает ошибку страницы, перенося требуемую страницу в память из вторичного хранилища (например, диска) и обновляя таблицу страниц.
Этот процесс трансляции адресов позволяет MMU эффективно управлять памятью и предоставлять процессам возможности виртуальной памяти, позволяя им получать доступ к памяти за пределами выделенного им физического адресного пространства.