Составители:
Координаты байта в виртуальном адресном пространстве при
сегментно-страничной организации можно задать двумя способами:
- Во-первых, линейным виртуальным адресом, который равен сдвигу
данного байта относительно границы общего линейного
виртуального пространства,
- во-вторых, парой чисел, одно из которых является номером
сегмента, а другое — смещением относительно начала сегмента.
При этом в отличие от сегментной модели, для однозначного
задания виртуального адреса вторым способом необходимо каким-
то образом указать также начальный виртуальный адрес сегмента с
данным номером.
Системы виртуальной памяти ОС с сегментно-страничной
организацией используют второй способ, так как он позволяет
непосредственно определить принадлежность адреса некоторому сегменту и
проверить права доступа процесса к нему.
Для каждого процесса операционная система создает отдельную
таблицу сегментов, в которой содержатся описатели (дескрипторы) всех
сегментов процесса. Описание сегмента включает назначенные ему права
доступа и другие характеристики, подобные тем, которые содержатся в
дескрипторах сегментов при сегментной организации памяти. Однако
имеется и принципиальное отличие. В поле базового адреса указывается не
начальный физический адрес сегмента, отведенный ему в результате
загрузки в оперативную память, а начальный линейный виртуальный адрес
сегмента в пространстве виртуальных адресов (на рис. 3.16 базовые
физические адреса обозначены SI, S2, S3, а базовые виртуальные адреса — fl,
f2, f3).
Наличие базового виртуального адреса сегмента в дескрипторе
позволяет однозначно преобразовать адрес, заданный в виде пары (номер
сегмента, смещение в сегменте), в линейный виртуальный адрес байта,
который затем преобразуется в физический адрес страничным механизмом.
Преобразование виртуального адреса в физический происходит в два
этапа (рис. 3.17):
1. На первом этапе работает механизм сегментации. Исходный
виртуальный адрес, заданный в виде пары (номер сегмента,
смещение), преобразуется в линейный виртуальный адрес. Для
этого на основании базового адреса таблицы сегментов и номера
сегмента вычисляется адрес дескриптора сегмента. Анализируются
поля дескриптора и выполняется проверка возможности выполнения
заданной операции. Если доступ к сегменту разрешен, то
вычисляется линейный виртуальный адрес путем сложения базового
64
Координаты байта в виртуальном адресном пространстве при
сегментно-страничной организации можно задать двумя способами:
- Во-первых, линейным виртуальным адресом, который равен сдвигу
данного байта относительно границы общего линейного
виртуального пространства,
- во-вторых, парой чисел, одно из которых является номером
сегмента, а другое — смещением относительно начала сегмента.
При этом в отличие от сегментной модели, для однозначного
задания виртуального адреса вторым способом необходимо каким-
то образом указать также начальный виртуальный адрес сегмента с
данным номером.
Системы виртуальной памяти ОС с сегментно-страничной
организацией используют второй способ, так как он позволяет
непосредственно определить принадлежность адреса некоторому сегменту и
проверить права доступа процесса к нему.
Для каждого процесса операционная система создает отдельную
таблицу сегментов, в которой содержатся описатели (дескрипторы) всех
сегментов процесса. Описание сегмента включает назначенные ему права
доступа и другие характеристики, подобные тем, которые содержатся в
дескрипторах сегментов при сегментной организации памяти. Однако
имеется и принципиальное отличие. В поле базового адреса указывается не
начальный физический адрес сегмента, отведенный ему в результате
загрузки в оперативную память, а начальный линейный виртуальный адрес
сегмента в пространстве виртуальных адресов (на рис. 3.16 базовые
физические адреса обозначены SI, S2, S3, а базовые виртуальные адреса — fl,
f2, f3).
Наличие базового виртуального адреса сегмента в дескрипторе
позволяет однозначно преобразовать адрес, заданный в виде пары (номер
сегмента, смещение в сегменте), в линейный виртуальный адрес байта,
который затем преобразуется в физический адрес страничным механизмом.
Преобразование виртуального адреса в физический происходит в два
этапа (рис. 3.17):
1. На первом этапе работает механизм сегментации. Исходный
виртуальный адрес, заданный в виде пары (номер сегмента,
смещение), преобразуется в линейный виртуальный адрес. Для
этого на основании базового адреса таблицы сегментов и номера
сегмента вычисляется адрес дескриптора сегмента. Анализируются
поля дескриптора и выполняется проверка возможности выполнения
заданной операции. Если доступ к сегменту разрешен, то
вычисляется линейный виртуальный адрес путем сложения базового
64
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »
