Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 31

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 31 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 312020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

Нарушение этогоусловия вызывает так называемую особую ситуацию ошибки защиты, ведущую кпрерыванию. Уровень привилегий сегмента данных, к которому осуществляетсяобращение, должен быть таким же, как и текущий уровень, или меньше его. Обра­щение к сегменту с более высоким уровнем привилегий воспринимается как ошиб­ка, так как существует опасность изменения данных с высоким уровнем привиле­гий программой с низким уровнем привилегий. Доступ к данным с меньшимуровнем привилегий разрешается.Если целевой сегмент является сегментом стека, то правило проверки имеет вид:CPL = DPL = RPLВ случае его нарушения также возникает исключение.

Поскольку стек может при­меняться в каждом сегменте кода, и всего имеется четыре уровня привилегий кода,используется четыре стека. Сегмент стека, адресуемый регистром SS, должен иметьтот же уровень привилегий, что и текущий сегмент кода.Правила для передачи управления, когда осуществляется межсегментный пере­ход с одного сегмента кода на другой сегмент кода, несколько сложнее.

Если дляперехода с одного сегмента данных на другой сегмент данных считается допусти­мым обрабатывать менее привилегированные сегменты, то передача управленияиз более привилегированного кода на менее привилегированный код должна кон­тролироваться дополнительно. Другими словами, код операционной системы неДолжен доверять коду прикладных задач. И обратно, нельзя просто так давать за­дачам возможность исполнять привилегированный код, хотя потребность в этомвсегда имеется (ведь многие функции, в том числе и функции ввода-вывода, счи-2Иоле RPL определяется программистом (системой программирования).

В отличие от поля DPL полеKPL легко может быть изменено.•значение эффективного уровня привилегий определяется минимальной привилегией, то есть какМаксимальное значение из двух уровней, RPL и DPL.118Глава 4. Особенности архитектуры микропроцессоров 180x86таются привилегированными и должны выполняться только самой операционнойсистемой). Для передачи управления в сегменты кода с иными уровнями приви­легий введен механизм шлюзов, который мы вкратце рассмотрим ниже: Более по­дробное рассмотрение затронутых вопросов выходит за рамки темы данной книги.Для получения более детальных сведений по этому и некоторым другим вопросамособенностей архитектуры микропроцессоров i80x86 рекомендуется обратиться ктаким материалам, как, например, [1, 8].Механизм шлюзов для передачи управленияна сегменты кода с другими уровнямипривилегийПоскольку межсегментные переходы контролируются с использованием уровнейпривилегий, а потребность в передаче управления с одного уровня привилегий надругой уровень имеется, в микропроцессорах i80x86 реализован механизм шлюзов,который мы поясним с помощью рис.

4.9. Шлюзование позволяет организоватьобращение к так называемым подчиненным сегментам кода, которые выполняютчасто встречающиеся функции и должны быть доступны многим задачам, распо­лагающимся на том же или нижележащем уровне привилегий. Часто уровни при­вилегий называют кольцами защиты, поскольку это иногда помогает объяснитьпринцип действия самого механизма. Часто говорят, что некоторый программныймодуль «исполняется в кольце защиты с номером ...».Помимо дескрипторов сегментов системными объектами, с которыми работаетмикропроцессор, являются специальные системные дескрипторы, названные шлю­зами (gates).

Главное различие между дескриптором сегмента и шлюзом вызоваподчиненного сегмента кода заключается в том, что содержимое дескриптора ука­зывает на сегмент в памяти, а шлюз обращается к дескриптору. Другими словами,если дескриптор служит механизмом отображения памяти, то шлюз служит меха­низмом перенаправления вычислений.Для доступа к более привилегированному коду задача должна обратиться к немуне непосредственно (путем указания дескриптора этого кода), а через шлюз этогосегмента (рис. 4.10).В этом дескрипторе вместо адреса сегмента указываются селектор, позволяю­щий найти дескриптор искомого сегмента кода, и адрес (смещение назначения),с которого будет выполняться подчиненный сегмент, то есть полный 32-разряд­ный адрес.

