Documente Academic
Documente Profesional
Documente Cultură
scriitorilor
Popa Andreea
Vid Alexandru
Problema cititor-scriitor
Cititorii au prioritate;
Scriitorii au prioritate;
Cititorii comunică cu scriitorii prin mesaje.
Cititorii au prioritate
În acest caz scriitorii sunt lasaţi la urmă.
Incepe un cititor să citească din baza de
date. Dacă un scriitor ajunge după el, acesta
trebuie să aştepte pană când cititorul termină.
Dacă un alt cititor vrea să citească, acesta
are dreptul de a intra şi de a citi. Scriitorul
încă aşteaptă.
Scriitorul va trebui să aştepte până când toţi
cititorii termină de citit.
Cod Sursă C
int readcount = 0; void reader()
semaphore wsem = 1; {
//semaphore x = 1; while(1)
void main()
{
{
int p = fork(); wait(x);
if(p) readcount++;
reader; // presupune instante multiple if (readcount==1)
else
writer; // presupune instante multiple wait(wsem);
} signal(x);
doReading();
void writer() wait(x);
{
while(1)
readcount- -;
{ if (readcount==0)
wait(wsem)
doWriting(); signal(wsem);
signal(wsem) signal(x);
} }
} }
Scriitorii au prioritate
În acest caz, scriitorul nu este nevoit să aştepte ca
cititorii care vin după el să citească.
Scriitorul aşteaptă doar ca cititorii activi, care a ajuns
înaintea lui, să termine de citit.
Cititorii care ajung după scriitor vor aştepta ca
acesta să termine de actualizat baza de date.
www.google.ro