Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » referate » informatica
Cina filozofilor (The Dining philosophers problem)

Cina filozofilor (The Dining philosophers problem)




Cina filozofilor (The Dining philosophers problem)

Modeleaza procese care concureaza pentru acces exclusiv la un numar limitat de resurse, cum ar fi dispozitivele I/O.

Problema poate fi formulata astfel :

Se considera cinci filozofi care stau la o masa rotunda, fiecare avand in fata o farfurie cu mancare. Intre doua farfurii vecine exista o singura furculita.Viata unui filozof consta in alternarea perioadelor cand acesta mananca si respectiv gandeste. Cand unui filozof i se face foame, el incearca sa ia furculita din dreapta si furculita din stanga. Daca reuseste, mananca o perioada apoi pune furculitele jos si continua sa gandeasca.

Solutia evidenta duce din pacate la esec :

#define N 5 /* numarul filozofilor */

void filozof(int i)

}

Sa presupunem ca toti cei cinci filozofi iau fiecare furculita din stanga simultan. Niciunul nu va mai putea sa ia furculita din dreapta, rezultand o situatie de impas.

Programul poate fi modificat in sensul ca, dupa ce ia furculita din stanga, filozoful i verifica daca furculita din dreapta este disponobila. Daca nu, pune furculita din stanga pe masa, asteapta un timp si apoi repeta intregul proces. Cu un pic de ghinion, toti filozofii pot incepe algoritmul simultan, sa ia furculitele din stanga, sa observe ca furculitele din dreapta nu sunt disponibile, sa puna pe masa furculitele din stanga, sa astepte, sa ia din nou furculitele din stanga simultan s.a.m.d., pentru totdeauna.

O observatie care poate veni in minte este ca filozofii sa astepte un timp aleator inainte de a relua procesul de achizitionare a furculitelor. Aceasta observatie este buna, dar se prefera solutiile care merg intotdeauna si nu esueaza din cauza unei anumite serii de numere aleatoare.

O imbunatatire ar fi folosirea unui semafor. Astfel, inainte sa ia furculitele, filozoful i poate apela functia DOWN pe un semafor mutex. Dupa ce mananca si pune furculitele pe masa, apeleaza functia UP pe mutex. Din punct de vedere teoretic, solutia este buna, dar practic, duce la un rezultat putin curios : la un moment dat, doar un singur filozof poate manca desi sunt disponibile cinci furculite si deci, pot manca doi filozofi simultan.

Solutia prezentata mai jos este corecta si ofera maximum de paralelism pentru un numar oarecare de filozofi. Programul foloseste un tablou, stare, care memoreaza starea fiecarui filozof : gandeste, ii este foame (si incearca sa obtina furculitele), mananca. Un filozof poate manca numai daca vecinii lui nu mananca. Vecinii sunt reprezentati prin macro-urile STANGA si DREAPTA. Astfel, daca i este 2, STANGA este 1 iar DREAPTA este 3.



Programul mai foloseste un tablou de semafoare, unul pentru fiecare filozof , folosit pentru a bloca filozoful daca nu poate obtine furculitele necesare.

#define N

5

/* numarul filozofilor */

#define STANGA

(i-1+N)%N

/* numarul vecinului din stanga */

#define DREAPTA

(i+1)%N

/* numarul vecinului din dreapta */

#define GANDESTE

0

/* filozoful gandeste */

#define FLAMANZESTE

1

/* filozoful flamanzeste */

#define MANANCA

2

/* filozoful mananca */

typedef int semafor;

int stare[N];

semafor mutex=1;

semafor s[N];

/* semaforul este de tip intreg */

/* memoreaza starea fiecarui filozof */

/* excludere mutuala pentru regiuni critice */

/* un semafor per filozof */

void filozof(int i)

}

void ia_furc(int i)

void pune_furc(int i)

void test(int i)

}

Obs .: Fiecare proces ruleaza procedura filozof ; procedurile ia_furc, test, pune_furc sunt proceduri obisnuite si nu procese separate.







Politica de confidentialitate







creeaza logo.com Copyright © 2023 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.


Proiecte

vezi toate proiectele
PROIECT DE LECTIE CLASA A II-A, Educatie plastica, Tehnica marmorata
PROIECT DIDACTIC 5-7 ani activitate matematica - „Cum este si cum nu este aceasta piesa”
Proiect Circuite Digitale
Organizarea si conducerea procesului tehnologic proiectat

Lucrari de diploma

vezi toate lucrarile de diploma
LUCRARE DE DIPLOMA - Rolul asistentului medical in ingrijirea pacientului cu A.V.C.
Spatiul romanesc, intre diplomatie si conflict in Evul Mediu
Lucrare de diploma managementul firmei “diagnosticul si evaluarea firmei”
Lucrare de diploma Facultatea de Textile – Pielarie - Tehnologia confectiilor din piele si inlocuitori - PROIECTAREA CONSTRUCTIV TEHNOLOGICA A UNUI PR

Lucrari licenta

vezi toate lucrarile de licenta
Lucrare de licenta contabilitate si informatica de gestiune - politici si tratamente contabile privind leasingul (ias 17). prevalenta economicului asupra juridicului
Lucrare de licenta educatie fizica si sport - sistemul de selectie in jocul de handbal pentru copii de 10-11 ani in concordanta cu cerintele handbalul
Lucrare de licenta - cercetare si analiza financiara asupra deseurilor de ambalaje la sc.ambalaje sa
LUCRARE DE LICENTA - Asigurarea calitatii la firma Trans

Lucrari doctorat

vezi toate lucrarile de doctorat
Diagnosticul ecografic in unele afectiuni gastroduodenale si hepatobiliare la animalele de companie - TEZA DE DOCTORAT
Doctorat - Modele dinamice de simulare ale accidentelor rutiere produse intre autovehicul si pieton
LUCRARE DE DOCTORAT ZOOTEHNIE - AMELIORARE - Estimarea valorii economice a caracterelor din obiectivul ameliorarii intr-o linie materna de porcine

Proiecte de atestat

vezi toate proiectele de atestat
Lucrare atestat informatica - „administrarea gradinii botanice”
Lucrare atestat Tehnician operator tehnica de calcul - Sursa de tensiune cu tranzistoare npn
ATESTAT PROFESIONAL LA INFORMATICA - programare FoxPro for Windows
Proiect atestat tehnician in turism - carnaval la venezia

Sinteza unui dispozitiv secvential de inmultire a numerelor binare reprezentate in semn-marime
Tipul de date abstract sir
Sisteme integrate
Monitor 3D multiutilizator cu detectare a pozitiei capului avand laser RGB ca sursa de lumina
Proiect informatica - Hidrografia Romaniei
Problema cititorilor si scriitorilor
Marketingul traditional- rezultat al practicii de marketing
Notiunea de sistem informatic



Termeni si conditii
Contact
Creeaza si tu