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

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

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

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

Очевидно, что, приписав к этомуномеру нули, мы попадем на начало этой страницы.Адресация в 32-разрядныхмикропроцессорах i80x86 при работев защищенном режимеПоддержка сегментного способа организациивиртуальной памятиКак мы уже знаем, для организации эффективной и надежной работы вычис­лительной системы в мультипрограммном режиме необходимо иметь соответ­ствующие аппаратные механизмы, поддерживающие независимость адресныхпространств каждой задачи и в то же время позволяющие организовать обменДанными и разделение кода. Для этого желательно выполнить следующие дватребования:Глава 4, Особенности архитектуры м и к р о п р о ц е с с о р о в J80x86106• чтобы у каждого вычислительного процесса было собственное (личное, локаль­ное) адресное пространство, никак не пересекающееся с адресными простран­ствами других процессов;•чтобы существовало общее (разделяемое) адресное пространство.Для удовлетворения этих требований в микропроцессорах i80x86 реализован сегмен­тный способ распределения памяти.

Помимо того в этих микропроцессорах можетбыть задействована и страничная трансляция. Поскольку для каждого сегмента ну­жен дескриптор, устройство управления памятью поддерживает соответствующуюинформационную структуру. Формат дескриптора сегмента приведен на рис. 4.3.3123База сегмента(биты 31-24)GСтаршее двойное слово дескриптора191511D00Биты 19-16поля LimitБазовый адрес сегмента (биты 15-0)31РDPLSТуреБайт прав доступа7АБиты 23-16базы сегментаРазмер (предел - limit) сегмента(биты 15-0)15Первое (младшее) двойное слово дескриптораОРис.

4.3. Дескриптор сегментаПоля дескриптора (базовый адрес, поле предела) размещены в дескрипторе не не­прерывно, а в разбивку, потому что, во-первых, разработчики постарались мини­мизировать количество перекрестных соединений в полупроводниковой структуремикропроцессора, а во-вторых, чтобы обеспечить полную совместимость1 микро­процессоров (предыдущий микропроцессор i80286 работал с 16-разрядным кодоми тоже поддерживал сегментный механизм реализации виртуальной памяти). Не­обходимо заметить, что формат дескриптора сегмента, изображенный на рис.

4.3,справедлив только для случая нахождения соответствующего сегмента в опера­тивной памяти. Если же бит присутствия в поле прав доступа равен нулю (сегментотсутствует в памяти), то все биты, за исключением поля прав доступа, считаютсянеопределенными и могут использоваться системными программистами (для ука­зания адреса сегмента во внешней памяти) произвольным образом.Локальное адресное пространство задачи определяется через таблицу LDT (LocalDescriptor Table). У каждой задачи может быть свое локальное адресное простран­ство.

Общее, или глобальное, адресное пространство определяется через таблицу GDT(Global Descriptor Table). Само собой, что работу с этими таблицами (их заполнениеи последующую модификацию) должна осуществлять операционная система. Дос­туп к таблицам LDT и GDT со стороны прикладных задач должен быть исключен.При переключении микропроцессора в защищенный режим он начинает совершен­но другим образом, чем в реальном режиме, вычислять физические адреса команд и' Естественно, совместимость обеспечена только «снизу вверх», то есть программы, разработанныедля предыдущих версий микропроцессора, должны выполняться на последующих без какой-либопеределки.Адресация в 32-разрядных микропроцессорах J80x86107перандов.

Прежде всего, содержимое сегментных регистров начинает интерпрети­роваться иначе: считается, что там содержится не адрес начала, а номер соответству­ющего сегмента. Для того чтобы подчеркнуть этот факт, сегментные регистры CS,с$ DS, ES, FS, GS начинают даже называть иначе — селекторами сегментов. Приэтом каждый селекторный регистр разбивается на три поля (рис. 4.4).р Поле индекса (Index) — старшие 13 битов (3-15) определяет собственно номерсегмента (его индекс в соответствующей таблице дескрипторов).• Поле индикатора таблицы сегментов (Table Index, TI) — бит с номером 2 опре­деляет часть виртуального адресного пространства (общее или принадлежащеетолько данной задаче).

Если TI = 0, то поле индекса указывает на элемент вглобальной таблице дескрипторов (GDT), то есть идет обращение к общей па­мяти. Если TI = 1, то идет обращение к локальной области памяти текущей за­дачи; это пространство описывается локальной таблицей дескрипторов (LDT).• Поле уровня привилегий идентифицирует запрашиваемый уровень привилегий(Requested Privilege Level, RPL).15 !Поле индекса (номер дескриптора)TIRPLРис. 4.4. Селектор сегментаОперационная система в процессе своего запуска инициализирует многие регист­ры, и прежде всего GDTR.

