Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения


Скачать 1.73 Mb.
Название Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения
страница 8/15
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
1   ...   4   5   6   7   8   9   10   11   ...   15

Поддержка сегментированной модели памяти

Дескрипторные таблицы

 Микропроцессор аппаратно поддерживает три типа дескрипторных таблиц:

  •    глобальная дескрипторная таблица (GDT);

  •   локальная дескрипторная таблица (LDT);

  • таблица дескрипторов прерываний (IDT).

 

1. Таблица GDT (Global Descriptor Table) — глобальная дескрипторная табли­ца. Это основная общесистемная таблица, к которой допускается обращение со стороны программ, обладающих достаточными привилегиями. Располо­жение таблицы GDT в памяти произвольно; оно локализуется с помощью специального регистра gdtr (48 бит). В таблице GDT могут содержаться следующие типы дескрипторов:

  • дескрипторы сегментов кодов программ;

  • дескрипторы сегментов данных программ;

  • дескрипторы стековых сегментов программ;

  • дескрипторы TSS (Task Segment Status) — специальные системные объек­ты, называемые сегментами состояния задач;

  • дескрипторы для таблиц LDT;

  • шлюзы вызова;

  • шлюзы задач.

2. Таблица LDT (Local Descriptor Table) — локальная дескрипторная таблица. Для любой задачи в системе может быть создана своя дескрипторная табли­ца подобно общесистемной GDT. Для связи между таблицами GDT и LDT в таблице GDT создается дескриптор, описывающий область памяти, в которой находится LDT. Рас­положение таблицы LDT в памяти также произвольно и локализуется с по­мощью специального регистра ldtr (16 бит). В таблице LDT могут содержаться сле­дующие типы дескрипторов:

  • дескрипторы сегментов кодов программ;

  • дескрипторы сегментов данных программ;

  • дескрипторы стековых сегментов программ;

  • шлюзы вызова;

  • шлюзы задач.

3. Таблица IDT (Interrupt Descriptor Table) — дескрипторная таблица преры­ваний. Данная таблица также является общесистемной и содержит дескрип­торы специального типа, которые определяют местоположение программ обработчиков всех видов прерываний. В качестве аналогии можно привести таблицу векторов прерываний реального режима. Расположение таблицы IDT в памяти произвольно и локализуется с помощью специального регис­тра idtr (48 бит). Элементы данной таблицы называются шлюзами. Отметим, что эти шлюзы бывают трех типов:

  • шлюзы задач;

  • шлюзы прерываний;

  • шлюзы ловушек.

 

Каждая из дескрипторных таблиц может содержать до 8192 (213) дескрипторов.

 

Формат селектора сегмента

 

В защищенном режиме иначе интерпретируется содержимое сегментных регистров.

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

Каждый регистр разбивается на три поля:

  • индекс (старшие 13 битов) - Index. Определяет номер сегмента (индекс) в соответствующей таблице дескрипторов.

  • индикатор таблицы сегментов - TI (бит 2). Определяет в глобальной или локальной таблице находится дескриптор сегмента: TI=0 - в глобальной, TI=1 - в локальной.

  • Уровень привилегий (биты 0 и 1). Указывает запрашиваемый уровень привилегий.

 

Формат дескриптора сегмента

 

Каждый сегмент описывается соответствующим дескриптором сегмента.

Структурно дескриптор сегмента представляет собой 8-байтовую структуру.

И состоит из следующих полей:

 

Номер байта в дескрипторе

Количество бит в поле

Символическое

обозначение

Назначение и содержание полей дескриптора

0...1

16

limit_l

Младшие биты 0...15 20-разрядного поля предела сегмента, который определяет размер сегмента в единицах, определяемых битом гранулярности g

2...4

23

base_l

Биты О...23 32-разрядной базы сегмента, которая определяет значение линейного адреса начала сегмента в памяти

5

8

AR

Байт, поля которого определяют права доступа к сегменту

6

0...3

limit_2

Старшие биты 16...19 20-разрядного предела сегмента

7










8











Обратим внимание на следующее

  • в защищенном режиме размер сегмента не фиксирован, его расположение можно задать в пределах 4 Гбайт.

  • поля, определяющие размер сегмента и его начальный (базовый) адрес разорваны, в целях совместимости со старыми микропроцессорами

дело в том, что защищенный режим впервые появился в микропроцессоре i80286. Этот микропроцессор имел 24-разрядную адресную шину и, соответственно, мог адресовать в защищенном режиме до 16 Мбайт оперативной памяти. Для этого ему достаточно было иметь в дескрипторе поле базового адреса 24 бита и поле размера сегмента 16 бит. После появления микропроцессора i80386 с 32-разрядной шиной команд и данных в целях совместимости программ разработчики не стали изменять формат дескриптора, а просто использовали свободные поля. Внутри микропроцессора эти поля объединены. Внешне же они остались разделены, и при программировании с этим приходится мириться.

  • размер сегмента в защищен­ном режиме может достигать 4 Гбайт, то есть занимать все возможное физи­ческое пространство памяти.

