Содержание
- 2. Преамбула - ресурсы Выгружаемый ресурс можно безболезненно забрать у владеющего им процесса (пример – память) Невыгружаемый
- 3. Доступ к ресурсам Запрос ресурса (request, open) Использование ресурса Возврат ресурса Если ресурс недоступен, запрашивающий процесс
- 4. КРСУ, Бишкек, Гайдамако В.В. Проблемы если средствами синхронизации пользоваться неосторожно, то могут возникнуть непредвиденные затруднения. Предположим,
- 5. КРСУ, Бишкек, Гайдамако В.В. Пример тупика
- 6. КРСУ, Бишкек, Гайдамако В.В. Пример Тупики также могут иметь место в ситуациях, не требующих выделенных ресурсов.
- 7. КРСУ, Бишкек, Гайдамако В.В. Пример Другой пример - возникновение тупика в системах спулинга. Режим спулинга -
- 8. КРСУ, Бишкек, Гайдамако В.В. Определение Определение. Множество процессов находится в тупиковой ситуации, если каждый процесс из
- 9. Условия взаимоблокировки (Коффман) Условие взаимного исключения (mutual exclusion) Условие удержания и ожидания (Hold&wait) Условие невозможности принудительной
- 10. Моделирование – направленные графы процесс-ресурс Ресурс R занят (стрелка к процессу) Процесс B запросил ресурс S
- 11. Что делать? Стратегии Пренебрежение – алгоритм страуса Обнаружение и восстановление Динамическое избегание возникновения тупика с помощью
- 12. КРСУ, Бишкек, Гайдамако В.В. Функции ОС Обнаружение Восстановление Предотвращение Избежание
- 13. Обнаружение для одного ресурса каждого типа Процессы: A-G Ресурсы: R-W Строим граф процесс-ресурс (а), ищем циклы
- 14. Обнаружение для одного ресурса каждого типа – алгоритм поиска циклов Список узлов графа L, на ребрах
- 15. Обнаружение при наличии нескольких ресурсов одного типа N процессов, m – число классов ресурсов, в системе
- 16. Обнаружение при наличии нескольких ресурсов одного типа, алгоритм Для векторов: А В исходном положении все процессы
- 17. Обнаружение при наличии нескольких ресурсов одного типа, пример 4 класса ресурсов (мл, плоттеры, сканеры, CD) Здесь
- 18. Когда производить обнаружение тупиков? Каждый раз при запросе ресурса Проверять систему через каждые k минут Проверять
- 19. Восстановление – принудительная выгрузка ресурса Предположим, что тупик обнаружен. Как восстановить систему и привести ее в
- 20. Восстановление - откат Если предполагается, что может возникнуть тупик, расставляем контрольные точки (checkpoints) Состояние системы в
- 21. Восстановление через уничтожение процесса Простейший выход – выбрать жертву и уничтожить один (или несколько) из процессов,
- 22. Избежание (обход) тупиков. Траектория ресурсов – графическое представление Система с двумя процессами А,В и двумя ресурсами
- 23. Избежание (обход) тупиков. Траектория ресурсов – графическое представление Каждая точка – совместное состояние двух процессов
- 24. Избежание (обход) тупиков. Безопасные состояния Состояние безопасно, если система не находится в тупике и существует порядок
- 25. Избежание (обход) тупиков. Алгоритм банкира для одного вида ресурсов Проверяем, приводит ли выполнение запроса к безопасному
- 26. Избежание (обход) тупиков. Алгоритм банкира для нескольких видов ресурсов Обобщение алгоритма обнаружения тупика. Ищем в матрице
- 27. Предотвращение тупиков. Взаимное исключение Достаточно нарушить одно из условий. Если в системе нет ресурсов, требующих эксклюзивного
- 28. Предотвращение тупиков. Hold&Wait Требуем запрашивать все ресурсы до начала работы. Если какие-то ресурсы заняты, процесс ожидает
- 29. Предотвращение тупиков. Отсутствие принудительной выгрузки Или затруднительно, или вообще невозможно КРСУ, Бишкек, Гайдамако В.В.
- 30. Предотвращение тупиков. Циклическое ожидание Правило – процесс может обладать только одним ресурсом в каждый момент времени
- 31. Двухфазное блокирование Базы данных – часто нужно заблокировать записи и обновить сразу все (в одной или
- 32. Тупики без ресурсов Тупик может возникнуть «без ресурсов» – при доступе к семафорам – вспомните задачу
- 34. Скачать презентацию