Тупик с более чем 2 процессами, возможно? - PullRequest
0 голосов
/ 24 мая 2019

Что касается взаимоблокировки, я понимаю, как она работает для 2 процессов и что для ее возникновения требуется минимум 2 процесса.

Создайте пример, чтобы показать, что этовозможна тупиковая ситуация, когда имеется 3, 4 ... n номеров процессов.

Какие-либо советы по созданию примера?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Два потока находятся в тупике, если одному процессу нужна блокировка другого, и наоборот, при наличии n threads вы все равно можете заблокировать все свои потоки навсегда, если существует циклическая зависимость.

Thread1нужна блокировка thread2, которая нуждается в блокировке thread3 ... нужна блокировка threadn, которая нуждается в блокировке thread1.

2 голосов
/ 24 мая 2019

Взаимные блокировки могут возникать и в более чем 2 процессах. Если большее количество процессов заблокировало соответствующие ресурсы, которые требуются для освобождения других ресурсов, удерживаемых предыдущим процессом, то это тупик.

Пожалуйста, обратитесь к этому примеру:

https://www.geeksforgeeks.org/operating-system-process-management-deadlock-introduction/

если мы увеличиваем количество зависимых ресурсов, возникает циклическая зависимость, и в N процессах возникает тупик (более 2).

Надеюсь, это поможет!

...