Формат дескриптора шлюза приведен на рис. 4.11. Адресовать шлюзвызова можно с помощью команды CALL или FAR CALL (межсегментный вызов про­цедуры). По существу, дескрипторы шлюзов вызова не являются дескрипторамисегментов, но могут располагаться среди обычных дескрипторов (в дескрипторных таблицах) процесса.

Смещение, указываемое в команде перехода на другойсегмент (FAR CALL), игнорируется, и фактически осуществляется переход на ко­манду, адрес которой определяется через смещение из шлюза вызова. Этим га­рантируется попадание только на разрешенные точки входа в подчиненные сег­менты.---шШ119о а щ и т а адресного пространства задачАдресное пространство программны) модулей ОСУровень привилегий ОЗапрашиваемыйпрограммный модуль/\Уровень привилегий 1Уровень привилегий 2Уровень привилегий 3Адресное пространство процесса АШлюзАдресное пространствопроцесса БРис.

4.9. Механизм шлюзов для перехода на другой уровень привилегийВведены следующие правила использования шлюзов:• значение DPL шлюза вызова должно быть больше или равно значению текуще­го уровня привилегий CPL;• значение DPL шлюза вызова должно быть больше или равно значению поляRPL селектора шлюза;• значение DPL шлюза вызова должно быть больше или равно значению DPLцелевого сегмента кода;• значение DPL целевого сегмента кода должно быть меньше или равно значе­нию текущего уровня привилегий CPL.Требование наличия и доступности шлюза вызова для перехода на более приви­легированный код ограничивает менее привилегированный код заданным набо­ром точек входа.

Так как шлюзы вызова являются элементами дескрипторныхтаблиц (а мы говорили, что их не только можно, но и желательно там распола­гать), то менее привилегированная программа не может создать дополнительНЬ1х (а значит, и неконтролируемых) шлюзов. Таким образом, рассмотренныймеханизм шлюзов дает следующие преимущества в организации среды надеж­ных вычислений.Глава 4. Особенности архитектуры м и к р о п р о ц е с с о р о в 180x86120Q Привилегированный код надежно защищен, и вызывающие его программы не мо­гут его разрушить.

Естественно, что такой системный код должен быть особеннотщательно отлаженным, не содержать ошибок, быть максимально эффективным.•Шлюзы межсегментных переходов для вызова системных функций делают этисамые системные функции невидимыми для программных модулей, располо­женных на внешних (более низких) уровнях привилегий.Q Поскольку вызывающая программа непосредственно адресует только шлюз вызо­ва, реализуемые вызываемым модулем (сегментным кодом) функции можно изме­нить или переместить в адресном пространстве, не затрагивая интерфейс со шлюзом.Q Легко реализуется вызов программных модулей с более привилегированногоуровня.СмещениеСегментCALLДескриптор шлюзаДескриптор сегмента кода.

• • . • • . - , - . • - •высоким'Рис. 4.10. Переход на сегмент более привилегированного кода3123Старшее двойное слово дескриптора191511Смещение назначения (биты 31-16)РDPL01100Байт прав доступаСелектор сегмента назначения31000СчетчикDWORDСмещение назначения (биты 15-0)15Первое (младшее) двойное слово дескриптораРис. 4 . 1 1 . Формат дескриптора шлюзаЗащита адресного пространства задач121Изложенный вкратце аппаратный механизм защиты по привилегиям оказываетсядовольно сложным и жестким.

Однако поскольку все практические ситуации учестьв схемах микропроцессора невозможно, то при разработке процедур операцион­ных систем и иного привилегированного кода следует придерживаться приведен­ных ниже рекомендаций, заимствованных из [8].Основной риск связан с передачей управления через шлюз вызова более привиле­гированной процедуре. Нельзя предоставлять вызывающей программе никакихпреимуществ, вытекающих из-за временного повышения привилегий. Это особенноважно для процедур нулевого уровня привилегий (PLO-процедур).Вызывающая программа может нарушить работу процедуры, передавая ей «пло­хие» параметры. Поэтому целесообразно как можно раньше проконтролироватьпередаваемые процедуре параметры. Шлюз вызова сам по себе не проверяет зна­чений параметров, которые копируются в новый стек, поэтому достоверность каж­дого передаваемого параметра должна контролировать вызванная процедура.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее