[OSy] Testy as2

Ersin ersin at post.cz
Tue Dec 9 16:53:00 CET 2008


Dobre odpoledne,

Poustime testy as2, a jeden test nas velice prekvapil.
Konkretne test area1, test se inicializuje na radku 319.

Test spusti funkci vma_alloc(), po ktere vyzaduje alokaci zhruba 8kB pameti od adresy 0x00000000, a vyzaduje, aby tato alokace skoncila uspesne.

Jedna se o alokaci ve virtualnim prostoru, adresa stranky je proto prelozena na jinou stranku ve fyzickem prostoru. Problem je, ze offset bloku v ramci stranky se samozrejme nepreklada - a tak test vyzaduje alokaci bloku na zacatku stranky. Nase implementace na zacatku stranky drzi hlavicky jednotlivych bloku s velikosti bloku (ktere jsou nutne) - a tak odmitne alokovat od zacatku bloku.

Prijde mi zvlastni chtit alokovat od adresy 0 (ktera v Ccku vetsinou znamena NULL).

Rad bych se proto zeptal - funkce vma_alloc() vyzaduje podle zadani zarovnany parametr size. Mysli se tim zarovnany na 4B, nebo na velikost stranky?
Dale - proc vlastne funkce frame_alloc a vma_alloc umoznuji donutit alokator k alokaci na dane adrese? Prijde mi, ze pokud nasim cilem je zajistit kazdemu procesu separovanou pamet, nad kterou muze provozovat malloc(), neni tato funkce vubec potreba.

Jedine rozumne reseni, ktere vidim, je zrusit hlavicky bloku. Jenze pak by musela nekde existovat struktura s velikostmi bloku, a v te by bylo nutno vyhledavat - coz by bylo pomale.

Diky za odpovedi a nazory.

Ersin




More information about the NSWI004 mailing list