Обход тупиков.
В большинстве систем ресурсы запрашиваются не все сразу, а поочередно, система должна уметь решать является ли предоставление ресурса безопасном или нет и предоставлять его процессу только в первом случае.
Основные алгоритмы позволяющие предотвратить взаимоблокировку базируются на концепции безопасных состояний.
В точке S процессу А уже должен быть предоставлен принтер. Точка t – критическая, лежит на линии. В точке x – уже капец! Тупик!
В любой момент времени существует состояние, составленное из величин (E;A;C;R). Говорят, что состояние безопасно если оно не находится в тупике и существует некоторый порядок планирования при котором каждый процесс может работать до завершения, даже если все процессы захотят немедленно получить свое максимальное количество ресурсов.
(короче в лекциях подробнее записано!!!)
Чтобы избежать тупика можно использовать алгоритм Дейкстры (банкира).