Изменения

Перейти к: навигация, поиск

Задача обедающих философов

1656 байт добавлено, 15:40, 26 июня 2010
Новая страница: «==Задача обедающих философов== за круглым столом сидят шесть философов. На столе шесть таре…»
==Задача обедающих философов==
за круглым столом сидят шесть философов. На столе шесть тарелок с рисом и шесть китайских палочек.
В каждый момент философ может либо есть (тогда ему необходимо две палочки), либо думать (для этого ему нужен только он сам). Философы не разговаривают между собой. Необходимо, чтобы все философы поели и не возникло драки за палочки.

==Обобщение==
Данная задача представляет из себя задачу получения взаимной блокировки.

===Token ring===
Все процессы объединяются в логическое кольцо независимо от реальной структуры сети.

По кольцу передается маркер (token). Процесс, получивший маркер, проверяет, нужно ли ему войти в критическую секцию. Если нужно, то входит, а после ее завершения отправляет маркер дальше по кольцу. Если не нужно, то сразу отправляет маркер дальше.

То есть, если ни один из процессов не заинтересован в критической секции, то маркер будет просто циркулировать по кольцу.
94
правки

Навигация