- •Проектирование Операционных Систем
- •Определение ос
- •Промышленная эксплуатация
- •Принцип модульности
- •Принцип функциональной избирательности
- •Принцип перемещаемости
- •Принцип защиты
- •Состояние процессов
- •Переходы между состояниями
- •Классификация процессов
- •Характеристики процессов
- •Определение
- •Классификация ресурсов
- •Интерфейс пользователя
- •Командный интерфейс
- •Примеры командных файлов из операционных систем
- •Эльбрус
- •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() |
Краткосрочное планирование является реализацией целей поставленных на этапе долгосрочного планирования. Выполняет краткосрочное планирование программа-диспетчер.
Планировщик формирует очереди, а диспетчер их обрабатывает.
