Организация вычислительных систем и сетей. Халабия Р.Ф. - 88 стр.

UptoLike

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

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



                                    88