Как это возможно, если суммарный размер поля размера сегмента всего 20 бит, что соответствует величине 1 Мбайт? Секрет скрыт в поле гранулярности — бит G. Если бит G=0, то значение в поле размера сегмента означает размер сегмента в байтах, а если G=1, то в страницах. Размер страницы составляет 4 Кбайт. Нетрудно под­считать, что когда максимальное значение поля размера сегмента составляет Ofrfffh, то это соответствует 1 М страниц, что и соответствует величине 1 М * 4 Кб = 4 Гб.

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

 

Другой тип защиты - по привилегиям - заключается в том, что сегменты неравноправны в пра­вах доступа к ним. Суть этого механизма защиты по привилеги­ям заключается в том, что конкретный сегмент может находиться на одном из четырех уровней привилегированности с номерами 0, 1, 2 и 3. Самым привилегированным является уровень 0. Существует ряд ограниче­ний на взаимодействие сегментов с различными уровнями привилегий.

 

Информация о правах доступа к сегменту содержится в специальном байте AR дескриптора.

Формат байта AR дескриптора сегмента

 

Номер бита в Символическое Назначение и содержимое

байте AR обозначение

 

О А Бит доступа (Accessed) к сегменту. Устанавливается аппаратно при обращении к сегменту

1 R Для сегментов кода — это бит доступа по чтению (Readable); определяет, возможно ли чтение из сегмен­та кода при осуществлении замены префикса сегмента:

О — чтение из сегмента запрещено;

1 — чтение из сегмента разрешено

W Для сегментов данных — это бит записи:

О — модификация данных в сегменте запрещена;

1 — модификация данных в сегменте разрешена

2 С Для сегментов кода — это бит подчинения (Conforming):

1 — подчиненный сегмент кода;

О — обычный сегмент кода;

ED Для многозадачного режима определяет особенности смены значения текущего

уровня привилегий. Для сег­ментов данных — это бит расширения вниз (Expand

Down); служит для различения сегментов стека и дан­ных, а также определяет

трактовку поля limit:

О — сегмент данных;

1 — сегмент стека

3 I Бит предназначения (Intending):

О — сегмент данных или стека;

1 — сегмент кода

4 S Если S-1 — то это бит сегмента (Segment). Для лю­бых сегментов в памяти равен 1. Назначение и поря­док использования сегмента уточняется битами С и R;

если = 0 — то это бит системный (System). Такое состояние бита S говорит о том, что данный дескрип­тор описывает специальный системный объект, кото­рый может и не быть сегментом в памяти

5...6 dpl Поле уровня привилегий сегмента (Descriptor Privilege Level).

Содержит численное значение в диапазоне от О до 3 привилегированности

сегмента

7 Р Бит присутствия (Present):

О — сегмента нет в оперативной памяти в данный момент;

1 — сегмент находится в оперативной памяти в данный момент

 

Наиболее важные поля байта AR — это

  1. 1)   dpl (2 бита)

  2. 2)   биты R/W, C/ED и I, которые вместе определяют тип сегмента.

Поле dpl — часть механизма защиты по привилегиям. Содержит значение 0.. 3 привилегированности сегмента.

Тип сегмента определяется тремя битами. Это поле определяет целевое назначение сег­мента.

Рассмотрим назначение некоторых комбина­ций этих битов.

Комбинации битов Назначение сегмента

000 Сегмент данных, только для чтения

001 Сегмент данных с разрешением чтения и записи

010 Не определена

011 Сегмент стека с разрешением чтения и записи

100 Сегмент кода с разрешением только выполнения

101 Сегмент кода с разрешением выполнения и чтения из него

110 Подчиненный сегмент кода с разрешением выполнения

111 Подчиненный сегмент кода с разрешением выполнения и чтения из него

Замечание. Возможны два принципиально разных вида сегментов: данных и кода. Сегмент стека является разновидностью сегмента данных, но с особой трактовкой поля размера сегмента. Это объясня­ется спецификой использования стека (он растет в направлении младших ад­ресов памяти). Таким образом, видно, что поле типа ограничивает использова­ние объявленных сегментов. В частности, программные сегменты не могут быть модифицированы без применения специальных приемов. Доступ к сегменту данных также может быть ограничен только на чтение.

 

Поддержка страничной модели памяти

 

Вспомним, при страничной организации ОП делится на блоки (страницы) фиксированного размера 4 Кб (число, кратное степени двойки, Þ операции сложения можно заменить на операции конкатенации).

Диспетчер памяти для каждой страницы формирует соответствующий дескриптор. Дескрипторы страниц собираются в таблицы.

 

Таблицы страниц

Есть два типа таблиц страниц:

  1. 1.    Таблица каталогов таблиц страниц (PDE - page directiry entry)

  2. 2.    Таблица страниц (PTE - page table entry)

Каждая таблица состоит из 1024 (2**10) элементов. Элементами таблиц являются дескрипторы страниц. Размер одного дескриптора - 4б. Þ Þ для хранения одной таблицы необходима одна страница памяти.

 

