Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica
Problema cititorilor si scriitorilor

Problema cititorilor si scriitorilor


Problema cititorilor si scriitorilor

Consideram o baza de date (de ex., pentru rezervarea biletelor la avion) si multe procese care vor sa acceseze aceasta baza de date pentru scriere sau citire. Se permite ca mai multe procese sa citeasca simultan dar, daca unul din procese vrea sa scrie (sa modifice) baza de date, niciunul din celelalte procese nu au voie sa acceseze baza de date (nici pentru scriere, nici pentru citire).

O solutie este prezentata mai jos.

Primul cititor care acceseaza baza de date, executa un DOWN pe un semafor db (nepermitand niciunui scriitor sa acceseze baza de date). Urmatorii cititori incrementeaza un contor rc. Pe masura ce cititorii pleaca, contorul este decrementat, iar ultimul executa un UP pe semaforul db, permitand astfel scriitorului blocat, daca exista, sa acceseze baza de date.

Aceasta solutie acorda prioritate cititorilor asupra scriitorilor. Astfel, daca un scriitor apare in timp ce alti cititori se afla deja in baza de date, scriitorul trebuie sa astepte pana pleaca toti cititorii.



typedef int semafor;

semafor mutex=1;

semafor db=1;

int rc=0;

/* controleaza accesul la rc */

/* controleaza accesul la baza de date */

/* nr. procese cititor */

void cititor(void)

}

void scriitor()

}





Politica de confidentialitate


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