- •Проектирование Операционных Систем
- •Определение ос
- •Промышленная эксплуатация
- •Принцип модульности
- •Принцип функциональной избирательности
- •Принцип перемещаемости
- •Принцип защиты
- •Состояние процессов
- •Переходы между состояниями
- •Классификация процессов
- •Характеристики процессов
- •Определение
- •Классификация ресурсов
- •Интерфейс пользователя
- •Командный интерфейс
- •Примеры командных файлов из операционных систем
- •Эльбрус
- •3. Vm, os/2: rexx (пример аналога команды unix Grep)
- •Графический интерфейс
- •Основные понятия gui
- •Обработка прерываний
- •Подсистемы ос
- •Подсистема управления процессами
- •Долгосрочное планирование
- •Краткосрочное планирование
- •Дескрипторы процессов
- •Искусственное снижение уровня мультипрограммирования
- •Подсистема распределения ресурсов
- •Подсистема управления памятью
- •Два уровня распределения оперативной памяти
- •Задачи распределения памяти
- •Выделение
- •Подсистема управления вводом/выводом
- •Требования к подсистеме управления ввода/вывода:
- •Буферизация ввода вывода
- •Пример реализации ввода/вывода в системе unix
- •Пример реализации ввода/вывода в ос vm
- •Организация виртуальной памяти
- •Структуризация адресных пространств
- •Схемы страничной структуризации.
- •Схемы сегментной структуризации.
- •Сегментно-страничная структуризация
- •Требования к вп
- •Задачи управления виртуальной памятью
- •Задача размещения
- •Задача перемещения
- •Задача взаимного исключения
- •Задача «производитель-потребитель»
- •Модификации данной задачи
- •Задача «читатели-писатели»
- •Задача «обедающие философы»
- •Механизмы синхронизации Критерии оценки механизмов синхронизации
- •Архитектура механизмов синхронизации
- •Синхронизация с помощью прерываний
- •Синхронизация при помощи переменной состояния
- •Семафоры
- •Простые семафоры
- •Множественные семафоры
Обработка прерываний
Обработка прерываний – функция ОС. Представляет собой последовательность действий:
-
Восприятие запроса на прерывание.
-
Сохранение контекста прерванного процесса (адрес команды, регистры, состояние процессора, адресное пространство).
-
Передача управления обработчику прерывания.
-
Обработка прерывания.
-
Восстановление контекста ранее прерванного процесса.
-
Возобновление выполнения ранее прерванного процесса.
Подсистемы ос
Мы будем рассматривать 4 подсистемы:
-
Подсистемы управления процессами.
-
Подсистемы распределения ресурсов.
-
Подсистемы управления памятью.
-
Подсистемы управления вводом/выводом.
Подсистема управления процессами
В большинстве ОС принята следующая двухуровневая схема:
-
Планирование процессов. (Долгосрочное планирование)
-
Диспетчеризация процессов. (Краткосрочное планирование)
Такое разделение построено на частотном принципе ос.
По принципу виртуализации, планированию подвергается не виртуальный процесс, а виртуальная машина в целом.
Будем использовать термин «работа» для обозначения выполняющегося задания, задачи, Приложения, процесса и тд.
Выполнение работы заключаться в исполнении ее программы.
Долгосрочное планирование
Предметом долгосрочного планирования является работа. Любую работу можно рассматривать как совокупность некоторых состояний. Будем использовать тот же перечень состояний, что и для процесса.
-
Состояние порождения
Планировщик создает новую работу (или виртуальную машину)
-
Резервируются все ресурсы указанные в дескрипторе работы
-
Создается контекст
-
Создается описание работы
-
Состояние готовности (предоставленные все ресурсы кроме ЦПУ)
Деятельность виртуального процессора по исполнению каждого элементарного действия моделирует программа-диспетчер.
-
Активное состояние
Элементарные действия исполняются на виртуальном процессоре.
-
Состояние окончание
Планировщиком выполняются действия по обработки окончания работы:
-
Обработка учетной информации.
-
Вывод результатов.
-
Освобождение ресурсов.
-
Уничтожение контекста.
Помимо прочего программа планировщик содержит компоненты
-
ввода описания работы.
-
Постановки работы в очередь.
-
Программа обработки выходных очередей.
Краткосрочное планирование
Предметом краткосрочного планирования является процесс.
|
Создание процесса |
Завершение процесса |
Перевод в состояние ожидания |
Оповещение |
OS/VS |
Макрокоманда ATTACH |
Макрокоманда DETACH |
WAIT |
POST |
VM |
LOGON |
LOGOFF |
WAIT |
POST |
Unix |
fork() |
exit() |
wait() |
- ? - |
Windows |
CreateProcess() |
ExitProcess() |
WaitForSingleObject() |
SetEvent() |
Краткосрочное планирование является реализацией целей поставленных на этапе долгосрочного планирования. Выполняет краткосрочное планирование программа-диспетчер.
Планировщик формирует очереди, а диспетчер их обрабатывает.