[OSy] Read/write zamky
Petr Tuma
petr.tuma at dsrg.mff.cuni.cz
Sun Dec 23 19:05:33 CET 2007
Dobry den,
> 1) ze jsou rekurzivni znamena, ze pokud si je nekdo zamkne napriklad pro
> zapis, a pak to udela znovu, tak mu to povoli mu je dvakrat zamknout,
> ale potom je musi dvakrat odemknout? (jen abych dobre pochopil co se tim
> mysli)
Ano.
> 2) kdyz sem rozmyslel ty zamky, tak nutne musi dojit k urcitemu obchodu
> v situaci kdy je zamek zamcen pro cteni a chce ho zamknout vlakno pro zapis.
> a) prestanu povolovat dalsi zapisy pro cteni (tedy budu jen cekat dokud
> neskonci vsichni ctenari) a pak zamknu pro zapis - tohle nevim jestli ma
> ocekavane chovani
> b) dal budu povolovat ctenare a az ve chvili kdy zadnej nebude, tak
> zamknu pro cteni - tady je zase problem hladoveni vlakna co chce
> zapisovat, protoze ctenari muzou stale pribyvat
> Zajimalo by mne tedy jake je ocekavane chovani techto zamku?
Ocekavane je rozumne chovani :-) vedle proste prednosti pisaru pred
ctenari, kterou popisujete jako variantu A, muzete vymyslet jeste
spoustu jinych smysluplnych variant lepsich nez vase varianta B.
Napriklad muzete mit konfigurovatelny max pocet predbehnuti pisare
pozdejsimi ctenari.
Nebo muzete monitorovat prumerny pocet ctenaru a pisaru za jednotku casu
a heuristicky uprednostnovat ctenare ci pisare podle toho, zda soucasna
situace vykazuje nadprumerny pocet jednech nebo druhych.
Nebo jde treba pridat do konfigurace zamku default deadlines pro ctenare
a pisare a delat deadline driven planovani nebo nejakou variantu na
takove chovani.
Rozmyslete si, co dava smysl :-) jake jsou prakticke situace, ktere je
dobre podporovat ? Co treba "potrebuji, aby vsechny zapisy byly ctenari
videt co nejdrive", dava takovy pozadavek smysl ? Nebo "chci, aby bez
ohledu na zatez systemu zadny klient zamku nehladovel", pripadne spojeno
s "chci i pri velke zatezi systemu, kde mezi kazdymi dvema ctenari
prijde nejaky pisar, zachovat rozumny stupen paralelismu" ?
Atd.
Petr Tuma
More information about the NSWI004
mailing list