Системное и прикладное программное обеспечение. Абрахин С.И - 37 стр.

UptoLike

Составители: 

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