Mapa paměti - Memory map
v počítačová věda, a paměťová mapa je struktura dat (která obvykle spočívá v samotné paměti), která označuje jak Paměť je vyloženo. Pojem „paměťová mapa“ může mít v různých kontextech různé významy.
- Je to nejrychlejší a nejflexibilnější mezipaměti organizace, která používá asociativní paměť. Asociativní paměť ukládá adresu i obsah paměťového slova.[je třeba další vysvětlení ]
- V spouštěcí proces, předává se paměťová mapa z firmware za účelem poučení operační systém jádro o rozložení paměti. Obsahuje informace týkající se velikosti celkové paměti, všech vyhrazených oblastí a může také poskytovat další podrobnosti specifické pro architekturu.
- v virtuální paměť implementace a jednotky správy paměti, odkazuje mapa paměti tabulky stránek, které ukládají mapování mezi rozložením virtuální paměti určitého procesu a tím, jak tento prostor souvisí s adresami fyzické paměti.
- V nativním debugger programy, mapa paměti odkazuje na mapování mezi načtenými spustitelnými / knihovními soubory a oblastmi paměti. Tyto paměťové mapy se používají k řešení adresy paměti (jako ukazatele funkcí ) na skutečné symboly.
Mapa paměti BIOS
Systém BIOS počítače PC poskytuje sadu rutin, které může operační systém použít k získání rozložení paměti. Některé z dostupných rutin jsou:
Funkce BIOS: INT 0x15, AX = 0xE801 [1]:
Toto volání přerušení systému BIOS používá spuštěný operační systém k získání velikosti paměti pro konfigurace 64 MB +. Je podporován systémy AMI BIOSses ze dne 23. srpna 1994 nebo novějšího. Operační systém nastaví AX na 0xE801 a poté volá int 0x15. Pokud se vyskytla nějaká chyba, rutina se vrátí s CF (Carry Flag) nastaveným na 1. Pokud žádná chyba, rutina se vrátí s CF clear a stav registrů je popsán následovně:
Registrovat | Hodnota Popis |
---|---|
EAX | Rozšířená paměť mezi 1M a 16M, v KB. (Maximální hodnota: 0x3C00 = 15360 kB). |
EBX | Počet 64 tis. Bloků nad 16 mil. |
ECX | Konfigurovaná paměť 1M až 16M, v kB. |
EDX | Počet nakonfigurovaných 64 tis. Bloků nad 16 mil. |
Funkce BIOS: INT 0x15, AX = 0xE820 - ZÍSKEJTE MAPU PAMĚTI SYSTÉMU [2]:
Vstup:
Registrovat | Hodnota Popis |
---|---|
EAX | 0x0000E820 |
EBX | Hodnota pokračování nebo 0x0 pro začátek na začátku mapy. |
ECX | Velikost vyrovnávací paměti pro výsledek (20 bajtů). |
EDX | 0x534D4150 (ASCII pro 'SMAP') |
ES: DI | segment: umístění offsetu bufferu pro výsledek. |
Struktura vyrovnávací paměti SMAP:
Ofset | Velikost | Hodnota Popis |
---|---|---|
0 | QWORD (8 bajtů) | Základní adresa oblasti paměťové mapy, na kterou odkazuje EBX. |
8 | QWORD (8 bajtů) | Délka v bajtech. |
16 | DWORD (4 bajty) | Typ rozsahu adres. |
Jak se používá: Operační systém přidělí vyrovnávací paměť SMAP v paměti (vyrovnávací paměť 20 bajtů). Poté nastavte registry, jak je uvedeno v tabulce „Vstup“. Při prvním volání by měla být EBX nastavena na 0. Dalším krokem je volání INT 0x15. Pokud nedojde k žádné chybě, volání přerušení se vrátí s CF clear a vyrovnávací pamětí naplněná daty představující první oblast mapy paměti. Systém EBX je aktualizován systémem BIOS, takže když operační systém volá rutinu znovu, vrátí se do vyrovnávací paměti další oblast. Pokud je vše hotovo, BIOS nastaví EBX na nulu.
Viz také
Reference
Tento počítačová věda článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |