37. Структура сетевой ос (одноранговые, с выделенными серверами, для рабочих групп и ос для сетей масштаба предприятия)




Название37. Структура сетевой ос (одноранговые, с выделенными серверами, для рабочих групп и ос для сетей масштаба предприятия)
страница8/26
Дата публикации17.03.2013
Размер1.75 Mb.
ТипДокументы
odtdocs.ru > География > Документы
1   ...   4   5   6   7   8   9   10   11   ...   26
^

Средства вызова подпрограмм и задач


Операционная система, как однозадачная, так и многозадачная, должна предоставлять задачам средства вызова подпрограмм операционной системы, библиотечных подпрограмм, а также иметь средства для запуска задач, а при многозадачной работе средства быстрого переключения с задачи на задачу. Вызов подпрограммы отличается от запуска задачи тем, что в первом случае адресное пространство остается тем же (таблица LDT остается прежней), а при вызове задачи адресное пространство полностью меняется.

Вызов подпрограмм без смены кодового сегмента в защищенном режиме процессора i386 производится аналогично вызову в реальном режиме с помощью команд JMP и CALL.

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

Первый способ состоит в непосредственном указании в поле команды JMP или CALL селектора сегмента, содержащего код вызываемой подпрограммы, а также смещение в этом сегменте адреса начала подпрограммы.



Рис. 2.25. Непосредственный вызов подпрограммы

Схема такого вызова приведена на рисунке 2.25. Здесь и далее показан только этап получения линейного адреса в виртуальном пространстве, а следующий этап (подразумевается, что механизм поддержки страниц включен) преобразования этого адреса в номер физической страницы опущен, так как он не содержит ничего специфического по сравнению с доступом к сегменту данных, рассмотренному выше. Разрешение вызова происходит в зависимости от значения поля C в дескрипторе сегмента вызываемого кода. При C=0 вызываемый сегмент не считается подчиненным, и вызов разрешается, только если уровень прав вызывающего кода не меньше уровня прав вызываемого сегмента. При C=1 вызываемый сегмент считается подчиненным и допускает вызов из кода с любым уровнем прав доступа, но при выполнении подпрограмма наделяется уровнем прав вызвавшего кода.



Рис. 2.26. Формат дескриптора шлюза вызова подпрограммы



Рис. 2.27. Вызов подпрограммы через шлюз вызова

Очевидно, что первый способ непригоден для вызова функций операционной системы, имеющей обычно нулевой уровень прав, из пользовательской программы, работающей, как правило, на третьем уровне. Поэтому процессор i386 предоставляет другой способ вызова подпрограмм, основанный на том, что заранее определяется набор точек входа в привилегированные кодовые сегменты, и эти точки входа описываются с помощью специальных дескрипторов - дескрипторов шлюзов вызова подпрограмм. Этот дескриптор принадлежит к системным дескрипторам, и его структура отличается от структуры дескрипторов сегментов кода и данных (рисунок 2.26). Схема его использования приведена на рисунке 2.27. Селектор из поля команды CALL используется для указания на дескриптор шлюза вызова подпрограммы в таблицах GDT или LDT. Для использования этого дескриптора вызывающий код должен иметь не меньший уровень прав, чем дескриптор, но если дескриптор шлюза доступен, то он может указывать на дескриптор сегмента вызываемого кода, имеющий более высокий уровень, чем имеет шлюз, и вызов при этом произойдет. При определении адреса входа в вызываемом сегменте смещение из поля команды CALL не используется, а используется смещение из дескриптора шлюза, что не дает возможности задаче самой определять точку входа в защищенный кодовый сегмент.

При вызове кодов, обладающих различными уровнями привилегий, возникает проблема передачи параметров между различными стеками, так как для надежной защиты задачи различного уровня привилегий имеют различные сегменты стеков. Селекторы этих сегментов хранятся в контексте задачи - сегменте TSS (Task State Segment). Если вызывается подпрограмма, имеющая другой уровень привилегий, то из текущего стека в стек уровня доступа вызываемого сегмента копируется столько 32-разрядных слов, сколько указано в поле счетчика слов дескриптора шлюза.

Структура сегмента TSS задачи приведена на рисунке 2.28. Контекст задачи должен содержать все данные для того, чтобы можно было восстановить выполнение прерванной в произвольный момент времени задачи, то есть значения регистров процессора, указатели на открытые файлы и некоторые другие, зависящие от операционной системы, переменные. Скорость переключения контекста в значительной степени влияет на скоростные качества многозадачной операционной системы. Процессор i386 производит аппаратное переключение контекста задачи, хранящегося в сегменте TSS. Как видно из рисунка, сегмент TSS имеет фиксированные поля, отведенные для значений регистров процессора, как универсальных, так и некоторых управляющих (например LDTR и CR3). Для описания возможностей доступа задачи к портам ввода-вывода процессор использует в защищенном режиме поле IOPL (Input/Output Privilege Level) в своем регистре EFLAGS и карту битовых полей доступа к портам. Для получения возможности выполнять команды ввода-вывода выполняемый код должен иметь уровень прав не ниже значения поля IOPL. Если же это условие соблюдается, то возможность доступа к порту с конкретным адресом определяется значением соответствующего бита в карте ввода-вывода сегмента TSS (карта состоит из 64 Кбит для описания доступа к 65536 портам).