Этот регистр содержит начальный адрес глобальнойтаблицы дескрипторов (GDT) и ее размер. Как мы уже знаем, в GDT содержатсядескрипторы глобальных сегментов и системные дескрипторы.Для манипулирования задачами операционные системы поддерживают информаци­онную структуру, которую мы уже раньше называли как дескриптор задачи (см. гла­ву 1). Микропроцессоры с архитектурой IA32 поддерживают работу с наиболее важнойчастью дескриптора задачи, которая меньше всего зависит от операционной системы.Эта инвариантная часть дескриптора, с которой и работает микропроцессор, названасегментом, состояния задачи (Task State Segment, TSS). Перечень полей TSS показанна рис. 4.5.

Видно, что этот сегмент содержит в основном контекст задачи. Процессорполучает доступ к этой структуре с помощью регистра задачи (Task Register, TR).Регистр TR содержит индекс (селектор) элемента в GDT. Этот элемент представ­ляет собой дескриптор сегмента TSS. Дескриптор заносится в теневую часть реги­стра (см. рис. 4.2). К рассмотрению TSS мы еще вернемся, а сейчас заметим, чтов одном из полей TSS содержится указатель (селектор) на локальную таблицу де­скрипторов данной задачи. При переходе процессора с одной задачи на другуюсодержимое поля LDTR заносится микропроцессором в одноименный регистр.Инициализировать регистр TR можно и явным образом.Итак, регистр LDTR содержит селектор, указывающий на один из дескрипторовтаблицы GDT. Этот дескриптор заносится микропроцессором в теневую часть ре­гистра LDTR и описывает таблицу LDT для текущей задачи.

Теперь, когда у нас108Глава 4. Особенности архитектуры м и к р о п р о ц е с с о р о в J80x86определены как глобальная, так и локальная таблица дескрипторов, можно рас­смотреть процесс определения линейного адреса1. Для примера рассмотрим про­цесс получения адреса команды. Адреса операндов определяются по аналогии, нозадействованы будут другие регистры.Поля, определяемые ОС(их количество и составможет быть любым)3116150ЛАдрес карты ввода/вывода68пLTDRСегментные регистры ES, CS, SS, DS, FS, GS(на каждый регистр отведено по 4 байт,из которых используется только 2 младших)60h48hОбщие регистры (ЕАХ, ЕСХ, EDX, EBX, ESX,EBP, ESI, EDI)Собственно TSS(108 байт)28hРегистр флагов EFLAGS24hУказатель команд (регистр EIP)20hПривилегированные указатели стеков4Link0Рис.

4.5. Сегмент состояния задачиJМикропроцессор анализирует бит TI селектора кода и, в зависимости от его значе­ния, извлекает из таблицы GDT или LDT дескриптор сегмента кода с номером(индексом), который равен полю индекса (биты 3-15 селектора на рис. 4.4). Этотдескриптор заносится в теневую (скрытую) часть регистра CS. Далее микропро­цессор сравнивает значение регистра EIP (Extended Instruction Pointer — расши­ренный указатель команды) с полем размера сегмента, содержащегося в извлечен­ном дескрипторе, и если смещение относительно начала сегмента не превышаетразмера предела, то значение EIP прибавляется к значению поля начала сегмента,и мы получаем искомый линейный адрес команды. Линейный адрес — это одна изформ виртуального адреса.

Исходный двоичный виртуальный адрес, вычисляеВ микропроцессорах 180x86 линейным называется адрес, полученный в результате преобразованиявиртуального адреса формата (S, d) в 32-разрядный адрес.Адресация в 32-разрядных микропроцессорах i80x86109мый в соответствии с используемой схемой адресации, преобразуется в линейный.В свою очередь, линейный адрес будет либо равен физическому (если страничноепреобразование отключено), либо путем страничной трансляции преобразуетсяфизический адрес. Если же смещение из регистра EIP превышает размер сегмен­та кода, то эта аварийная ситуация вызывает прерывание, и управление должнопередаваться супервизору операционной системы.Регистр EIPИскомая командаДескрипторCSАдрес сегментаLTDRАдрес LDT!|i1<> LDT•К'ДескрипторGDTR (адрес GDT)1Сегменткода•Рис. 4.6. Процесс получения линейного адреса командыGDT110Глава 4, Особенности архитектуры микропроцессоров J80x86Рассмотренный нами процесс получения линейного адреса иллюстрирует рис.

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

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

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

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