
- •Кафедра программного обеспечения информационных технологий
- •ТЕМА 1
- •1.1 Введение в операционные системы
- •1.1.1 Понятие операционной системы
- •1.1.2 Поколения ОС
- •1.1.3 Функции и свойства ОС
- •1.1.4 Характеристики современных ОС
- •1.1.5 Архитектура микроядра
- •1.1.6 Многопоточность
- •1.1.7 Симметричная многопроцессорность
- •1.1.8 Распределенные ОС
- •1.1.9 Объектно-ориентированный дизайн
- •1.1.10 Концепция ОС на основе микроядра
- •1.1.11 Принципы построения ОС
- •ТЕМА 2
- •2.1 Основы операционных систем
- •2.1.1 Понятие процесса
- •2.1.2 Понятие ресурса
- •2.1.3 Концепция виртуализации
- •2.1.5 Дисциплины распределения ресурсов
- •2.1.6 Концепция прерывания
- •ТЕМА 3
- •3.1 Процессы
- •3.1.1 Состояние процессов
- •3.1.2 Описание процессов
- •3.1.2.1 Структуры управления процессами
- •3.1.2.2 Управление процессами
- •3.1.3 Концепция потока как составной части процесса
- •3.1.4 Многопоточность
- •3.1.5 Однопоточная модель процесса
- •3.1.6 Многопоточная модель процесса
- •3.1.7 Функциональность потоков
- •3.1.8 Взаимодействие процессов
- •3.1.8.1 Задача взаимного исключения
- •3.1.8.2 Обобщенная задача взаимного исключения
- •3.1.9 Синхронизирующие примитивы (семафоры). Применение семафоров для решения задачи взаимного исключения
- •3.1.10 Задача “производитель-потребитель”
- •3.1.10.1 Общие семафоры
- •3.1.10.2 Задача “производитель-потребитель”, буфер неограниченного размера
- •3.1.10.3 Задача “производитель-потребитель”, буфер ограниченного размера
- •3.1.11 Взаимодействие через переменные состояния
- •3.1.12 Монитороподобные средства синхронизации
- •3.1.12.1 Введение
- •3.1.12.2 Механизм типа «критическая область»
- •3.1.12.3 Механизм типа «условная критическая область»
- •3.1.12.4 Вторая модификация механизма «критическая область» (модификация второго рода)
- •ТЕМА 4
- •4.1 Ресурсы
- •4.1.1 Распределение ресурсов. Проблема тупиков
- •4.1.2 Алгоритм банкира
- •4.1.3 Применение алгоритма банкира
- •ТЕМА 5
- •5.1 Память. Управление памятью
- •5.1.1 Требования к управлению памятью
- •5.1.2 Схемы распределения памяти
- •5.1.3 Система двойников при распределении памяти
- •ТЕМА 6
- •6.1 Организация виртуальной памяти
- •6.1.1 Структуризация адресного пространства виртуальной памяти
- •6.1.2 Задачи управления виртуальной памятью
- •6.1.2.1 Задача размещения
- •6.1.2.2 Задача перемещения
- •6.1.2.3 Задача преобразования
- •6.1.2.4 Задача замещения
- •ТЕМА 7
- •7.1 Планирование в операционных системах
- •7.1 Типы планирования процессора
- •7.2 Алгоритмы плинирования
- •7.3 Традиционное планирование в Unix
- •ТЕМА 8
- •8.1 Управление вводом-выводом и файлами
- •8.1.2 Развитие функций ввода-вывода
- •8.1.3 Управление ОС и устройствами ввода-вывода
- •8.1.4 Модели организации ввода-вывода
- •ТЕМА 9
- •9.1.1 Сегментация памяти
- •9.1.1.1 Сегментация памяти в процессорах 8086
- •9.1.1.3 Дескриптор сегмента
- •9.1.1.4 Дескрипторные таблицы
- •9.1.1.5 Селекторы сегментов в защищенном режиме
- •9.1.1.6 Локальные дескрипторные таблицы
- •9.1.1.7 Особенности сегментации
- •9.1.2 Страничная организация памяти
- •9.1.2.1 Страничный дескриптор
- •9.1.2.2 Разрешение и запрещение страничного преобразования
- •9.1.3 Организация защиты при работе процессора в защищенном режиме
- •9.1.3.1 Привилегированные команды
- •9.1.3.2 Защита доступа к данным
- •DPL- Descriptor Privilege Level
- •9.1.3.3 Защита сегмента кода
- •9.1.3.4 Определение текущего уровня привилегий
- •9.1.3.5 Передача управления между уровнями привилегий
- •9.1.3.6 Подчиненные сегменты
- •9.1.3.7 Шлюзы вызова
- •9.1.4 Поддержка многозадачности в процессорах архитектуры IA-32
- •9.1.4.1 Сегмент состояния задачи
- •9.1.4.2 Дескриптор сегмента TSS
- •9.1.4.3 Сегмент состояния задач TSS
- •9.1.4.4 События, которые могут вызвать переключение задачи
- •9.1.4.5 Формат шлюза задач
- •9.1.4.7 Особые случаи при переключении задач
- •9.1.4.8 Вложенность задач
- •9.1.4.9 Двоичная карта разрешения ввода-вывода
- •9.1.5 Прерывания и особые случаи
- •9.1.5.1 Прерывания и особые случаи в процессоре 8086
- •9.1.5.2 Прерывания в защищенном режиме
- •9.1.5.3 Дескрипторная таблица прерываний
- •9.1.5.4 Шлюз ловушки
- •9.1.5.5 Шлюз прерывания
- •9.1.5.6 Шлюз задачи
2.При загрузке селекторов в сегментные регистры данных тип дескриптора должен разрешать считывание из сегмента. Только выполняемые дескрипторы для этих регистров не допускаются.
3.При загрузке регистра SS (сегментный регистр стека) в сегменте должны быть разрешены операции чтения и записи.
4.При загрузке регистра СS сегмент должен быть обязательно выполняе-
мым.
5.Если эти проверки кончились успешно, то процессор анализирует бит присутствия в дескрипторе, и только если этот бит равен 1, разрешается загрузка сегментного регистра и загрузка соответствующего дескриптора в теневой регистр. В противном случае, процессор инициализирует прерывания по особым случаям и загрузка селектора не производится. Когда выбираемый селектором дескриптор находится вне предела дескрипторной таблицы или дескриптор имеет неверный тип, процессор формирует нарушение общей защиты (прерывание 13h). Если селектор отмечен как не присутствующий, то генерируется нарушение неприсутствия (прерывание 11h). Если ошибка связана с регистром SS, то генерируется прерывание 12h. При генерировании нарушений, ошибочный селектор включается в стек, и процедуры обработки особых случаев могут выяснить причину нарушения. В отличие от процессора 8086 в защищенном режиме по селектору не возможно узнать какое адресное пространство определяют адресные регистры. Селектор определяет только номер дескриптора, описывающего адресное пространство.
Для упрощения анализа дескриптора и с целью допущения инициирования заведомо запрещенных действий имеется несколько команд, через которые можно получить информацию о дескрипторах.
LARreg16/32, reg16/mem16 |
Load Access Rights Загрузка прав доступа |
||
LSL reg16/32, reg16/mem16 |
Load Segment LimitЗагрузка предела |
||
VERR |
reg16/mem16 |
Verity for Read |
Проверка на считыва- |
ние |
|
|
|
VERW |
reg16/mem16 |
Verity for Write |
Проверка на запись |
При выполнении этих команд процессор учитывает уровень привилегий текущих программ и тех сегментов, которые проверяются с помощью этих команд. При нарушении прав привилегий информация не возвращается.
9.1.1.6 Локальные дескрипторные таблицы
Локальная дескрипторная таблица представляет собой массив восьмибайтных дескрипторов.
В любой момент времени процессор работает лишь с одной LDT, а при переключении задач изменяется и активная LDT, т.к. дескрипторы, описывающие
117