Говорят, что осуществляется двухшаговая страничная трансляция адресов.

Рассмотрим составляющие этого механизма.

Для текущей задачи создается одна таблица PDE и одна или более страниц PTE.

Все страницы текущей задачи описаны в таблицах страниц PTE - page table entry.

Одна таблица PTE состоит из 1024 (2**10) элементов - дескрипторов страниц Þ одна таблица страниц описывает пространство памяти в 4 Мб.

Если задаче недостаточно памяти в 4 МБ, создается несколько таблиц PTE.

Пусть текущая задача использует 50 Мб памяти (например, графический редактор) Þ для описания этой памяти надо иметь 14 таблиц PTE.

Для таблиц PTE текущей задачи создается таблица PDE. В ней каждый дескриптор указывает местонахождение одной таблицы PTE. Таблица PDE также состоит из 1024 (2**10) элементов. (Остальные дескрипторы не используются.)

Обратим внимание, что для описания 50 Мб памяти одной задачи требуется 15 страниц = 60Кб памяти (такие потери считаются приемлемыми).

 

Формат дескриптора страницы

Каждая страница описывается дескриптором (32 бита).

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

! Количество битов, отводимое под номер страницы, определяет объем возможной ОП, которой может пользоваться программа.

  •       старшие 10 битов определяют номер (индекс) таблицы страниц PTE в таблице PDE

  •       младшие 10 битов - номер (индекс) дескриптора страницы в таблице PTE (а из этого дескриптора уже выбирается номер физической страницы).

Остальные биты

  •       (0): present - самый младший (нулевой) бит - так наз. бит присутствия. If present=0, то страница отсутствует в ОП Þ прерывание с передачей управления специальной программе, которая должна загрузить отсутствующую страницу;

  •       (1): read/write - для защиты памяти

  •       (2): User/supervisor - для защиты памяти

  •       (3,4) - нулевые

  •       (5): access - бит обращения, показывает, что к странице осуществлялся доступ

  •       (6): dirty - «грязный» бит - отмечает, что данную страницу модифицировали и при замещении ее следующей необходимо сохранить во внешней памяти

  •       (7,8) - нулевые

  •       (9,10,11) - зарезервированы для разработки системными программистами подсистемы организации виртуальной памяти

 

Переход микропроцессора в защи­щенный режим

 

Вспомним кратко процесс загрузки ОС и подчеркнем момент перехода в защищенный режим.

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

Но прежде чем сделать это, операционная система формиру­ет системные структуры данных (в частности, рассмотренные нами дескрипторные таблицы) для работы в защищенном режиме. Затем может быть осуществлен переход в защищенный режим и выполнение дальнейших действий.
Лекция №12
1   ...   4   5   6   7   8   9   10   11   ...   15

Похожие:

Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Техническое задание на разработку программного обеспечения, используемого...
Государственное образовательное учреждение высшего профессионального образования Академия народного хозяйства
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Инструкция по установке программного обеспечения ас «Поликлиника»
«Поликлиника» поставляется в виде исполняемых модулей и дополнительного программного обеспечения сторонних производителей на компакт-диске....
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Инструкция программное обеспечение для лазерного гравера Qualitech rdca 0
Система управления лазерным гравером включает в себя материнскую плату, lcd дисплей и программное обеспечение. Данная инструкция...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon 1. Коммерческие условия поставки программного обеспечения
Программное обеспечение Adobe, графические и видео редакторы, издательские системы, средства web-разработки 6
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon 1. Коммерческие условия поставки программного обеспечения
Программное обеспечение Adobe, графические и видео редакторы, издательские системы, средства web-разработки 7
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Техническое задание Предмет закупки: продление лицензий
Программное обеспечение для защиты рабочих мест пользователей от вредоносного программного обеспечения
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Лекция 1
Молчанов А. Ю. Системное программное обеспечение. Лабораторный практикум: – спб.: Питер, 2005. – 284 с
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Вопросы для подготовки к экзамену по профессиональному модулю пм....
Дисциплины: мдк. 09. 01 Установка и настройка системного программного обеспечения компьютерных систем и комплексов
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon 2 2 Ключевые вопросы сопровождения программного обеспечения 152
Программная инженерия и сущность инженерного подхода к созданию программного обеспечения 9
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Задачах программирования лабораторный практикум по дисциплине «Системное...
Методические указания предназначены для подготовки дипломированных специалистов направления 230100 «Информатика и вычислительная...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Порядок действий при утрате/повреждении ключа шифрования программного обеспечения ViPNet Client
Рением «. dst») программного обеспечения ViPNet Client производится в случае утраты ключевого носителя с записанным ключом шифрования...
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Методические рекомендации по выполнению внеаудиторной самостоятельной...
ПМ. 01 Разработка программных модулей программного обеспечения для компьютерных систем
Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения icon Расчетов за услуги связи «Fastcom» версия 12 Руководство системного...
Бпо – Базовое программное обеспечение программное обеспечение фирмы oracle, необходимое для функционирования ппо

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск