- •Общие сведения об операционных системах.
- •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).
- •Управление памятью. Общие вопросы.
- •Основные элементы программирования
Обмен сообщениями между процессами.
Этот обмен обеспечивается посредством т.н. почтового ящика. Главное требование – доставка соответствующему адресату (причем правильная доставка).
Протокол (требования):
прием/передача сообщений на пользовательском уровне должны выглядеть как вызовы процедур чтения/записи;
при обращении к процедуре чтения сообщения в случае его отсутствия процесс приостанавливается и ждет появления сообщения;
при обращении к процедуре записи сообщения и отсутствии процесса, ждущего это сообщение, последнее становится в очередь;
процесс, передающий сообщение, приостанавливается и ждет подтверждения.
По сути дела почтовый ящик – набор очередей.
Почтовый ящик – объект, который в качестве данных содержит:
очер_сообщ, ожидающую процессы;
очер_проц, ожидающую сообщения;
очер_проц, ждущих подтверждения.
Методы: чтение/запись.
Уровни планирования ресурсов.
1)Простейший уровень; FIFO
2)Простейший уровень с защитой от тупиков (Deadlock);
3)2) + оптимальное использование ресурсов.
Тупики и борьба с ними.
4 причины (одновременно):
метод ВИ (взаимных исключений);
условие ожидания ресурса, при котором неработающие ресурсы не отпускаются;
отсутствие “перетряхиваемой” системы;
режим круговых ожиданий.
1 Ресурс
1 процесс 2 процесс
2 ресурс
Методы борьбы с тупиками:
алгоритм, не допускающий тупики;
а) априорной защиты (более жесткие);
б) обхода тупиков (более мягкие).
обнаружение и устранение тупиков (либо без потерь данных, либо с минимальными потерями данных).
Алгоритмы априорного удаления тупиков.
Эти алгоритмы так или иначе связаны с разрушением какой-либо из причин возникновения тупиков.
метод устранения 2-ой причины возникновения тупиков;
Основная идея – предоставлять либо все ресурсы системы, либо ни одного.
Недостатки:
нарушаются принципы FIFO;
не оптимально тратятся ресурсы системы.
метод устранения 3-ей причины возникновения тупиков (метод перераспределяемости);
Заключается в том, что система “перетряхивается” (т.е. нерабочие ресурсы возвращаются).
Недостатки:
нарушаются принципы FIFO;
неоптимальное использование ресурсов.
метод устранения 4-ой причины возникновения тупиков (упорядоченные классы);
На самом деле – это режим кругового ожидания.
Ресурсы нумеруются – 1, 2, 3, …
1 Ресурс
1 проц.2 Проц.
2 Ресурс
Ресурс более высокого класса выделяется в том случае, если уже взят ресурс более низкого класса (более высокий класс – условное разделение).
Алгоритм Дейкстры.
Идея заключается в том, что:
Вводится понятие надежного состояния (это состояние, находясь в котором система не зависнет даже при самых неблагоприятных прогнозах).
Переход осуществляется из одного надежного состояния в другое.
Исходные данные для планирования – матрица ресурсов, процессов и т.д.
Каждый раз, когда запрашивается ресурс, то анализируется ситуация при каждом запросе процесса ресурсов; если выделение этого ресурса приводит к другим НС, то ресурс выделяется, в противном случае – нет.
Пример:
проц |
рес |
Макс. число рес. |
P1 |
3 |
6 |
P2 |
2 |
4 |
P3 |
1 |
5 |
Свободно 2 ресурса. Какому процессу их отдать? – второму, т.к. он поработает и отдаст их системе, т.е. здесь имеет место НС.
Достоинства:
+ гибкий алгоритм;
+ позволяет теоретически показать, что процессы сходятся (если хватает ресурсов); если число ресурсов равно хотя бы максимальному числу необходимых ресурсов какого-либо из процессов, то можно продолжить выполнение хотя бы последовательно (в отсутствии многозадачности).
Недостатки:
алгоритм работает для конкретного числа процессов;
если число процессов n, то число ресурсов = n!
Алгоритм Габермана.
Это – графический режим.
2
пр. 1
пр. Вершины –
процессы Дуги - ресурсы
1
рес.
Суть метода
заключается в предоставлении ресурса
до тех пор, пока не образуется цикл в
графе (из рисунка видно, что 3-ий ресурс
не предоставляется первому процессу)
1
рес. 3
рес.
3
пр. 4
пр. 5
пр. 2
рес.
Достоинства:
нет ограничений на количество процессов;
сложность проверки на наличие цикла в графе.