[OSy] Detekce velikosti a struktury pameti

Michal Tuláček - iGroup.cz michal.tulacek at igroup.cz
Sun Dec 2 00:24:21 CET 2007


Zdravim konferenci... pred casem zde bylo mnoho mailu na tema "jak
detekovat rozsah pameti", obsahovaly mnoho ruznych navodu apod..

Jedinym univerzalnim resenim se nakonec ukazalo si pamet "otukat" a
zjistit kam realne muzu psat...

Presto... pro ucely testu, je mozne mit promennou memory_map, napr:

struct MemMap {
        void* start;
        void* end;
};

struct MemMap memory_map[] = {
        {0x00021000, 0x01021000},
        {0x20000000, 0x21000000},
        {0x50000000, 0x51000000},
        {0,0}
        };

s tim ze toto odpovida zaznamum v msim.conf:

add rwm mem_main                0x00021000              16M
mem_main        generic
mem_main  fill 0

add rwm mem_kseg1               0x20000000              16M
mem_kseg1       generic
mem_kseg1  fill 0

add rwm mem_somewhere           0x50000000              16M
mem_somewhere   generic
mem_somewhere  fill 0


------

tzn mame kus pameti jak mapovatelnou v KSEG0, tak v KSEG1 tak jinde.
Problem tkvi v tom, ze otestovani celych 4GB "co tam je kde
namapovano" pomerne dost trva... A v jednom bloku to nemam prave
proto, aby bylo mozno s relativne malymi naroky na simulujici pocitac (tady 48MB) otestovat
chovani napr frame_alloc na celem adresnim prostoru.

Dejme tomu ze bychom do "finalni verze OS v souladu s
rozsirenym zadanim 2" pridali realne otukani pameti (proste by to
projelo cela ta 4GB fyzicke pameti a tu mapu by si to vymyslelo samo),
ale vzhledem k tomu ze pokud me pamet neklame neni v zadani
specifikovano "system pozna velikost dostupne pameti", tak bych v teto
fazi pouzil toto reseni...

Otazka tedy zni, splnuje zakladni zadani takove reseni, ktere si informace o
dostupne pameti precte z predem definovane promenne, kterou bude nutno
rucne zmenit v assignment-2.h v pripade ze by se menily pametove bloky v
msim.conf?

        
-- 
S pozdravem,
 Michal Tuláček - iGroup.cz
 mailto:michal.tulacek at igroup.cz





More information about the NSWI004 mailing list