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.





loading...




Politica de confidentialitate

.com Copyright © 2020 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.


Proiecte

vezi toate proiectele
 SCHITA DE PROIECT DIDACTIC GEOGRAFIE CLASA: a IX-a - Unitatile majore ale reliefului terestru
 PROIECT DIDACTIC 5-7 ani Educatia limbajului - Cate cuvinte am spus?
 Proiect atestat Tehnician Electronist - AMPLIFICATOARE ELECTRONICE
 Proiect - masurarea si controlul marimilor geometrice

Lucrari de diploma

vezi toate lucrarile de diploma
 Lucrare de diploma - eritrodermia psoriazica
 ACTIUNEA DIPLOMATICA A ROMANIEI LA CONFERINTA DE PACE DE LA PARIS (1946-1947)
 LUCRARE DE DIPLOMA MANAGEMENT - MANAGEMENTUL CALITATII APLICAT IN DOMENIUL FABRICARII BERII. STUDIU DE CAZ - FABRICA DE BERE SEBES
 Lucrare de diploma tehnologia confectiilor din piele si inlocuitor - proiectarea constructiv tehnologica a unui produs de incaltaminte tip cizma scurt

Lucrari licenta

vezi toate lucrarile de licenta
 LUCRARE DE LICENTA CONTABILITATE - ANALIZA EFICIENTEI ECONOMICE – CAI DE CRESTERE LA S.C. CONSTRUCTIA S.A TG-JIU
 Lucrare de licenta sport - Jocul de volei
 Lucrare de licenta stiintele naturii siecologie - 'surse de poluare a clisurii dunarii”
 LUCRARE DE LICENTA - Gestiunea stocurilor de materii prime si materiale

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
 PROIECT ATESTAT MATEMATICA-INFORMATICA - CALUTUL INTELIGENT
 Proiect atestat Tehnician Electronist - AMPLIFICATOARE ELECTRONICE
 ATESTAT PROFESIONAL LA INFORMATICA - programare FoxPro for Windows
 ATESTAT PROFESIONAL TURISM SI ALIMENTATIE PUBLICA, TEHNICIAN IN TURISM




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