Находятся в глобальном тупике
5.3. Тупики: предупреждение, обнаружение, развязка
Борьба с тупиками включает в себя три задачи:
- предупреждение тупиков - какую стратегию распределения ресурсов выбрать, чтобы тупики не возникали вообще?
- обнаружение тупиков - если не удалось применить стратегию, предупреждающую тупики, то как обнаружить возникший тупик?
- развязка тупиков - если тупик обнаружен, то как от него избавиться?
Возможные стратегии распределения ресурсов располагаются между двумя полюсами - от самых либеральных до самых консервативных. Чем либеральнее стратегия, тем "охотнее" ОС удовлетворяет запросы на ресурсы. Но за слишком либеральную стратегию приходится расплачиваться возможностью возникновения тупика. Консервативные стратегии делают тупики невозможными в принципе, задачи обнаружения и развязки при применении таких стратегий не ставятся, но плата за это - частые отказы в выделении ресурсов, следовательно, снижение уровня мультипрограммирования, а следовательно, - и снижение пропускной способности. Ниже мы будем рассматривать стратегии предотвращения, двигаясь от консервативного полюса к либеральному в таком порядке:
- последовательное выделение;
- залповое выделение;
- иерархическое выделение;
- выделение по предварительным заявкам.