[OSy] Vyznam MAX_AREAS

Vlastimil Babka babka at d3s.mff.cuni.cz
Thu Nov 11 22:55:19 CET 2010


On 11/11/2010 08:16 PM, Michal Klempa wrote:
> Zdravim,

Dobry vecer,

> este pre istotu, ze ci som spravne pochopil zadanie. Nech MAX_AREAS=3.
> Povedzme ze thread A namapuje postupne virtualne stranky cislo 1,3,5.
> Ked by chcel namapovat stranku 7, dostane ENOMEM, lebo uz nie je kam
> ulozit dvojicu (vpn, pfn) v statickom poli velkosti MAX_AREAS.

Ano.

> Ked vsak bude chciet namapovat stranku cislo 4. Mal by dostat ENOMEM?

Ano.

> Alebo je to ozaj myslene tak mystifikalne, ze predsa stranka 4 zapada
> medzi stranky 3,5, takze vlastne po namapovani stranky 4 by malo pole
> oblasti vyzerat takto:
> 1, 3-5
> akurat problem nastava, ze oblast 3-5 musi byt namapovana na suvisly
> blok fyzickych framov.

Neni to tak. Oblasti alokovane ruznymi volanimi vma_map by mely byt 
spravovany samostatne, i kdyz nahodou lezi vedle sebe. Vsimnete si, ze 
volani vma_unmap predava jen adresu zacatku oblasti, ktera byla predtim
alokovana pomoci vma_map. Kdybyste takhle nekolik oblasti slil, tak se 
informace o zacatcich a velikosti muzou nenavratne zmenit.

> Z opacnej strany:
> Nech vlakno namapuje stranky 1-5 naraz. Takze mozem od alokatoru
> fyzickych framov pozadovat 5 framov naraz a je to jedna oblast.
> Nasledne vlakno poziada stranky 6-10, naraz.
> Pole s oblastami vyzera teraz ako? Takto:
> 1-5, 6-10

Ano.

> alebo
> 1-10
> (s problemom od akeho fyzickeho framu idu stranky 6,7,8,9,10).

Ne, ze stejneho duvodu jako vyse.

> Neviem v com by pristup so "zlievanim" a prilepovanim stranok do areas
> bol jednoduchsi od dvojurovnoveho strankovania (ak ho spravne chapem od
> Tanenbauma).
> A keby slo o MAX_PAGES, ze nikdy proces nebude ani len pozadovat viac
> ako MAX_PAGES stranok namapovanych, tak mi to pride az prilis lahke.
> (Akurat budem tu konstatnu hladat bud doslednym citanim testov, alebo
> v mojom pripade skor hadat systemom try (pusti testy)-fail (padli testy)
> s binarnym hladanim).
>
> Ako je myslene to zadanie?

Zadani je myslene tak, ze je potreba mit strukturu, ktera bude spravovat 
oblasti virtualni pameti alokovane procesem (tzn zacatek, konec/velikost 
oblasti, prislusne fyzicke ramce...) a v ramci zakladniho zadani staci, 
aby pocet techto oblasti byl omezen konstantou a vyhledavani melo 
linearni slozitost. Dvojurovnove strankovani, ktere zminujete, ma 
dokonce konstatni slozitost, je ale nutne ho nejakym zpusobem doplnit o 
informace, kde zacinaji a konci VMA oblasti...

VB

> Dakujem.
> Michal Klempa




More information about the NSWI004 mailing list