Ключевое отличие: тупик относится к ситуации, когда процессы зацикливаются в ожидании ресурсов. С другой стороны, голодание происходит, когда процесс ожидает ресурс бесконечно. Тупик подразумевает голод, но голод не подразумевает тупик.
Простым примером этого является система с двумя ленточными накопителями, и два процесса каждый занимают один ленточный накопитель и ожидают другого, поскольку требуется дальнейшее выполнение.
Важно отметить, что ситуация тупиковая, если эти четыре условия выполняются одновременно.
- Взаимное исключение - ресурс может использоваться только процессом одновременно
- Удержание и ожидание - процесс, занимающий хотя бы один ресурс, должен получить дополнительный ресурс, который занят каким-либо другим процессом, и поэтому этот процесс ожидает освобождения этого ресурса.
- Без упреждения - ресурс освобождается только процессом, который занял его, после завершения своей задачи.
- Циклическое ожидание - все процессы в наборах ожидают ресурс, который удерживается другими процессами, который включает в себя даже последний процесс в наборе.
Это происходит, когда процесс с худшими приоритетами никогда не получает ресурс из-за постоянного потока процессов с более высоким приоритетом, чем он, и поэтому процессу, возможно, придется ждать вечно. Решение проблемы голода состоит в том, чтобы независимый менеджер управлял распределением ресурсов, гарантируя, что каждый процесс получит ресурс в определенный момент времени. Случайные и неконтролируемые выборы или соревнования должны быть исключены, чтобы предотвратить голодание. Тупик подразумевает голод, но голод не подразумевает тупик.
Поэтому тупик и голод отличаются друг от друга. Блокировка возникает, когда ни один из процессов в наборе не может двигаться вперед из-за использования необходимых ресурсов каким-либо другим процессом. С другой стороны, голодание происходит, когда процесс ожидает в течение неопределенного периода времени, чтобы получить необходимый ресурс.
Сравнение между тупиком и голодом:
тупик | голодание | |
Определение | Взаимная блокировка возникает, когда ни один из процессов в наборе не может двигаться вперед из-за использования необходимых ресурсов каким-либо другим процессом. | Истощение происходит, когда процесс ожидает в течение неопределенного периода времени, чтобы получить требуемый ресурс. |
Другое имя | Круговое ожидание | Жил замок |
Возникающие условия | Эти четыре условия, возникающие одновременно - взаимное исключение, удержание и ожидание, отсутствие вытеснения и циркулярный ум | Неконтролируемое управление ресурсами Приоритеты процесса строго соблюдаются Дефицит ресурсов |
Методы предотвращения / предотвращения |
|
|
Прогресс | Ни один процесс не может добиться прогресса | Помимо процесса жертвы другие процессы могут прогрессировать или продолжаться |
окончание | Требует внешнего вмешательства | Может или не требует внешнего вмешательства |