1 / 10

PROBLEMA FILOZOFILOR LA MASA

PROBLEMA FILOZOFILOR LA MASA. Prep. Drd. Aritoni Ovidiu. Dijkstra. Problema filozofilor la masa a fost expusa prima data de Dijkstra, in 1965 si reprezinta o problema clasica de sincronizare. 5 filozofi stau asezati la o masa circulara Fiecare filozof are in fata o farfurie cu mancare

palila
Download Presentation

PROBLEMA FILOZOFILOR LA MASA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROBLEMA FILOZOFILOR LA MASA Prep. Drd. Aritoni Ovidiu

  2. Dijkstra Problema filozofilor la masa a fost expusa prima data de Dijkstra, in 1965 si reprezinta o problema clasica de sincronizare.

  3. 5 filozofi stau asezati la o masa circulara Fiecare filozof are in fata o farfurie cu mancare Pentru a putea apuca mancarea, la stanga si la dreapta fiecarei farfurii, se gaseste cate un betisor In felul acesta, intre doua farfurii cu mancare se gaseste un betisor, iar intre doua betisoare, cate o farfurie

  4. Ciclul de viaţă al fiecărui filozof este format din perioade de meditaţie şi perioade de hrănire. Când un filozof este înfometat, încearcă să ridice beţele aflate în stânga şi în dreapta farfuriei propii. Dacă are la îndemână ambele beţe, va putea mânca şi, într-un final va pune beţele înapoi pe masă, în stânga şi în dreapta farfuriei. Apoi va continua, desigur, cu o perioadă de meditaţie.

  5. Gândeşte Ridică băţul dreptRidică băţul stângMânâncăAşează băţul stângAşează băţul drept Repetă

  6. Dacă toţi filozofii apucă simultan băţul din stânga, toţi vor aştepta ca băţul din dreapta să devină disponibil. Din moment ce nici unul din ei nu va reusi să mânânce, nu va elibera băţul pe care l-a ridicat, ceea ce va crea o situaţie de impas ( deadlock ).

  7. Chiar dacă filozofii s-ar pune de acord să lase din mână băţul pe care l-au ridicat, situaţia s-ar sfârşi tragic dacă toţi ar face această operaţie simultan. De data aceasta, filozofii s-ar bloca într-un ciclu infinit de ridicări şi aşezări de beţe, fără a fi capabili să ajungă la mâncare. O situaţie în care programele sunt executate nedefinit fără a realize nici un fel de progres va fi numită înfometare ( starvation ).

  8. 1.Soluţia lui Dijkstra Filozofii şi furculiţele sunt aşezate în ordine O soluţie este ordonarea beţelor şi atunci fiecare filozof va lua beţele în ordine crescătoare Pentru a ilustra această soluţie, vom nota cu P1, P2, P3, P4, P5 cei cinci filozofi şi cu F1, F2, F3, F4,F5 cele cinci beţe Fiecare filozof trebuie să ia beţele într-o ordine prestabilită şi nu poate lua un băţ pe care alt filozof deja îl are O soluţie este ordonarea beţelor şi atunci fiecare filozof va lua beţele în ordine crescătoare

  9. 2. Semafoare Mutex Cu ajutorul semafoarelor Mutex sunt protejate acţiunile care vizează beţele. Astfel, inainte de ridicarea unei furculiţe, un filozof va executa o operaţie down(&mutex), iar după ce a terminat realizează o operaşie up(&mutex). Soluţia previne apariţia impasului sau a înfometării, însă prezintă un dezavantaj major : dată fiind utilizarea semaforului mutex, un singur filozof va putea mânca la un moment dat ( un singur proces se poate afla în regiunea critică la un moment dat ).

  10. Concluzii În general, problema filozofilor la masă este o problem generică şi abstractă utilizată pentru a explica o varietate de situaţii în care este folosită excluderea mutual. Excluderea mutuala este un mecanism folosit pentru a ne asigura că, dacă un process utilizează o resursă partajată, toate celelalte procese sunt excluse de la utilizarea simultană a aceleiaşi resurse. Problema filozofilor la masă exemplifică foarte bine impasul ( deadlock).

More Related