Битовая карта ввода/вывода (БКВВ)

(
(

8 Кбайт

Дополнительная информация ОС



Относительный адрес БККВ

0

. . .

0

T

64

0

. . .

0

Селектор LDT





60

0

. . .

0



GS





5C

0

. . .

0



FS





58

0

. . .

0



DS





54

0

. . .

0



SS





50

0

. . .

0



CS





4C

0

. . .

0



ES





48

EDI

44

ESI

40

EBP

3C

ESP

38

EBX

34

EDX

30

ECX

2C

EAX

28

EFLAGS

24

EIP

20

CR3

1C

0

. . .

0

SS уровня 2

18

ESP2

14

0

. . .

0

SS уровня 1

10

ESP1

C

0

. . .

0

SS уровня 0

8

ESP0

4

0

. . .

0

Селектор TSS возврата

0

^ Рис. 2.28. Структура сегмента TSS

Кроме этого, сегмент TSS может включать дополнительную информацию, необходимую для работы задачи и зависящую от конкретной операционной системы (например, указатели открытых файлов или указатели на именованные конвейеры сетевого обмена). Включенная в этот сегмент информация автоматически заменяется процессором при выполнении команды CALL, селектор которой указывает на дескриптор сегмента TSS в таблице GDT (дескрипторы этого типа могут быть расположены только в этой таблице). Формат дескриптора сегмента TSS аналогичен формату дескриптора сегмента данных.



Рис. 2.29. Непосредственный вызов задачи

Как и в случае вызова подпрограмм, имеется две возможности вызова задачи - непосредственный вызов через указание селектора сегмента TSS нужной задачи в поле команды CALL и косвенный вызов через шлюз вызова задачи. Как и при вызове подпрограмм, непосредственный вызов возможен только в случае, если вызывающий код обладает уровнем привилегий, не меньшим, чем вызываемая задача. При вызове через шлюз (который может располагаться и в таблице LDT) достаточно иметь права доступа к шлюзу. Непосредственный вызов задачи показан на рисунке 2.29. При переключении задач процессор выполняет следующие действия:

1) Выполняется команда CALL, селектор которой указывает на дескриптор сегмента типа TSS.

2) В TSS текущей задачи сохраняются значения регистров процессора. На текущий сегмент TSS указывает регистр процессора TR, содержащий селектор сегмента.

3) В TR загружается селектор сегмента TSS задачи, на которую переключается процессор.

4) Из нового TSS в регистр LDTR переносится значение селектора таблицы LDT в таблице GDT задачи.

5) Восстанавливаются значения регистров процессора (из соответствующих полей нового сегмента TSS).

6) В поле селектора возврата заносится селектор сегмента TSS снимаемой с выполнения задачи для организации возврата к прерванной задаче в будущем.

Вызов задачи через шлюз происходит аналогично, добавляется только этап поиска дескриптора сегмента TSS по значению селектора дескриптора шлюза вызова.

Использование всех возможностей, предоставляемых процессорами Intel 80386, 80486 и Pentium, позволяет организовать операционной системе высоконадежную многозадачную среду.


^ 47. Управление вводом-выводом. Физическая организация устройств ввода-вывода

Одной из главных функций ОС является управление всеми устройствами ввода-вывода компьютера. ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы. В целях развития интерфейс должен быть одинаковым для всех типов устройств (независимость от устройств).
1   ...   4   5   6   7   8   9   10   11   ...   26

Похожие:

Инструкция по установке инфо-бухгалтер 7 сетевая версия для Windows 1
Проверка настроек клиента для сетей Microsoft, адаптера сетевой карты и сетевых протоколов для Windows 95/98 13

Краткое содержание Диалог представляет собой вымышленную летопись...

37. Структура сетевой ос (одноранговые, с выделенными серверами, для рабочих групп и ос для сетей масштаба предприятия) iconКорпоративная информационная система на программных продуктах фирмы 1С
Функционирование современного предприятия невозможно без наличия эффективного инструмента контроля и управления предприятием автоматизированной...

Урока. 1этап
«Социальная структура общества». Скажите, пожалуйста, из каких групп состоит общество? Как они называются? Приведите примеры. Сегодня...

Б отпуске электроэнергии в сеть и отпуске электроэнергии из сети...
Об отпуске электроэнергии в сеть и отпуске электроэнергии из сети сетевой компании по уровням напряжения, используемых для ценообразования,...

А. И. Приймак Рабочий учебный план для подготовки новых рабочих по профессии «Штукатур»
Настоящий пакет документов предназначены для подготовки рабочих по профессии «Штукатур»

Экономика предприятия Смирнов Юрий Георгиевич Основные черты предприятия
Обладает комплексом средств производства. Совокупность этих средств для каждого вида предприятия, произодящего продукцию, имеют свою...

5: "Социальная структура общества"
В широком смысле под социальной структурой понимается строение общества в целом, система связей между всеми его основными элементами....

Основы построения сетей
Способ определения того, какая из рабочих станций сможет следующей использовать канал связи

А. И. Приймак Рабочий учебный план для подготовки новых рабочих по...
Настоящий пакет документов предназначены для подготовки рабочих по профессии «Столяр строительный»

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница