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

UptoLike

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

преобразует логические адреса памяти или логические координаты в физические и пре-
дотвращает конфликты между программами из-за попыток одновременного использова-
ния одного и того же ресурса. Рассмотрим более подробно механизм образования вирту-
альной памяти.
Физическая память делится на страницы (pages) размером 4096 байт (4 КБ). Следо-
вательно, каждая страница начинается с адреса, в котором младшие 12 бит нулевые.
Машина, оснащенная 8 МБ памяти, содержит 2048 страниц. Операционная система
Windows хранит набор таблиц страниц (каждая таблица сама представляет собой стра-
ницу) для преобразования виртуального адреса в физический.
Каждый процесс, выполняемый в Windows, имеет свою собственную страницу ка-
талога (directory page) таблиц страниц, которая содержит до 1024 32-разрядных дескрип-
тора таблиц страниц. Физический адрес страницы каталога таблиц страниц хранится в
регистре CR3 микропроцессора. Содержимое этого регистра изменяется при переключе-
нии Windows управления между процессами. Старшие 10 бит виртуального адреса оп-
ределяют один из 1024 возможных дескрипторов в каталоге таблиц страниц. В свою
очередь, старшие 20 бит дескриптора таблицы страниц определяют физический адрес
таблицы страниц (младшие 12 бит физического адреса равны нулю). Каждая таблица
страниц содержит, в свою очередь, до 1024 32-разрядных дескриптора страниц. Выбор
одного из этих дескрипторов определяется содержимым средних 10 битов исходного
виртуального адреса. Старшие 20 бит дескриптора страницы определяют физический
адрес начала страницы, а младшие 12 бит виртуального адреса определяют физическое
смещение в пределах этой страницы. На рис. 4.5. представлена схема организации вир-
туального адресного пространства.
Рис.4.5. Схема организации виртуального адресного пространства.
Очевидно, что это сложно понять с первого раза. Проиллюстрируем этот процесс
еще раз в символьной форме [6]. Вы можете представить 32-разрядный виртуальный ад-
рес (с которым оперирует программа) в виде 10-разрядного индекса в таблице каталога
таблиц страниц (d), 10-разрядного индекса в таблице страниц (р), 12-разрядного смеще-
ния (о):
dddd-dddd-ddpp-pppp-pppp-oooo-oooo-oooo
106
преобразует логические адреса памяти или логические координаты в физические и пре-
дотвращает конфликты между программами из-за попыток одновременного использова-
ния одного и того же ресурса. Рассмотрим более подробно механизм образования вирту-
альной памяти.
     Физическая память делится на страницы (pages) размером 4096 байт (4 КБ). Следо-
вательно, каждая страница начинается с адреса, в котором младшие 12 бит нулевые.
Машина, оснащенная 8 МБ памяти, содержит 2048 страниц. Операционная система
Windows хранит набор таблиц страниц (каждая таблица сама представляет собой стра-
ницу) для преобразования виртуального адреса в физический.
     Каждый процесс, выполняемый в Windows, имеет свою собственную страницу ка-
талога (directory page) таблиц страниц, которая содержит до 1024 32-разрядных дескрип-
тора таблиц страниц. Физический адрес страницы каталога таблиц страниц хранится в
регистре CR3 микропроцессора. Содержимое этого регистра изменяется при переключе-
нии Windows управления между процессами. Старшие 10 бит виртуального адреса оп-
ределяют один из 1024 возможных дескрипторов в каталоге таблиц страниц. В свою
очередь, старшие 20 бит дескриптора таблицы страниц определяют физический адрес
таблицы страниц (младшие 12 бит физического адреса равны нулю). Каждая таблица
страниц содержит, в свою очередь, до 1024 32-разрядных дескриптора страниц. Выбор
одного из этих дескрипторов определяется содержимым средних 10 битов исходного
виртуального адреса. Старшие 20 бит дескриптора страницы определяют физический
адрес начала страницы, а младшие 12 бит виртуального адреса определяют физическое
смещение в пределах этой страницы. На рис. 4.5. представлена схема организации вир-
туального адресного пространства.




               Рис.4.5. Схема организации виртуального адресного пространства.

      Очевидно, что это сложно понять с первого раза. Проиллюстрируем этот процесс
еще раз в символьной форме [6]. Вы можете представить 32-разрядный виртуальный ад-
рес (с которым оперирует программа) в виде 10-разрядного индекса в таблице каталога
таблиц страниц (d), 10-разрядного индекса в таблице страниц (р), 12-разрядного смеще-
ния (о):

dddd-dddd-ddpp-pppp-pppp-oooo-oooo-oooo



                                            106