[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