Систему, находящуюся в тупике, необходимо вывести из него, для чего требуется нарушить одно или несколько необходимых условий его существования. Очевидно, что в этом случае один или несколько процессов потеряют, частично или полностью, проделанную ими работу.
Восстановление после тупика может выполняться путем принудительного вывода одного или нескольких процессов из системы, чтобы можно было использовать их ресурсы.
Целесообразным способом восстановления после тупиков является эффективный механизм приостановки/возобновления процессов, что позволяет процессы кратковременно переводить в состояние ожидания, а затем активизировать ожидающие процессы без потери результатов работы. Заметим, что средства рестарта системы с контрольной точки, реализованные во многих системах, обеспечивают приостановку/возобновление с потерей результата после последней контрольной точки.
Отметим, что тупики могут приводить к катастрофическим последствиям в системах реального времени, поэтому в таких системах риски возникновения тупиковых ситуаций должны быть максимально устранены.
Вопросы
1. Приведите пример тупика с участием всего лишь одного процесса.
2. Приведите пример тупика с участием трех процессов и трех ресурсов.
3. Сформулируйте четыре необходимых условия существования тупика.
4. Чтобы условие “ожидание дополнительных ресурсов” было нарушено, по методу Хавендера процессы должны запрашивать сразу все ресурсы, которые им понадобятся. Т.е система предоставляет процессам ресурсы по принципу “все или ничего”. Укажите достоинства и недостатки такого способа предотвращения тупиков.
5. Предложенное Хавендером нарушение условия “неперераспределяемости ресурсов” не стало популярным. Укажите недостатки такого метода для предотвращения тупиков.
6. В контексте алгоритма банкира определите и обоснуйте, является ли каждое из приведенных состояний опасным или безопасным с точки зрения возникновения тупиков, если общее количество выделенных ресурсов в обоих случаях равно 9.
