- •Тема 1. История развития операционных систем. Типы операционных систем.
- •1. Понятие и эволюция операционных систем
- •1.1. Определение операционной системы
- •1.2. История развития операционных систем
- •Понятие и эволюция операционных систем
- •1.1 Определение операционной системы
- •1. 2 История развития операционных систем
- •Тема 2. Основные характеристики и принципы построения операционных систем.
- •1. Основные характеристики ос
- •2. Принципы построения ос
- •Основные характеристики ос
- •Принципы построения ос
- •Тема 3. Общая структура программного обеспечения и операционных систем эвм
- •Структура ос.
- •Управление процессами
- •Управление основной памятью
- •Управление внешней памятью
- •Сервисы операционных систем
- •Особенности методов построения
- •Тема 4.Диаграмма перехода процесса
- •Основные состояния процесса:
- •Дополнительные состояния процесса:
- •Операции над процессами
- •Основная концепция обработки прерываний
- •Тема 5. Контекст процесса и переключение контекста
- •Переключения контекста в ec эвм
- •Тема 6. Синхронизация и кооперация процессов
- •If q(s)? 0 очередь не пуста?
- •Тема 7. Тупики: условия возникновения тупиков, предотвращения тупиков
- •Модуль 5. Управление основной памятью
- •Тема 8.Управление реальной памятью
- •Тема 9. Понятие виртуальной памяти
- •Концепция виртуальной памяти
- •1.Признак обращения 0 - было
- •2.Признак модификации записи 0 - неизменен.
- •Тема 10. Страничная организация. Сегментная организация. Странично-сегментная организация. Двухуровневая страничная организация
- •Динамическая страничная организация
- •Сегментная организация виртуальной памяти
- •Комбинированная странично-сегментная организация памяти
- •Двухуровневая страничная организация
- •Тема 11. Управление процессорами и заданиями в однопроцессорном вычислительном комплексе. Алгоритмы планирования процессов
- •Тема 12. Управление процессорами и заданиями в мультипроцессорном вычислительном комплексе
- •Решение фирмы Сompaq?
- •Тема 13.Управление периферийными устройствами. Эволюция систем ввода-вывода, каналы ввода вывода. Регистры и команды ввода вывода.
- •Организация программного обеспечения ввода-вывода
- •Тема 14.Система управления файлами
- •Система управления файлами
- •Модуль 8. Управление данными
- •Тема 15. Способы доступа и организации файлов. Распределение файлов на диске
- •Способы доступа и организации файлов
- •Управление внешней памятью
- •Способы распределения памяти на диске
- •Тема 16. Требования и тенденции построения ос
- •Требования, предъявляемые к ос 90-х годов
- •Тенденции в структурном построении ос
- •Тема 17. Unix и ms Windows nt
Тема 7. Тупики: условия возникновения тупиков, предотвращения тупиков
Первая проблема, которую мы рассмотрели, возникающая для асинхронных параллельных процессов, работающих с общим ресурсом - это проблема синхронизации процессов.
Вторая проблема - это проблема тупика, возникающая при выполнении асинхронных параллельных процессов, работающих с монопольными ресурсами (взаимоблокировка). Тупиком называется ситуация, когда процесс ждет наступления события (выделения ресурса), которое никогда не произойдет или может бесконечно откладываться.
Для возникновения тупика необходимо наличие 4 условий:
1.Взаимоисключение, когда процессы требуют монопольного предоставления ресурса.
2.Ожидание дополнительного ресурса, когда процессы удерживают ресурсы и требуют дополнительных ресурсов.
3.Неперераспределяемости ресурсов, когда ресурсы нельзя отобрать у процессов до завершения их работы.
4.Кругового ожидания, когда существует кольцо процессов, удерживающих ресурсы друг друга.
Для решения проблемы тупиков должны решаться следующие задачи:
1. Предотвращение тупиков:
Путем исключения одного из необходимых условий возникновения тупиков, кроме условий взаимоисключения (это объективное условие).
Условие ожидания дополнительных ресурсов можно нарушить, если потребовать, чтобы процессы запрашивали сразу все ресурсы. (Недостаток - снижение уровня мультипрограммирования и нерациональное использование ресурсов).
Условие неперераспределяемости можно нарушить, если потребовать, чтобы процесс, который не получил дополнительных ресурсов, сам освобождал удерживаемые.
Условие кругового ожидания можно предотвратить, если процессы запрашивают ресурсы в заранее определенном порядке, то есть ресурсы имеют уникальные упорядоченные номера, которые распределяются в соответствии с некоторым планом (планирование распределения ресурсов).
Путем обхода тупиков основывается на том, что все процессы заранее указывают максимальное число требуемых ресурсов, и ОС контролирует возможность их совместного удовлетворения.
2. Обнаружение тупиков
Когда возникающие тупики анализируются и прогнозируются с выдачей соответствующей информации операторам. Возможные тупики анализируются по графам распределения ресурсов. Существуют формальные, программно-реализованные методы распознавания тупиков, основанные на ведении таблиц распределения ресурсов и таблиц запросов к занятым ресурсам. Анализ этих таблиц позволяет обнаружить взаимные блокировки
3. Восстановление после тупиков
Осуществляется путем вывода из системы одного или N процессов, вовлеченных в тупик и почти всегда с потерей полученных результатов работы. Не обязательно снимать с выполнения все заблокированные процессы. Можно снять только часть из них, при этом освобождаются ресурсы, ожидаемые остальными процессами, можно вернуть некоторые процессы в область свопинга, можно совершить "откат" некоторых процессов до так называемой контрольной точки, в которой запоминается вся информация, необходимая для восстановления выполнения программы с данного места. Контрольные точки расставляются в программе в местах, после которых возможно возникновение тупика
В настоящее время проблема тупика является критическим фактором по следующим причинам:
широкое распространение получают мультипроцессорные и параллельные вычисления;
в системах выполняется преимущественно динамическое распределение ресурсов;
тенденция рассмотрения данных как ресурса приводит к возрастанию числа управляемых ресурсов.