Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по операционным системам.doc
Скачиваний:
91
Добавлен:
02.05.2014
Размер:
344.06 Кб
Скачать

39.Связь логических и физических адресов при страничной организации файлов.

Система отображения логических адресов в физические сводиться к системе отображения логической страницы в физические и представляет собой таблицу страниц, которая хранится в оперативной памяти. Интерпретация логического адреса …. Если выполняется процесс обращения к логическому адресу V(p,d). Механизм отображения ищет номер страницы р в таблице страниц определяет, что эта страница находиться в страничном кадре р’; формирует реальный адрес из р’ и d. Таблица страниц адресуется при помощи специальных регистров процесса и позволяет определить номер кадра по логическому адресу. Помимо этой задачи при помощи атрибутов записываются в строке таблицы страниц организуется контроль доступа конкретной страницы и её защита. Процесс пользователя не имеет возможности адресовать память за пределами своей таблицы страниц, который включают только его собственные страницы. Для управления физической памятью ОС создаёт таблицу кадров, она имеет одну запись на каждый физический кадр показывающая его состояние.

Отображение адресов обычно реализуется аппаратно, для ссылки на таблицу процессора используется специальные регистры, при переключении процессов необходимо найти таблицу страниц нового процесса, указатель на который входит в контекст процесса.

40. Существует 2 других схемы организации управления памятью:

1) сегментная: может иметь переменный размер (в отличии от страничной). При сегментной организации виртуальный адрес по прежнему является двумерным и состоит из двух полей: номера сегмента и смещение внутри сегмента. Однако, в отличии от страничной организации, где линейный адрес преобразуется в двумерной ОС для удобства отображения здесь двухмерность адреса является следствием представления программиста о процессе не в виде линейного массива байт, а как набор сегментов переменного размера (данные о стеке).

Программисты пишущие на языках низкого уровня должны явным образом менять значения сегментных регистров. Логическое адресное пространство это набор сегментов, каждый сегмент имеет имя, размер и другие параметры (уровень привилегий, разрешенные виды обращений, флаги присутствия). В отличии от страничной схемы, где пользователь задаёт только один адрес, который разбит на номер страницы и смещение в сегментной схеме, пользователь определяет каждый адрес двумя величинами: именем сегмента и смещение. Каждый сегмент это линейная последовательность адресов начиная с нуля. Максимальный размер сегмента определяется разрядностью процессоров. Размер сегмента может изменяться динамически. В элементе таблицы сегментов помимо физического адреса начала сегмента содержится и его длина, если размер смещения виртуального адреса выходит за пределы размера сегмента, возникает прерывание. Логический адрес это упорядоченная пара, номер сегмента и смещение внутри него. Система где сегмент поддерживаются аппаратно эти параметры хранятся в таблице дескриптора сегмента и программа обращается к этим дескрипторам по номерам, эти номера называются селектора. При этом контекст каждого процесса входит набор сегментных регистров, содержащие селекторы текущих сегментов кода, стека и данных. И определено какие сегменты будут использоваться при разных видах обращения к памяти. Это позволяет процессу уже на аппаратном уровне определять допустимость обращений к памяти упрощая реализацию защиты информации от несанкционированного доступа.

Аппратная поддержка сегментов используется в основном на процессорах Intel. В большинстве ОС сегментация реализована на программном уровне, т. К. хранить сегменты большого размера целиком неудобно, то они разбиваются на страницы.

2) сегментно-страничная: при сегментно-страничной организации памяти происходит двухуровневая трансляция виртуального адреса в физический, в этом случае логический адрес состоит из 3 полей: номер сегмента, номер страницы внутри сегмента и смещение внутри страницы. Используются 2 таблицы отображения:

1) таблица сегмента связывает номер сегмента с таблицей страниц.

2) отдельная таблица страниц для каждого сегмента.

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