Системное программное обеспечение Кыргызско – Российский Славянский Университет Кафедра ИВТ, 3-й курс ИВТ, 5 семестр Лекция 9.

Презентация:



Advertisements
Похожие презентации
Процессоры Intel в защищенном режиме. Недостатки реального режима Невозможно адресовать пространство памяти свыше 1-го Мб Невозможно работать с массивами,
Advertisements

1 ЛЕКЦИЯ 3 ХАРАКТЕРИСТИКА ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ МИКРОПРОЦЕССОРА В реальном режиме работы поддерживается выполнение всего одной программы. Для этого.
Управление процессами Состояния процессов. Управление состояниями процессов.
1 ЛЕКЦИЯ 4 ОБРАБОТКА ПРЕРЫВАНИЙ В ЗАЩИЩЕННОМ РЕЖИМЕ Обработка прерываний в защищенном режиме так же сильно отличается от обработки в реальном режиме, как.
Управление процессами Понятие процесса. Представление процесса в различных операционных системах Старший преподаватель каф. Процессов управления и информационной.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
Системные механизмы Windows. Системные механизмы диспетчеризация ловушек, в т.ч. прерываний, DPC (deferred procedure call), APC (asynchronous procedure.
Учебный курс Основы операционных систем Лекция 2 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Архитектура операционных систем Семестр 2, Лекция 1.
Лекция 3. Исключения и прерывания в встроенных системах.
1 Управление памятью Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Учебный курс Операционные среды, системы и оболочки Лекция 10 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Архитектура ЭВМ и микроархитектура процессора Под архитектурой ЭВМ понимают абстрактное представление вычислительной системы на структурном, схемотехническом.
Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 6 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Формирование адреса при сегментно – страничной организации памяти Виртуальный адрес # Сегмента# Страницы# Слова База стр. табл. # Физической стр.# Слова.
Системы реального времени Лекция 4: процессы. Понятие процесса Процесс - фундаментальное понятие любой операционной системы С помощью процессов происходит.
Лекция 2 Управление задачами Процессы и потоки. Процесс Выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Транксрипт:

Системное программное обеспечение Кыргызско – Российский Славянский Университет Кафедра ИВТ, 3-й курс ИВТ, 5 семестр Лекция 9

План лекции u Многозадачность –Ресурсы задачи –Сегмент состояния задачи –Переключение задач u Литература

Многозадачность u Задача - это "единица измерения" заданий для процессора, которую процессор может выполнять, приостанавливать и осуществлять над ней диспетчеризацию. u В качестве задачи может выполняться прикладная программа, сервис операционной системы, ядро операционной системы, обработчик прерывания или исключения и т.п. u В защищенном режиме архитектура IA-32 предоставляет механизм для сохранения состояния задачи и переключения с одной задачи на другую. u Все команды процессора выполняются в контексте той или иной задачи.

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

Ресурсы задачи Задачу составляют два компонента: u адресное пространство задачи и u сегмент состояния задачи (Task State Segment - TSS).

Ресурсы задачи u В адресное пространство задачи входят доступные ей сегменты кода, данных и стека.

Ресурсы задачи Сегмент состояния задачи хранит состояние регистров (контекст) процессора: u состояние сегментных регистров (селекторы сегментов, формирующие адресное пространство задачи); u состояние регистров общего назначения; u состояние регистра флагов (EFLAGS); u указатель очередной команды (EIP); u значение регистра CR3 (PDBR); u значение регистра LDTR.

Ресурсы задачи u В многозадачных системах TSS предоставляет механизм для связывания (вложения) задач. u Каждая задача идентифицируется селектором соответствующего ей TSS. Этот селектор загружается в регистр задачи (Task Register - TR) при переключении на задачу. u В теневую часть этого регистра загружаются базовый адрес, предел и атрибуты TSS. u Операционная система может предусматривать для каждой задачи свое линейное адресное пространство (свой набор страниц для страничного преобразования), тогда при переключении задачи загружается и регистр CR3 (PDBR), хранящий адрес каталога таблиц для страничного преобразования.

Сегмент состояния задачи u Состояние процессора, необходимое для восстановления задачи, хранится в системном сегменте, называемом сегментом состояния задачи (Task State Segment - TSS).

Сегмент состояния задачи

Назначение специальных полей: u Связь TSS (Link TSS) - содержит селектор TSS предыдущей задачи (обновляется при вызове новой задачи или обработчика исключения/прерывания в новой задаче). Это поле обеспечивает обратное переключение по команде IRET. u Флаг отладки (Debug Trap flag - T) - если выставлен, при переключении на задачу вызывается особый случай отладки. u Базовый адрес карты ввода-вывода (I/O Permission Map Base Address) - содержит 16-битное смещение двоичной карты разрешения ввода-вывода от начала TSS. Эта карта используется в случае выполнения операции ввода-вывода, когда IOPL

Сегмент состояния задачи u Сегмент состояния задачи содержит динамические (обновляемые) и статические (необновляемые) поля u К динамическим относятся поля, соответствующие регистрам общего назначения, сегментым регистрам, регистру флагов, указателю команд EIP, и поле "Связь TSS". u К статическим относятся все остальные поля: селектор LDT, адрес каталога таблиц (PDBR), указатели привилегированных стеков (SS0:SP0, SS1:SP1, SS2:SP2), флаг отладки (T) и базовый адрес карты разрешения ввода-вывода (I/O Permission Map Base Address).

Сегмент состояния задачи u Дескриптор TSS должен находиться в GDT. u Процессор генерирует нарушение общей защиты при попытке переключиться на задачу, селектор которой содержит бит TI=1. u Процессор не поддерживает рекурсию задач, поэтому попытка переключения задач при помощи селектора "занятого TSS" вызывает исключение.

Переключение задач Процессор инициирует переключение задач в следующих случаях: 1. При выполнении межсегментного перехода (FAR JMP) или межсегментного вызова (FAR CALL), когда в качестве селектора указан селектор TSS. 2. При выполнении межсегментного перехода (FAR JMP) или межсегментного вызова (FAR CALL), когда в качестве селектора указан селектор шлюза задачи. 3. При вызове обработчика прерывания или исключения, если ему в IDT соответствует шлюз задачи. 4. При выполнении команды IRET, когда EFLAGS.NT=1.

Переключение задач В процессе переключения процессор выполняет следующие действия: 1. Получает селектор TSS из кода команды (случай 1), из шлюза задачи (случаи 2 и 3), из поля "Связь TSS" текущей задачи (случай 4). 2. Выполняется контроль привилегий: 1.случай 1: max(CPL,RPL)

Переключение задач 5. Выполняется проверка присутствия старого TSS, нового TSS и всех сегментов в новой задаче. 6. Если переключение инициируется JMP или IRET для текущей задачи очищается флаг занятости (в поле типа дескриптора). В случае CALL или вызова обработчика прерывания/исключения флаг занятости в старой задаче остается установленным. 7. Если переключение инициируется IRET, для старой задачи сбрасывается бит вложенной задачи (NT) в регистре флагов. В остальных случаях значение EFLAGS.NT для старой задачи не меняется. 8. Процессор сохраняет контекст процессора в соответствующих полях сегмента состояния старой задачи.

Переключение задач 9. Если переключение инициировано CALL или вызовом обработчика прерывания/исключения, в контексте новой задачи выставляется бит вложенной задачи (EFLAGS.NT=1), а в поле "Связь TSS" новой задачи заносится селектор TSS старой задачи. В противном случае (JMP, IRET), бит остается без изменений. 10. Дескриптор TSS новой задачи помечается как занятый. 11. В регистр задачи (TR) загружается новое значение. 12. Загружается контекст процессора из TSS новой задачи. 13. Выставляется флаг "задача переключена" CR0.TS=1 и начинается выполнение новой задачи.

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

Переключение задач u Поле "Связь TSS" и бит NT регистра флагов обеспечивают вложение задач u Вложение задач происходит при переключении на новую задачу по CALL или вызовом обработчика прерывания/исключения. –При этом в новой задаче выставляется EFLAGS.NT=1 –в поле "Связь TSS" заносится селектор TSS предыдущей задачи u Выполнение команды IRET в новой задаче вызывает обратное переключение на предыдущую приостановленную задачу

Литература u Защищенный режим. Broken Sword,