- •Общие сведения об операционных системах.
- •1.2. Становление операционных систем
- •1.2.1. Режим пакетной обработки
- •1.2.2. Режим разделения времени
- •1.2.3. Режим реального времени
- •1.3. Классификация ос
- •1.3.1. Дос (Дисковые Операционные Системы)
- •1.3.3. Системы виртуальных машин
- •1.3.4. Системы реального времени
- •1.3.5. Кросс-загрузчики
- •1.3.6. Системы промежуточных типов
- •Сравнение операционной среды
- •2. Краткий обзор операционных систем.
- •2.2.Архитектура unix.
- •2.3.Архитектура ос unix
- •2.6. Основные утилиты ос unix
- •3.Инструментальные средства программирования
- •3.1. Компилятор
- •3.1.1. Стадии компиляции:
- •Ос рв (Операционные системы реального времени).
- •4.1. Достоинства:
- •4.2. Преимущества:
- •Векторные платы
- •5.2.Ядро ос Helios:
- •7.2.Структура Win 95
- •7.3. Сpавhительhая хаpаkтеpистиkа
- •7.3.1. Тpетье кольцо.
- •7.3.2. Hулевое кольцо.
- •7.6. Системные операции unix
- •7.6.1. Основные особенности:
- •8. Однопользовательские операционные системы.
- •8.1. Среда выполнения.
- •9. Многозадачные и многопользовательские опрерационные системы
- •9.1. Системы коллективного пользования машин.
- •Синхронизация и другие методы взаимодействия задач. 7.3.1. Синхронный ввод/вывод в однозадачных системах
- •7.3.2. Синхронный ввод/вывод в многозадачных системах
- •Архитектура Фон-Неймана
- •Механизмы переключения контекстов.
- •1 Прогр.
- •При этом пользовательские задачи должны иметь возможность обмениваться данными с модулями ос и друг с другом459.4.1. Кольца защиты
- •Функции Setjmp() и Longjmp(). Нелокальные переходы Setjmp.
- •Супервизор.
- •Асинхронные методы замены контекста.
- •Запрет прерывания и маскирование прерывания.
- •Повторная входимость.
- •4.1. Выгоды многозадачности и многопроцессности
- •Состояния процессов.
- •Структурная схема ядра.
- •Стратегия планирования.
- •Обмен сообщениями между процессами.
- •1 Ресурс
- •1 Ресурс
- •2 Проц.
- •2 Ресурс
- •Алгоритм обнаружения и устранения дедлоков (deadlocks).
- •Управление памятью. Общие вопросы.
- •Основные элементы программирования
Архитектура Фон-Неймана
SS
DS
стандартная
информация
CS
PSP Префиксный
сегмент, служащий для связи задачи с
ОС
нестандартная
информация
PSP содержит начало CS, DS, SS, код окончания задачи, буфер обмена с файлами и т.д.
а) позволяла более быстро выполнять программу;
б) позволяла задать контекст в наиболее минимальном объеме (задать CS:IP и DS с помощью РОНов);
в) в многопроцессорной системе Фон-Неймановская архитектура не является удобной, т.к. действия выполняются последовательно, а не параллельно.
! Для реальных задач чистая Фон-Неймановская архитектура не подходит.
Таким образом, даже самая простая ОС должна содержать простейший механизм переключения контекстов.
Механизмы переключения контекстов.
МПК
Синхронные
методы Асинхронные
методы
активная задача знает более сложные механизм,
в какой момент осуществляется чем у синхронных
переключение, т.е. это переключение генерирует сама задача
Вызов процедуры Прерывания
Сопрограммная замена
контекста Исключения
(МОС)
Вызов
супервизора
Замечания: любая задача, попадая на уровень ядра приобретает статус процесса; каждому процессу сопоставляется стек, в который записываются данные, соответствующие контексту этого процесса; далее при работе процесса поддерживается обновление стека информацией; это позволяет заморозить/разморозить задачу.
Существуют 2 пути:
полностью написать эту систему;
использовать программный трюк, который позволял бы использовать возможности однопользовательской ОС для создания многопользовательской ОС.
Вызов подпрограммы:
В однопользовательских ОС имеется всего один стек для выполнения программ.
2 требования к организации подпрограммы:
параметры процедуры передаются по значению, а обратно передается результат;
процедуры могут вызываться рекурсивно в явном виде или неявном.
Пусть есть 2 подпрограммы:
P (основная программа) Q (вызываемая программа)
Для программы P:
подготавливаются параметры для передачи;
сохраняется контекст программы для возвращения;
замена контекста P на контекст Q.
Для программы Q:
подготавливаются параметры для ее контекста;
замена контекста Q на контекст P.
Примечание: параметры передаются через стек.
BP В
SS:SP
CS:IP
Адрес возврата 24
байт Состояние
стека
y
x
Попрограмма(x, y), например, Pascal, а в Си – наоборот
При дальнем вызове до y в Pascal’e:
mov ax, [bp+6] ; 4 байта – дальний вызов (сегмент и смещение)
bp+2 – первый адрес
Замечание:
не всегда удобно использовать переменные (лучше использовать указатель на эту переменную); если используется указатель на переменную, то необходимо помнить:
les si, ук_х ; ES:SI – CS и ES:[SI+2] - IP
a) Pascal запоминает все РОНы (РОН – Регистр Общего Назначения);
б) Си запоминает только те регистры, которые участвуют в подпрограмме;
в) Assembler вообще ничего не запоминает.
Используя язык Си, следует запоминать дополнительно значения всех регистров в той технологии, которая будет использована в переключении контекстов.
Вызов сопрограммы:
2 сложности (проблемы):
окончание подпрограммы, имеющей статус сопрограммы;
( схема окончания
работы подпрограммы в стеке на языке
Assembler)
ENDP
сохранение контекста каждой сопрограммы (где-нибудь в ядре) и развитие изменения контекста каждой сопрограммы;
Задача 1 Задача 2 Задача 3
CS:IP
Пусть мы написали 2 функции:
создание нового процесса;
Дескриптор – указатель на область памяти, где хранятся данные о контексте.
переключение от “старого” процесса к “новому” (дескр_стар, дескр_нов);
ее подфункции:
а) модернизация точки возврата “старого” процесса;
б) переключение на “новый” процесс;
@ - точка возврата
@ находится по адресу SS:SP