Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 23927|Odgovoriti: 2

[Vir] C# izvaja preslikavo procesnega pomnilnika za deljenje datotečnega pomnilnika

[Kopiraj povezavo]
Objavljeno na 7. 10. 2017 18:51:10 | | |
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.




Prejšnji:.net/c# šifrirana izvorna koda CryptoJS aes
Naslednji:activemq Persistentna shramba je polna
 Najemodajalec| Objavljeno na 3. 10. 2025 16:10:57 |
.NET/C# implementira program singleton na osnovi Mutex in MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

.NET/C# procesi starš-otrok komunicirajo z uporabo MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com