Предназначение и организация виртуальной памяти. Сегментно-страничная организация. MMU и TLB
Виртуальная память
Виртуальная память — это механизм управления памятью, позволяющий каждому процессу работать в собственном непрерывном адресном пространстве и выполнять программы, требующие больше памяти, чем физически установлено в компьютере. Для этого часть данных может временно храниться на внешнем носителе (файл подкачки на диске).
Процесс работает не с физическими, а с виртуальными адресами. Преобразование виртуальных адресов в физические выполняется аппаратным устройством MMU (Memory Management Unit).
Страничная организация
При страничной организации виртуальное и физическое адресные пространства разбиваются на страницы фиксированного размера.
Виртуальный адрес состоит из:
- номера виртуальной страницы;
- смещения внутри страницы.
MMU заменяет номер виртуальной страницы на номер соответствующей физической страницы, при этом смещение остается неизменным.
Если нужная страница отсутствует в оперативной памяти, возникает страничное прерывание (Page Fault), после чего операционная система загружает страницу с диска.
Сегментная организация
При сегментной организации виртуальная память делится на сегменты произвольного размера (например, код программы, стек, данные).
Для каждого сегмента задаются:
- размер;
- адрес размещения;
- права доступа.
Виртуальный адрес состоит из номера сегмента и смещения внутри сегмента.
Недостатком сегментной организации является внешняя фрагментация памяти.
Сегментно-страничная организация
Во многих системах используется комбинация обоих подходов:

Сначала выбирается сегмент, затем внутри него выполняется страничная адресация.
MMU (Memory Management Unit)
MMU — аппаратный блок управления памятью, расположенный между процессором и оперативной памятью.
Основные функции MMU:
- преобразование виртуальных адресов в физические;
- проверка прав доступа;
- поддержка виртуальной памяти;
- взаимодействие с таблицами страниц.
Информация о делении на страницы хранится в Page Table (структура в RAM). В таблице хранится вирт. номер и физ. номер, который ему соотв.
TLB (Translation Lookaside Buffer)
TLB — специальный кэш преобразований виртуальных адресов в физические.
TLB организован как ассоциативная память и хранит наиболее часто используемые записи таблицы страниц.
Алгоритм работы:
- Процессор формирует виртуальный адрес.
- MMU ищет соответствие в TLB.
- Если запись найдена (TLB hit), физический адрес получается сразу.
- Если записи нет (TLB miss), выполняется обращение к таблице страниц в оперативной памяти.
- Найденная запись заносится в TLB.
Использование TLB значительно уменьшает число обращений к таблицам страниц и ускоряет трансляцию адресов.