[so] readers&writers?

Cosmin Arad so@atlantis.cs.pub.ro
Sat, 22 Nov 2003 13:04:57 -0800 (PST)


--- Bogdan Butnaru <bogdanb@fastmail.fm> wrote:
> Nu sunt sigur daca am inteles enuntul la "Readers
> and Writers cu
> prioritate pentru writers": E vorba de o zona de
> memorie in care fiecare
> scrie/citeste unde/de unde vrea (respectand regulile
> de prioritati), cam
> ca la shared memory? Initial am crezut ca e bounded
> buffer, dar parca nu
> e asa, avand in vedere ca ati pus separat problema
> asta.

Readers and Writers modeleaza problema accesului
concurential la o inregistrare dintr-o baza de date.
Bufferul amintit in enunt e de dimensiune 1 (doar o
variabila).
Variabila poate fi citita in paralel de oricati
readeri insa nu poate fi scrisa decat de un singur
writer la un moment dat.
Asadar in timpul unei scrieri nu este permis nici un
alt acces insa in timpul unei citiri sunt admise
oricate alte citiri. Astfel, daca un reader citeste
dbufferul, in timpul acestei citiri pot sa mai apara
alte cereri de citire care sunt permise. Se observa ca
nu este exclus cazul in care cereri de citire sa
ajunga in mod constant astfel incat sa se mentina tot
timpul un cititor in buffer. In acest caz avem de-a
face cu writer starvation pt ca unui writer nu-i va fi
permis accesul la buffer decat cand toti readerii au
iesit, dar cum readerii continua sa vina ...
Voi trebuie sa implementati o solutie cu prioritate pt
writeri, in care un writer nu va astepta la infinit
chiar daca cereri de citire vin la infinit.
O solutie ar fi ca in momentul sosirii unei cereri de
scriere sa nu mai fie admisi in buffer alti cititori
decat cei care erau deja, urmand ca dupa ce citirile
deja incepute se termina, sa se faca scrierea dupa
care alte citiri sau alte scrieri.

Cosmin

__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree