Безопасное и небезопасное состояние

При дальнейшем рассмотрении алгоритмов уклонения от взаимоблокировок ис­пользуется информация, представленная на рис. 6.4. В любой заданный момент времени существует текущее состояние, содержащее Е,А, С и R. Состояние счита­ется безопасным,если существует какой-то порядок планирования, при котором каждый процесс может доработать до конца, даже если все процессы внезапно и срочно запросят максимальное количество ресурсов. Это положение проще всего проиллюстрировать с помощью примера, в котором используется один ресурс. На рис. 6.7, а показано состояние, в котором процесс А удерживает 3 экземпляра ресурса, но в конечном счете может затребовать 9 экземпляров. Процесс В в этот момент удерживает 2 экземпляра, но позже может затребовать в общей сложности еще 4. Процесс С также удерживает 2 экземпляра, но может затребовать еще 5. В си­стеме есть всего 10 экземпляров данного ресурса, 7 из которых уже распределены, а 3 пока свободны.

Состояние на рис. 6.7, а является безопасным, потому что существует такая по­следовательность предоставления ресурсов, которая позволяет завершиться всем процессам. А именно — планировщик может просто запустить в работу только про­цесс В на то время, пока он запросит и получит два дополнительных экземпляра ресурса, что приведет к состоянию, изображенному на рис. 6.7, б. Когда процесс В завершит свою работу, мы получим состояние, показанное на рис. 6.7, в. Затем планировщик может запустить процесс С, что со временем приведет нас к си­туации, показанной на рис. 6.7, г. По завершении работы процесса С мы получим ситуацию, показанную на рис. 6.7, д. Теперь процесс А наконец-то может получить необходимые ему шесть экземпляров ресурса и также успешно завершить свою работу. Таким образом, состояние, показанное на рис. 6.7, а, является безопасным, поскольку система может избежать взаимоблокировки с помощью тщательного планирования процессов.

Теперь предположим, что исходное состояние системы показано на рис. 6.8, а, но в данный момент процесс А запрашивает и получает еще один ресурс, и система переходит в состояние, показанное на рис. 6.8, б. Планировщик может дать поработать процессу В до того момента, пока он не за­просит все свои ресурсы, как показано на рис. 6.8, в.

В конечном итоге процесс В успешно завершается, и мы получаем ситуа­цию, показанную на рис. 6.8, г. И в этом месте мы застряли: в системе осталось только четыре свободных экземпляра ресурса, а каждому из активных про­цессов необходимо по пять экземпляров. И не существует последовательности действий, гарантирующей успешное завершение всех процессов. Следовательно, решение о предоставлении ресурса, которое перевело систему из состояния, показанного на рис. 6.8, а, к состоянию, показанному на рис. 6.8, б, перевело ее из безопасного в небезопасное состояние. Если из состояния, показанного на

 


рис. 6.8, б, запустить процесс А или процесс С, то ни один из них не заработает. Возвращаясь назад, нужно сказать, что запрос процесса А не должен был удо­влетворяться.

Следует отметить, что небезопасное состояние само по себе не является со­стоянием взаимоблокировки. Начиная с состояния, показанного на рис. 6.8, б, система может поработать некоторое время. Фактически может даже успешно за­вершиться работа одного из процессов. Кроме того, процесс А может высвободить один ресурс еще до запроса дополнительного ресурса, позволяя успешно завершить работу процессу С, а системе в целом избежать взаимоблокировки. Таким образом, разница между безопасным и небезопасным состоянием заключается в том, что в безопасном состоянии система может гарантировать, что все процессы закончат свою работу, а в небезопасном состоянии такой гарантии дать нельзя.








Дата добавления: 2017-01-29; просмотров: 1791;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.