logo
Методичка

Глава 5. Страничная организация памяти в процессорах ia‑32

Основной особенностью процессоров семейства IA-32 является поддержка страничной организации памяти. При ее использовании операционная система может предоставить в распоряжение прикладных программ такой объем оперативной памяти, какой им требуется для работы, независимо от объема физической памяти, установленной в компьютере. При этом суммарный объем памяти, используемый всеми приложениями, может превышать объем физической памяти компьютера. Это стало возможным благодаря тому, что при выполнении программы в физической памяти компьютера находятся только те участки программы, к которым процессор обращается в текущий момент времени. Все остальные участки программы хранятся на диске и загружаются в физическую память компьютера по мере того, как в них возникает потребность. Вся область памяти, используемой программой, разбивается на участки небольшой длины (как правило, 4 Кбайт каждый), называемых страницами. Во время выполнения программы процессор выгружает из памяти на диск те страницы, к которым долго не было обращения и загружает на их место другие страницы, к которым нужно немедленно получить доступ.

Для отслеживания всех страниц памяти, используемых программами, в операционной системе создается специальный набор таблиц, состоящий из страничного каталога и ряда таблиц страниц. При обращении в программе к участку памяти, его линейный адрес автоматически преобразовывается процессором в физический адрес. Этот процесс преобразования называется страничной переадресацией. Если страница, к которой происходит обращение, не находится в памяти, в процессоре возникает специальное прерывание из-за отсутствия страницы (page fault). Во время обработки данного прерывания операционная система находит нужную страницу на диске, загружает ее в свободный участок памяти, изменяет соответствующим образом содержимое таблицы страниц и возобновляет выполнение программы. Страничная переадресация и прерывание из-за отсутствия страницы происходят совершенно не заметно для прикладной программы.