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