Windows hukommelsesstyring

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er lidt forvirret over Windows Memory Management.


Jeg har læst et sted, hvor hver proces i Windows (32 bit) får sin egen 4 GB hukommelse - takket være bytte til disk. Men 32bit Windows kan bruge maks 4 GB. Så jeg troede, at hver proces kun 'tænker' den har 4 GB, men i virkeligheden har den færre.
Har jeg ret?


Så hvordan kan jeg få adgang til data fra en proces til en anden? Hvis jeg laver 2 PE'er ved 0x400000, hvordan gør jeg det? Kan du give mig et eksempel i C eller ASM?


Kan nogen forklare dette for mig yderligere? Måske peger mig på en god artikel.


Bare en kort beskrivelse er nok :).
Tak.

Bedste reference


Prcesses kan adressere op til 4 GB adresser, som er eller ikke understøttes af 'ægte' hukommelse. Windows OS, selv 32-bit, kan adressere mere end 4 GB, men kan have grunde til at begrænse dette beløb, eller grænserne er fastsat af hardware.



  • Om hukommelsesstyring:




  Hver proces på 32-bit Microsoft Windows har sin egen virtuelle adresse plads, der gør det muligt at adressere op til 4 gigabyte hukommelse. [[...]] [1]




  • [2] Windows Internals Book - Kapitel 9: Hukommelsesstyring