4 условия возникновения deadlock?

Ответ

(1) Mutual exclusion — ресурс не разделяемый. (2) Hold and wait — поток держит один ресурс, ждёт другой. (3) No preemption — отнять ресурс нельзя. (4) Circular wait — цикл ожидания. Чтобы deadlock был — нужны все четыре одновременно, поэтому для предотвращения достаточно нарушить любое одно из них.

Разбор: Классические условия Коффмана — это mutual exclusion, hold and wait, no preemption и circular wait, и deadlock возможен только при одновременном выполнении всех четырёх. Поэтому для предотвращения достаточно нарушить любое одно из них; ловушки — подмена «no preemption» на «preemption», подмена «достаточно всех четырёх» на «достаточно одного» и подмена терминов на race condition/starvation, которые относятся к другим проблемам.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться