Datoteke za preslikavo pomnilnika uporabljajo virtualni pomnilnik za preslikavo datotek v naslovni prostor procesa, nato pa proces manipulira z datoteko enako kot z naslovom v procesnem prostoru, na primer z uporabo memcpy in drugih funkcij za operacije pomnilnika v jeziku C. Ta metoda se dobro uporablja v situacijah, kjer je treba datoteko ali večjo datoteko pogosto obdelovati, in je učinkovitost obdelave vhodno-vhodnih operacij višja kot pri običajnih vhodnih operacijah Deljeni pomnilnik je poseben primer datotek, preslikanih v pomnilnik, ki preslikajo del pomnilnika namesto datoteke na disk. Predmet skupnega pomnilnika je proces, operacijski sistem pa privzeto dodeli pomnilniški prostor vsakemu procesu, pri čemer ima vsak proces dostop le do dela pomnilnika, ki mu ga dodeli operacijski sistem, ne pa tudi drugim procesom. In včasih moraš dostopati do istega kosa spomina med različnimi procesi, kaj naj storiš? Operacijski sistem zagotavlja API za ustvarjanje dostopa do skupnega pomnilnika, procesi, ki morajo deliti pomnilnik, pa lahko dostopajo do pomnilnika, ki ga deli več procesov prek tega nabora definiranih API-jev, vsak proces pa dostopa do tega pomnilnika, kot da bi dostopal do datoteke na trdem disku. .Net 4.0 uvaja System.IO. Imenski prostor MemoryMappedFiles, razred, ki zajema API-je, povezane z Windows Shared Memory, kar programerjem .Net olajša uporabo datotek za preslikavo pomnilnika. Uporabite deljeni pomnilnik v C#. Naslednja koda za App1 uporabniku omogoča vnos vrstice besedila v skupni pomnilnik; App2 nenehno osvežuje konzolo in izpisuje najnovejšo vsebino skupnega pomnilnika; App3 izvaja enake funkcije kot App2, vendar je metoda branja drugačna.
Za branje podatkov sta bili uporabljeni dve metodi. Ker je bila komunikacija med procesi prej redko uporabljena, je ta metoda le predhodno razumevanje. Program je preveč osnovni in veliko stvari ni ocenjeno. Na primer, kako ustvariti skupni spomin, kako ga pridobiti in izbrisati itd.
|