Безопасное и небезопасное состояние
Рис. 6.7. Состояние а является безопасным |
Состояние на рис. 6.7, а является безопасным, потому что существует такая последовательность предоставления ресурсов, которая позволяет завершиться всем процессам. А именно — планировщик может просто запустить в работу только процесс В на то время, пока он запросит и получит 2 дополнительных экземпляра ресурса, что приведет к состоянию, изображенному на рис. 6.7, б. Когда процесс В завершит свою работу, мы получим состояние, показанное на рис. 6.7, в. Затем планировщик может запустить процесс С, что со временем приведет нас к ситуации, показанной на рис. 6.7, г. По завершении работы процесса С мы получим ситуацию, показанную на рис. 6.7, д.
Теперь процесс А наконец-то может получить необходимые ему 6 экземпляров ресурса и также успешно завершить свою работу. Таким образом, состояние, показанное на рис. 6.7, а, является безопасным, поскольку система может избежать взаимоблокировки с помощью тщательного планирования процессов.Теперь предположим, что исходное состояние системы показано на рис. 6.8, а, но в данный момент процесс А запрашивает и получает еще один ресурс и система переходит в состояние, показанное на рис. 6.8, б. Сможем ли мы найти последовательность, которая гарантирует безопасную работу системы? Давайте попробуем. Планировщик может дать поработать процессу В до того момента, пока он не запросит все свои ресурсы (рис. 6.8, в).
В итоге процесс В успешно завершается, и мы получаем ситуацию, показанную на рис. 6.8, г. В этом месте мы застряли: в системе осталось только 4 свободных экземпляра ресурса, а каждому из активных процессов необходимо по 5 экземпляров. И не существует последовательности действий, гарантирующей успешное завершение всех
процессов. Следовательно, решение о предоставлении ресурса, которое перевело систему из состояния, показанного на рис. 6.8, а, в состояние, показанное на рис. 6.8, б, из безопасного в небезопасное состояние. Если из состояния, показанного на рис. 6.8, б, запустить процесс А или С, то ни один из них не заработает. Возвращаясь назад, нужно сказать, что запрос процесса А не должен был удовлетворяться.
Следует отметить, что небезопасное состояние само по себе не является состоянием взаимоблокировки. Начиная с состояния, показанного на рис. 6.8, б, система может поработать некоторое время. Фактически может даже успешно завершиться работа одного из процессов. Кроме того, процесс А может высвободить один ресурс еще до запроса дополнительного ресурса, позволяя успешно завершить работу процессу С, а системе в целом избежать взаимоблокировки. Таким образом, разница между безопасным и небезопасным состоянием заключается в том, что в безопасном состоянии система может гарантировать, что все процессы закончат свою работу, а в небезопасном состоянии такой гарантии дать нельзя.
6.5.3.
Еще по теме Безопасное и небезопасное состояние:
- Статья 275. Нарушение правил, касающихся безопасного использования промышленной продукции или безопасной эксплуатации зданий и сооружений
- Понятие информационной безопасности
- 2.9. Психология личной безопасности человека
- Электрическая безопасность.
- Пятачок безопасности
- ВНИМАНИЕ! Техника безопасности!
- Безопасный мир
- ГЛАВА 10 ПРАВОВЫЕ ПРОБЛЕМЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
- 10.3 Психология обеспечения безопасности дорожного движения
- Риск и личная безопасность.
- 12.4. Органы федеральной службы безопасности России
- / Е. Б. Белов, В. П. Лось, Р. В. Мещеряков, А. А. Шелупанов. Основы информационной безопасности. Учебное пособие для вузов, 2006
- Личная профессиональная безопасность сотрудника органа правопорядка.
- Техника безопасности.
- Вы всегда в безопасности