[OSy] Otazky k 2. zadani

Martin Decky decky at dsrg.mff.cuni.cz
Mon Nov 5 21:11:02 CET 2007


Hezky vecer,

> 1.
> Mame pocitat s tim, ze dostaneme fyzickou pamet vetsi nez 512MB?

Ano. Vase reseni by melo byt pripraveno na efektivni vyuzivani fyzicke
pameti, ktera neni primo pristupna pres KSEG0/KSEG1.

> 2.
> Neni mi jasna tato veta:
>> Alokace v segmentech KSEG0 a KSEG1 se vzajemne vylucuji, pokud jsou
>> mapovany na stejne fyzicke adresy.
> -> V manualu a vyse v zadani je psano, ze tyto segmenty se nemapuji
> pomoci TLB, ale jejich umisteni je pevne dano. Proto mi to nedava smysl.
> -> A i kdyby toto neplatilo, nechapu, proc a jak by mely byt mapovany na
> stejne fyzicke adresy.

Jak jste jiz sama psala, KSEG0 a KSEG1 jsou skutecne identicky mapovany
(bez pouziti TLB) na stejny rozsah fyzickych adres. Pri letmem seznameni
s architekturou MIPS se tento detail casto pro zjednoduseni opomiji ..

> 3.
>> Vraci ..., EINVAL pokud nebylo mozne alokovat oblast se zacatkem
>> na adrese @from v danem segmentu virtualniho adresoveho prostoru
>> procesoru, nebo pokud @from ci @size nejsou zarovnany, ...
> Co znamena, ze jsou zarovnany? Je tim mysleno na 4kB, nebo jak?

Mapovani virtualnich stranek na fyzicke ramce neni mozne delat po
mensich kusech nez je velikost stranky. "Zarovnanim" je tedy mysleno to,
ze adresa i velikost musi byt celociselnym nasobkem velikosti stranky,
typicky tedy 4 KiB.

K doplnujicimu dotazu: vma_alloc() skutecne umoznuje alokovat z KSEG0 i
KSEG1, ale je pochopitelne potreba zajistit, aby se nic nealokovalo
(z pohledu fyzicke pameti) dvakrat.

> 4.
> Bude stacit, pokud bude nas kernel zvladat 256 virtualnich adresovych
> prostoru? (Tedy v dalsim zadani 256 procesu?)

Ne, to by bylo velmi neprirozene omezeni, takze to stacit nebude. Musite
tedy implementovat nejakou strategii pridelovani ASIDu adresovym prostorum.


M.D.




More information about the NSWI004 mailing list