[OSy] Vyznam MAX_AREAS

Michal Klempa michal.klempa at gmail.com
Thu Nov 11 20:16:07 CET 2010


Zdravim,
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.

Ked vsak bude chciet namapovat stranku cislo 4. Mal by dostat ENOMEM?
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.

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

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? 
Dakujem.
Michal Klempa




More information about the NSWI004 mailing list