Скачиваний:
123
Добавлен:
04.04.2013
Размер:
774.66 Кб
Скачать

9.6.2. Управление доступом в системах с сегментной организацией

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

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

Рис. 9.21 Виды управления доступом.

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

Процесс, которому разрешено дополнение некоторого сегмента, может записать дополнительную информацию в конце сегмента, но не может изменить существующую информацию

9.7 Системы с комбинированной странично-сегментной организацией

9.7.1. Основные концепции

И сегментная, и страничная организации имеют важные достоинства как способы построения виртуальной памяти. Начиная с систем середины 60-х годов, в частности с информационно-вычислительной системы с разделением времени Multicsи системы разделения времениTSSкорпорацииIBM, во многих вычислительных машинах применяется комбинированная странично-сегментная организация памяти. Эти системы обладают достоинствами обоих способов реализации виртуальной памяти. Сегменты обычно содержат целое число страниц, причем не обязательно, чтобы все страницы сегмента находились в первичной памяти одновременно, а смежные страницы виртуальной памяти не обязательно должны оказываться смежными в реальной памяти. В системе со странично-сегментной организацией применяется трехкомпонентная (трехмерная) адресация, т. е. адрес виртуальной памятиvопределяется как упорядоченная тройкаv = (s, p, d),гдеs— номер сегмента,р —номер страницы, аd —смещение в рамках страницы, по которому находится нужный элемент (рис. 9.18).

Рис. 9.18 Формат виртуального адреса в странично-сегментной системе

9.7.2. Динамическое преобразование адресов в системах со странично-сегментной организацией

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

Выполняющийся процесс делает ссылку по виртуальному адресу = (s, р, d).Самые последние по времени обращения страницы имеют соответствующие строки в ассоциативной таблице. Система производит ассоциативный поиск, пытаясь найти строку с параметрами (s,р)в ассоциативной таблице. Если такая строка здесь обнаруживается, то адрес страничного кадрар',по которому эта страница размещается в первичной памяти, соединяется со смещениемd, образуя реальный адресr, соответствующий виртуальному адресуv, -и на этом преобразование адреса завершается.

В обычном случае большинство запросов на преобразование адресов удается удовлетворить подобным ассоциативным поиском. Если же требуемого адреса в ассоциативной памяти нет, то преобразование осуществляется способом полного прямого отображения. Это делается следующим образом: базовый адрес bтаблицы сегментов прибавляется к номеру сегментаs, так что образуется адресb+sстроки для сегментаs в таблице сегментов по первичной памяти. В этой строке указывается базовый адресs'таблицы страниц для сегментаs. Номер страницырприбавляется к s', так что образуется адресp+s'строки в таблице страниц для страницырсегмента s. Эта таблица позволяет установить, что виртуальной страницер соответствует номер кадрар'.Этот номер кадра соединяется со смещениемd,так что образуется реальный адресr,соответствующий виртуальному адресуv = (s, р, d).

Эта процедура преобразования адресов описана, конечно, в предположении, что каждый необходимый элемент информации находится именно там, где ему положено быть. Однако в процессе преобразования адресов существует много моментов, когда обстоятельства могут складываться не столь благоприятно. Просмотр таблицы сегментов может показать, что сегмента sв первичной памяти нет; при этом возникаетпрерывание по отсутствию сегмента,операционная система найдет нужный сегмент во внешней памяти, сформирует для него таблицу страниц и загрузит соответствующую страницу в первичную память, быть может, вместо некоторой существующей страницы этого или какого-либо другого процесса. Когда сегмент находится в первичной памяти, обращение к таблице страниц может показать, что нужной страницы в первичной памяти все же нет. При этом произойдетпрерывание по отсутствию страницы, операционная система возьмет управление на себя, найдет данную страницу во внешней памяти и загрузит ее в первичную память (быть может, опять-таки с замещением другой страницы). Как и при чисто сегментной системе, адрес виртуальной памяти может выйти за рамки сегмента и произойдетпрерывание по выходу за пределы сегмента.Или контроль по битам-признакам защиты может выявить, что операция, выполнение которой запрашивается по указанному виртуальному адресу, не разрешена, вследствие чего произойдетпрерывание по защите сегмента.Операционная система должна предусматривать обработку всех этих ситуаций.

Ассоциативная память (или аналогично высокоскоростная кэш-память) играет решающую роль в обеспечении эффективной работы механизма динамического преобразования адресов. Если преобразование адресов производить с помощью чисто прямого отображения с ведением в первичной памяти полного набора таблиц соответствия виртуальных и реальных адресов, типичное обращение к виртуальной памяти потребовало бы цикла памяти для доступа к таблице сегментов, второго цикла памяти для доступа к таблице страниц и третьего для доступа к нужному элементу в реальной памяти. Таким образом, каждое обращение к адресуемому элементу занимало бы три цикла памяти, т. е. реальное быстродействие вычислительной системы составило бы лишь приблизительно треть от номинального значения, а две трети затрачивалось бы на преобразование адресов! Интересно, что при всего лишь восьми или шестнадцати ассоциативных регистрах разработчики добиваются для многих систем показателей быстродействия, составляющих 90 и более процентов полных скоростных возможностей их управляющих (центральных) процессоров.

Рис. 9.19 Преобразование виртуального адреса путем комбинированного ассоциативно прямого отображения в странично-сегментной системе.

Соседние файлы в папке Лекции 9-12rar