[OSy] vma_merge

Zdeněk Doležal zdenek.dolezal at gmail.com
Sat Jan 12 13:39:13 CET 2008


Dekuji za odpoved,

> (Ted narychlo nevidim nikde z ceho by plynul ten pozadavek na prirazeni
> souvisleho bloku fyzicke pameti.)

Implementace typu, ze souvisy blok virtualni pameti ma souvislou
fyzickou pamet. Pokud pak dostanu k mergovani dva sousedici virtualni
bloky, kde kazdy ale ukazuje do jine casti fyzicke pameti, musi prijit
na radu ono kopirovani do noveho souvisleho bloku fyzicke pameti.

> Pokud vas pozadavek na vraceni ENOMEM neni motivovan nejakou prapodivnou
> spatnou vlastnosti vasi implementace (jako treba ze by vase vma_merge
> udelalo vma_alloc na jeste jeden velky blok, prekopirovalo do nej data,
> pak udelalo vma_free na puvodni bloky, dalsi vma_alloc do tehoz mista na
> spojeny blok, prekopirovalo data zpatky a nakonec udelalo vma_free na tu
> docasnou kopii :-), pak by se nemel projevit na hodnoceni vasi prace.

Ted presne nevim, zda by jeste ma implementace by povazovana za
spatnou ci nikoliv.
Potrebuju docasny vma_alloc na velky blok kvuli mapovani (abych mohl
kopirovat data z fyzicke pameti do te souvisle nove oblasti), free na
jednu z oblasti, ktera uz nebude potreba. Prepsani te druhe oblasti
tak, ze ukazuje na novy blok a uvolneni docasne virtualni oblasti.

Chtel jsem se zeptat jinych skupin, jak tohle resi? Tato implementace
totiz neprochazi testy, jelikoz prave vma_merge pri vetsim zaplneni
vma vyhodi ENOMEM, kvuli tomu, ze nema misto pro docasnou virtualni
oblast.

Je dobre reseni upravit funkci na kopirovani fyzicke pameti tak, aby
kvuli vytvareni tlb mapovani nepotrebovala velky virtualni prostor ale
jen treba jednostrankovy, ktery se bude pri kopirovani kazde stranky
menit dle potreb?

-- 
S pozdravem
Zdenek Dolezal




More information about the NSWI004 mailing list