Столовая проблема философов - необходимо разъяснение - PullRequest
2 голосов
/ 14 мая 2009

Недавно я прочитал эту статью в Википедии , касающуюся проблемы «Обедающих философов», но мне не совсем понятно решение Чанди / Мисры.

Согласно статье: «Когда философ с вилкой получает сообщение с запросом, он сохраняет вилку, если она чистая, но сдает ее, когда она грязная». В контексте этого вопроса он передает его, если он ест, и сохраняет его, если он еще не начал есть.

Согласно сценарию, что означает Грязный? Нить запущена или получилась?

Ответы [ 2 ]

2 голосов
/ 14 мая 2009

Грязный означает, что обработка началась, поэтому ее можно прервать.

И вы можете обрабатывать, только если у вас есть две вилки.

0 голосов
/ 14 мая 2009

«Грязный», по-видимому, означает «бездействующий» или «был доступен», а «чистый» означает «должен был запросить» или «выгрузить его».

В нем говорится, что вилка «грязная», если он поднял ее (вилка не была утверждена, когда он этого хотел), и «чистая», если он должен был ее запросить, и что ее начальное состояние грязное.

  • Подберите имеющуюся вилку => вилка грязная => почистите ее и откажитесь, когда ее попросят.

  • Нет доступного форка => нужно его запросить => получит его очищенным.

Это напоминает мне организационную схему под названием Не прерывайте прерывание .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...