161
классу принтеров, так и по классу лент, но в комплексе она является
тупиковой. Алгоритм "проигрывания ситуации" требует значительного
объема вычислений, но обеспечивает комплексный анализ безопасности.
Отметим, что алгоритм банкира, хотя и является значительно более
либеральным, чем все рассмотренные выше, тоже не обеспечивает
оптимального уровня мультипрограммирования. Опасная ситуация еще не
является тупиковой. Так, ситуация, представленная на рисунке 5.3.б, еще
может разрядиться, если процесс P1 освободит хотя бы один из
удерживаемых им ресурсов. ОС же в оценке ситуации исходит из прогноза
о наихудшем развитии ситуации – предположения о том, что процессы
будут только запрашивать ресурсы, а не освобождать их.
Возможны и стратегии, обеспечивающие еще более либеральную
политику, но они требуют большей предварительной информации о
процессе и, как правило, – большего объема вычислений при реализации
стратегии. Например, нетрудно представить себе, что если ОС заранее
знает, в какой последовательности процесс будет
запрашивать/освобождать ресурсы, то она может обеспечить более
эффективное управление ими. Но часто ли такая последовательность
может быть известна заранее? Среди авторов [12, 26, 30 и др.] нет даже
единодушного мнения о том, реально ли требовать от процесса
предварительной заявки. На наш взгляд, однако, такое требование в
большинстве случаев реально выполнимо: для пакетных процессов
потребность в ресурсах бывает известна заранее, интерактивные же
процессы в многопользовательских системах запускаются только
зарегистрированными пользователями, указанный при регистрации
пользователя доступный ему объем ресурсов может считаться такой
заявкой.
Двигаясь дальше в сторону либерализации, мы пересекаем ту
границу, до которой можно было предотвратить тупики. Теперь тупики