Тупики. Необходимые условия возникновения тупиков.
1.1 Тупики.
Тупики и близкая к ним проблема бесконечного откладывания - важные факторы, которые должны учитывать разработчики ОС.
Tупик (deadlock) - это такая ситуация в мультипрограммной системе, когда процесс ожидает некоторого события, которое никогда не произойдет. Системная тупиковая ситуация, или “зависание” системы - это ситуация, когда один или более процессов оказываются в состоянии тупика.
Рассмотрим простой пример тупика при распределении ресурсов.
В ОС тупики в большинстве случаев возникают при конкуренции процессов за выделение ресурсов последовательного доступа, которые в каждый момент времени отводятся только одному пользователю.
На графе распределения ресурсов показана тупиковая ситуация, в которой каждый процесс удерживает ресурс, запрашиваемый другим процессом, причем ни один из процессов не хочет освободить принадлежащий ему ресурс.
Ресурс 1 выделен Процесс_Y запрашивает
процессу_Х Ресурс 1 ресурс 1
Процесс_Х Процесс_Y
Процесс_Х запрашивает Ресурс 2 выделен
ресурс 2 Ресурс 2 процессу_ Y
Рисунок 1 - Граф распределения ресурсов
Такое состояние кругового ожидания характерно для систем в тупиковом состоянии.
Системы спулинга (ввода-вывода с буферизацией) часто оказываются подвержены тупикам (самостоятельно привести примеры таких ситуаций).
Близкая к проблеме возникновения тупиков - проблема бесконечного откладывания, когда предоставление запрашиваемого ресурса некоторому процессу будет откладываться на неопределенный срок, в то время, как система будет уделять внимание другим процессам. Напомним, что при разработке ОС необходимо предусматривать справедливое, а также эффективное управление процессами, находящимися в состоянии ожидания. В некоторых системах бесконечное откладывание предотвращается благодаря тому, что приоритет процесса увеличивается по мере того, как он ожидает выделения нужного ему ресурса. Это называется старением процеса.
Дата добавления: 2017-11-04; просмотров: 749;