
- •Архитектура операционной системы
- •1. Монолитные системы
- •2. Многоуровневые системы
- •3. Виртуальные машины
- •Архитектура, основанная на ядре
- •Режим ядра и пользовательский режим
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура
- •Процессы и потоки
- •Реализация процессов
- •Назначение потоков
- •Реализация потоков
- •Планирование Процессов
- •Пример 1. Планирование в Windows 2000
- •Пример 2. Планирование в unix
- •Цели планирования
- •Схемы планирования
- •Взаимодействие процессов и потоков
- •Состояние состязания
- •Критические области
- •Взаимоисключение с активным ожиданием
- •Семафоры
- •Мьютексы
- •Мониторы
- •Взаимные блокировки
- •Основные направления решения проблемы тупиков
- •Предотвращение тупиков
- •Обнаружение тупика
- •Восстановление после тупика
- •Организация мультизадачности ос
- •Опрос (проверка флагов)
- •Исключения
- •Прерывания
- •Классификация прерываний
- •3 Класса прерываний:
- •Механизм прерываний
- •Приоритеты прерываний
- •Организация памяти
- •Функции ос по управлению памятью
- •Стратегии управления памятью
- •Фрагментация памяти
- •Способы борьбы с фрагментацией:
- •Типы адресов памяти
- •Учет свободных и занятых областей памяти
- •Учет памяти с помощью битовых карт
- •Учет памяти с помощью связных списков
- •Виртуальная память
- •Файлы подкачки
- •Вопросы по модулю №1
Основные направления решения проблемы тупиков
Предотвращение.
Обход.
Обнаружение (дает возможность устранить тупик)
Восстановление после тупика (для завершения процессов, попавших в тупик и освобождения занятых ими ресурсов).
Предотвращение тупиков
Нужно не допускать наличия необходимых условий возникновения тупика.
Для предотвращения тупика предлагается следующая стратегия:
Ни один процесс не начинается пока не получит все необходимые ресурсы.
Не получив дополнительных ресурсов, процесс освобождает занятые, а потом запрашивает всё сразу.
Если процессу выделены ресурсы одного типа, то он может запрашивать ресурсы только другого типа.
Недостатки такой стратегии:
Повышается вероятность бесконечного откладывания.
Теряются результаты работы процесса при освобождении ресурсов.
Чрезмерное усложнение программ.
Обнаружение тупика
Это установка факта тупиковой ситуации и определение процессов и ресурсов, вовлеченных в тупик, что требует дополнительных временных и ресурсных затрат.
Восстановление после тупика
Для выхода из тупика нужно нарушить любое из необходимых условий его возникновения.
При этом несколько процессов полностью потеряют наработанную информацию.
Сложность восстановления системы вследствие следующих фактов:
Первое время не очевидно, что система в тупике.
В большинстве ОС нет эффективных средств для останова и вывода процесса из системы. Тем более, что некоторые из них должны работать непрерывно.
Применение таких средств требует значительных временных затрат пользователя.
В современных системах восстановление после тупика обычно выполняется принудительным выводом процесса из системы. Этот процесс теряет всю наработанную информацию, зато другие получают возможность работать дальше.
Большинство ОС потенциально страдают от взаимоблокировок, которые даже не обнаруживаются, не говоря уже об автоматическом выходе из тупика. Тем не менее, часть очевидных взаимных блокировок ОС стараются предотвратить, т.е. программные модули стараются писать так, чтобы тупик не мог возникнуть. При его возникновении и обнаружении используют различные методы выхода из тупика.
Методы выхода из тупика:
Принудительная выгрузка ресурса. Принудительно отбирают ресурс у его владельца и отдают другому процессу.
Восстановление путем уничтожения процессов. Простейший, но и грубейший способ выхода. Один из процессов, находящихся в состоянии блокировки, уничтожается, чтобы другие могли продолжить работу.
Восстановление через откат. Если есть большая вероятность взаимной блокировки, процессы создают контрольные точки – в определенные моменты записывают состояние процесса в файл, чтобы его можно было восстановить с этой точки. В случае возникновения тупика процесс запускается вновь с ближайшей контрольной точки.
Организация мультизадачности ос
Эффективное использование ресурсов компьютера достигается за счет применения в ОС мультизадачности (multitasking).
Мультизадачность – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. При этом программы используют совместно не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода.
Рассмотрим 3 способа организации мультизадачности:
Опрос.
Исключения.
Прерывания.