Vecerajúci filozofi: Spec5
Neformálne: navrhneme mechanizmus, ako v informuje suseda u, ze je hungry
- zavedieme request-token pre kazdú dvojicu; má ju bud u alebo v (práve jeden zo susedov)
- ak u má aj vidlicku aj request-token zdielané s procesom v, tak v je hladný (odn14)
1. Poslanie request-token (odn15 a 16): proces u pošle request-token procesu v, ak
- 1. u má request-token
- 2. u nemá vidlicku (fork)
- 3. u je hungry
2. Poslanie fork (odn17 a 18): proces u pošle fork v, ak
- 1. u má vidlicku (fork) a request-token
- 2. vidlicka (fork) je špinavá
- 3. u nie je eating
- ked sa fork pošle, tak sa zároven vycistí
3. Prechod z hungry do eating (odn19): hungry proces u je (eats), ak drzí ? fork a ak pre ? suseda v spolocná vidlicka je clean alebo u nemá request-token zdielaný s v; ked u je (eats), zašpiní všetky vidlicky, co má (odn10)
- ak u.top platí, t.j. u nemá hladného suseda s vyššou prioritou, tak pre kazdého suseda s vyššou prioritou v u drzí vidlicku, ale nie request-token
- ak v drzí fork, ktorý zdiela s u, tak fork je clean (v má vyššiu prioritu)