Задача об обедающих философах: различия между версиями

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м откат правок 109.169.167.62 (обс.) к версии 78.23.8.142
Метка: откат
отклонены последние 4 изменения (78.23.8.142, 109.169.167.62 и Гоголь М) ВП:ОРИСС?
Строка 112:
 
Философ, не имеющий возможности взять вилки из-за того, что его сосед голодает, находится в режиме полезного ожидания окончания приёма пищи соседом его соседа. Эта дополнительная зависимость снижает параллелизм. Увеличение значения порога перехода в состояние Голодание уменьшает этот эффект.
 
=== '''Решение на основе попыток и случайного времени пауз между ними:''' ===
Этот алгоритм не требует ни привлечения дополнительных ресурсов (официант или семафор), ни предварительной договоренности между обедающими
 
кроме как правил изложенных в условии задачи, ни разговора во время процесса.
 
==== Начало: философ проголодался ====
''Ситуация'': Нет ни одной вилки
 
1. ПОСМОТРИ НАПРАВО, если нет вилки, то через несколько случайное количество секунд повтори действие поменяв сторону (ПОСМОТРИ НАЛЕВО).
 
2. Увидел вилку на столе то ПОПРОБУЙ ее взять. Если попытка неудачна то прекрати попытку и поменяв сторону вернись в п.1
 
Ситуация: В одной руке есть вилка.
 
3. УДАЧНО - есть одна вилка в руке! ПОСМОТРИ в ДРУГУЮ СТОРОНУ. Если нет вилки , тогда положи свою вилку назад.! И поменяв сторону вернись в п.1
 
''Ситуация:'' В одной из рук есть вилка, а с другой стороны на столе видна вилка.
 
4. ПОПРОБУЙ ВЗЯТЬ ВИЛКУ если неудачно, то ОТПУСТИ (освободи) эту вилку и ПОЛОЖИ ВИЛКУ КОТОРАЯ НАХОДИТСЯ В ДРУГОЙ РУКЕ. Поменяй сторону вернись в п.1
 
5. УДАЧНО - есть вторая вилка в руке!
 
''Ситуация:'' В обеих руках по вилке.
 
6. Приступай к еде
 
7. Наелся положи обе вилки, сначала правую, затем левую на стол. Думай до тех пока не проголодаешься.
 
== См. также ==