Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice



Acasa » referate » informatica
Problema barbierului

Problema barbierului



Problema barbierului

Consideram o frizerie deservita de un barbier. Acesta dispune de n scaune in holul de asteptare. Barbierul nu poate deservi decat un client la un moment dat, iar in criza de clienti barbierul atipeste. Un client, in functie de situatia existenta in frizerie in momentul sosirii, poate actiona intr-unul din modurile urmatoare :

- daca barbierul doarme, il trezeste si cere sa fie barbierit;

- daca barbierul este ocupat si exista scaune libere in holul de asteptare atunci ocupa un scaun;

- daca holul de asteptare este plin, clientul pleaca nemultumit.

O solutie este de a utiliza trei semafoare : clienti = numarul clientilor in holul de asteptare, barbier = daca barbierul este liber sau nu si mutex, utilizat pentru excludere mutuala. De asemenea, se utilizeaza o variabila asteapta reprezentand numarul clientilor care asteapta sa fie barbieriti (este egala cu valoarea semaforului clienti; se foloseste pentru ca nu putem afla valoarea unui semafor). Pe masura ce clientii se aseaza pe saune, aceasta variabila se incrementeaza. La sosirea unui client, daca valoarea aceastei variabile este mai mica decat numarul de scaune, clientul sta si asteapta, iar daca nu, pleaca nemultumit.

Barbierul se blocheaza pe semaforul clienti, asteptand sa soseasca cineva. Cand primul client soseste, executa un DOWN pe semaforul mutex, asigurand acces exclusiv la variabila comuna asteapta; daca un alt client soseste imediat dupa primul, se blocheaza pe semaforul mutex. Apoi clientul testeaza daca este vreun scaun liber (variabila asteapta sa fie mai mica decat numarul de scaune).

Daca nu, executa UP pe semaforul mutex (permitand celorlaltor clienti accesul la variabila asteapta) si pleaca.

Daca da, clientul il ocupa (incrementeaza variabila asteapta). Executa apoi un UP pe semaforul clienti , semnalizand barbierului ca a mai sosit un client (il trezeste in cazul cand acesta doarme din cauza unei crize de clienti) si apoi un DOWN pe semaforul barbier, blocandu-se daca barbierul nu este liber. Dupa ce este barbierit, clientul paraseste frizeria multumit.

Barbierul executa o bucla infinita in care testeaza daca are clienti. Daca da, invita pe unul pe scaun (decrementeaza variabila asteapta). Dupa ce il barbiereste, executa un UP pe semaforul barbier, semnaland eventualilor clienti care asteapta ca este liber.

#define SCAUNE 5

typedef int semafor;

semafor clienti=0;

semafor barbier=1

semafor mutex=1;

int asteapta=0;

/* numarul de scaune */

/* numar clienti care asteapta */

/* daca barbierul este liber sau nu */

/* pentru excludere mutuala */

/* numar clienti care asteapta */

void barbier()

}

void client()

else

up(mutex);

/* holul este plin, clientul nu mai asteapta */

}

}





loading...




Politica de confidentialitate

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


Proiecte

vezi toate proiectele
 PROIECT DE LECTIE CLASA: a X a EDUCATIE MUZICALA - OPERA IN GERMANIA SI RUSIA
 PROIECT DIDACTIC 3-5 ani Limba si comunicare - Strugurele, de Maria Gaitan
 Proiect instalatii electrice - Sa se proiecteze instalatia electrica si de forta a unei microintreprinderi la alegerea studentului
 PROIECT - Ingineria reglarii automate - sistemul de reglare automata a unei actionari cu motor electric

Lucrari de diploma

vezi toate lucrarile de diploma
 LUCRARE DE DIPLOMA - Rolul asistentului medical in ingrijirea pacientului cu A.V.C.
 Relatiile diplomatice dintre Romania si Austro- Ungaria din a doua jumatate a secolului al XIX-lea
 Lucrare de diploma managementul firmei “diagnosticul si evaluarea firmei”
 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 si informatica de gestiune - politici si tratamente contabile privind leasingul (ias 17). prevalenta economicului asupra juridicului
 Lucrare de licenta educatie fizica si sport - studiu asupra imbunataȚirii motricitaȚii in lectia de educatie fizica la clasele a v-a de la &
 Lucrare de licenta ecologie si protectia mediului - aspecte ecologice privind fauna de orthoptere si mantide din parcul national muntii macinului
 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
 PROIECT ATESTAT INFORMATICA - GESTIONAREA STOCULUI UNEI FARMACII
 LUCRARE DE ATESTAT ELECTRONIST - TEHNICA DE CALCUL - Placa de baza
 Evidenta a clientilor dar si a serviciilor in Visual Fox pro 9 - Lucrare de atestat
 Lucrare atestat Tehnician in turism - CALITATEA SERVICIILOR TURISTICE




Analiza activitatii firmei PC
SISTEME INFORMATIONALE SI SISTEME INFORMATICE IN GESTIUNEA ORGANIZATIILOR
ANALIZA SI PROIECTAREA ORIENTATA OBIECT A SISTEMELOR INFORMATICE - APOO
Comunicare si sincronizare prin mesaje
PROCESE
PROIECT ATESTAT INFORMATICA - GESTIONAREA STOCULUI UNEI FARMACII
Algoritmul Bellman-Ford
Sisteme de informatii in afaceri




Termeni si conditii
Contact
Creeaza si tu