В unix процесс застрял, вы сомневаетесь, что это может быть взаимоблокировка, найдите причины взаимоблокировки и как ее удалить и избежать?
Мне известны 4 условия тупика:
Взаимное исключение: ресурс может быть назначен максимум одному процессу за раз (без совместного использования).
Удерживать и ждать: процесс, содержащий ресурс, может запросить другой.
Нет выгрузки: процесс должен освободить свои ресурсы;их нельзя убрать.
Циклическое ожидание: должна быть цепочка процессов, такая, что каждый член цепочки ожидает ресурс, удерживаемый следующим участником цепочки.
Но они теоретические, как практически определить тупик на unix?Только видя, что процесс не прогрессирует?Как найти, какая часть кода вызывает тупик и причины?Если вам разрешено использовать инструменты, что можно использовать?
спасибо