[OSy] Upresneni zadani - neblokujici seznamy

Martin Decky decky at d3s.mff.cuni.cz
Tue Feb 28 12:37:51 CET 2012


Hezky den,

> Soucasti zadani je implementace neblokujiciho spojoveho seznamu dle
> vhodne zvoleneho algoritmu. Dale se pise, ze implementace tohoto seznamu
> by mela byt shodna nebo maximalne podobna klasicke implementaci
> spojovych seznamu.

Presne je v zadani napsano, ze _rozhrani_ neblokujici datove struktury 
by melo byt shodne nebo podobne klasicke blokujici implementaci (tedy 
jejimu rozhrani). Implementace jako takova bude nepochybne dost odlisna.

Motivace k podobnosti rozhrani obou implementaci je samozrejme to, aby 
bylo mozne obe varianty snadno porovnat na stejnem workloadu.

> Jelikoz soucasti zadani je i vytvoreni testu/benchmarku, ktery otestuje
> tuto neblokujici strukturu v porovnani s klasickou implementaci
> pouzivajici synchr. primitiva, porovnaval bych tedy tuto implementaci
> neblok. seznamu s usporadanym spojovym seznamem vyuzivajici mutex pro
> zajisteni atomicity operaci insert, remove, find.

Principielne to je spravne. Zustava otazka, jestli by se nenasel nejaky 
dustojnejsi protivnik -- napriklad spojove seznamy, ktere nepouzivaji 
pouze jeden globalni mutex pro zamykani cele struktury, ale treba nejake 
hierarchicke zamky nebo nejaky jiny trik, ktery umozni trochu vetsi miru 
paralelismu (globalni zamek, lokalni zamky na jednotlive polozky, 
hand-over-hand locking apod.).

Ale to uz zalezi na konkretnich detailech Vasi implementace, kterou neznam.

> Zajima me tedy, jestli tato varianta neblok. seznamu odpovida zadani a
> zda tedy mohu pro benchmarking pouzit usporadane varianty spojovych
> seznamu...

Myslim si, ze to zadani rozhodne nijak neodporuje.


M.D.




More information about the NSWI004 mailing list