[OSy] Testy as2

Martin Decky decky at dsrg.mff.cuni.cz
Wed Dec 10 13:13:27 CET 2008


> Ja jsem prave presvedcen, ze ze zadani nikde jednoznacne neplyne, ze by 
> vma_alloc mel pouze mapovat virtualni ramce na fyzicke.

Vazeny pane kolego,

chybu v interpretaci zadani muze asi udelat kazdy a koneckoncu take 
proto existuji testy, aby zabranily odevzdani reseni, ktere vychazi ze 
spatneho pochopeni zakladnich principu operacniho systemu.

Proto Vam doporucuji zamerit se nyni spise na programovani nez na 
vysvetlovani toho, proc jste puvodne k mylnym zaverum dosli. Myslim si 
totiz, ze pri pozornem cteni v textu zadani zadne nekonzistence nejsou a 
vsude se pouzivaji stejne klicove pojmy. V utrzcich textu zadani nize 
jsem se snazil klicova slova zvyraznit:


Sprava *OBLASTI* virtualni pameti zahrnuje _ALOKACI_, manipulaci a 
uvolnovani *OBLASTI* [...]

*OBLASTI* se nesmi prekryvat, velikost a zacatek *OBLASTI* musi byt 
ZAROVNAN na nejmensi velikost stranky [...]

vma_alloc:
Funkce _ALOKUJE_ *OBLAST* [...]

> Tedy - Funkce provede nekde nejakou alokaci ve virtualnim prostoru 
> (vyhleda vhodne misto ve virtualnim adresovem prostoru) o velikosti 
> daneho poctu byte (nikoliv stranek), pak nalezne stejnou oblast ve 
> fyzicke pameti a az na zaver mezi nimi vytvori mapovani. Z dane vety 
> zkratka necitim, ze by mapovala stranky.

Pokud dovedete mapovat neco jineho nez stranky, tak bych Vase 
pochybnosti chapal. Bohuzel, na MIPSu a pravdepodobne ani zadnem jinem 
existujicim procesoru nic mensiho nez stranky mapovat nelze ..

A jeste jedno dulezite upozorneni: Funkce vma_alloc() skutecne neni 
"malloc pro procesy nad virtualni pameti". Kdyz si prectete zadani
3. semestralni prace, zjistite, ze alokator uzivatelskeho heapu procesu 
je dalsi (tentokrat ciste uzivatelska) vrstva spravy pameti a "zije"
v OBLASTI virtualni pameti (vytvorene pomoci vma_alloc()).


M.D.




More information about the NSWI004 mailing list