Операционные системы. Учебное пособие. Марапулец Ю.В. - 105 стр.

UptoLike

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

Для каждого процесса микропроцессор хранит в регистре CR3 (r) старшие 20 бит физи-
ческого адреса таблицы каталога таблиц страниц:
rrrr-rrrr-rrrr-rrrr-rrrr
Начальный физический адрес каталога таблиц страниц определяется как:
rrrr-rrrr-rrrr-rrrr-rrrr-0000-0000-0000
Необходимо запомнить, что каждая страница имеет размер 4 КБ и начинается с адреса, у
которого 12 младших бит нулевые. Сначала микропроцессор получает физический ад-
рес:
rrrr-rrrr-rrrr-rrrr-rrrr-dddd-dddd-dd00
По этому адресу содержится другое 20-разрядное значение (t-table):
tttt-tttt-tttt-tttt-tttt
соответствующее начальному физическому адресу таблицы страниц:
tttt-tttt-tttt-tttt-tttt-0000-0000-0000
Затем, микропроцессор осуществляет доступ по физическому адресу:
tttt-tttt-tttt-tttt-tttt-pppp-pppp-pp00
Здесь хранится 20-битная величина, являющаяся основой для физического адреса начала
страницы памяти (f-page frame):
ffff-ffff-ffff-ffff-ffff
Результирующий 32-разрядный физический адрес получается в результате комбиниро-
вания основы физического адреса страницы и 12-разрядного смещения виртуального
адреса:
ffff-ffff-ffff-ffff-ffff-oooo-oooo-oooo
Это и есть результирующий физический адрес.
Преимущества разделения памяти на страницы огромны. Во-первых, приложения
изолированы друг от друга. Никакой процесс не может случайно или преднамеренно ис-
пользовать адресное пространство другого процесса, т. к. он не имеет возможности его
адресовать без указания соответствующего значения регистра CR3 этого процесса, кото-
рое устанавливается только внутри ядра Windows.
Во-вторых, такой механизм разделения на страницы решает одну из основных про-
блем в многозадачной среде - объединение свободной памяти. При более простых схе-
мах адресации в то время, как множество программ выполняются и завершаются, память
может стать фрагментированной. В случае, если память сильно фрагментирована, про-
граммы не могут выполняться из-за недостатка непрерывной памяти, даже если общего
количества свободной памяти вполне достаточно. При использовании разделения на
страницы нет необходимости объединять свободную физическую память, поскольку
107
Для каждого процесса микропроцессор хранит в регистре CR3 (r) старшие 20 бит физи-
ческого адреса таблицы каталога таблиц страниц:

rrrr-rrrr-rrrr-rrrr-rrrr

Начальный физический адрес каталога таблиц страниц определяется как:

rrrr-rrrr-rrrr-rrrr-rrrr-0000-0000-0000

Необходимо запомнить, что каждая страница имеет размер 4 КБ и начинается с адреса, у
которого 12 младших бит нулевые. Сначала микропроцессор получает физический ад-
рес:

rrrr-rrrr-rrrr-rrrr-rrrr-dddd-dddd-dd00

По этому адресу содержится другое 20-разрядное значение (t-table):

tttt-tttt-tttt-tttt-tttt

соответствующее начальному физическому адресу таблицы страниц:

tttt-tttt-tttt-tttt-tttt-0000-0000-0000

Затем, микропроцессор осуществляет доступ по физическому адресу:

tttt-tttt-tttt-tttt-tttt-pppp-pppp-pp00

Здесь хранится 20-битная величина, являющаяся основой для физического адреса начала
страницы памяти (f-page frame):

ffff-ffff-ffff-ffff-ffff

Результирующий 32-разрядный физический адрес получается в результате комбиниро-
вания основы физического адреса страницы и 12-разрядного смещения виртуального
адреса:

ffff-ffff-ffff-ffff-ffff-oooo-oooo-oooo

Это и есть результирующий физический адрес.
     Преимущества разделения памяти на страницы огромны. Во-первых, приложения
изолированы друг от друга. Никакой процесс не может случайно или преднамеренно ис-
пользовать адресное пространство другого процесса, т. к. он не имеет возможности его
адресовать без указания соответствующего значения регистра CR3 этого процесса, кото-
рое устанавливается только внутри ядра Windows.
     Во-вторых, такой механизм разделения на страницы решает одну из основных про-
блем в многозадачной среде - объединение свободной памяти. При более простых схе-
мах адресации в то время, как множество программ выполняются и завершаются, память
может стать фрагментированной. В случае, если память сильно фрагментирована, про-
граммы не могут выполняться из-за недостатка непрерывной памяти, даже если общего
количества свободной памяти вполне достаточно. При использовании разделения на
страницы нет необходимости объединять свободную физическую память, поскольку


                                          107