Mälukaardistamisfailid kasutavad virtuaalmälu, et kaardistada faile protsessi aadressiruumiga, mille järel protsess manipuleerib faili samamoodi nagu protsessiruumi aadressiga, näiteks kasutades memcpy ja muid mälutoimingute funktsioone C keeles. Seda meetodit saab hästi kasutada olukordades, kus faili või suurt faili tuleb sageli töödelda ning IO töötlemise efektiivsus on kõrgem kui tavalisel IO-l Jagatud mälu on mälukaardistatud failide erandjuhtum, mis kaardistavad mälutüki faili asemel kettal. Jagatud mälu teemaks on protsess ning operatsioonisüsteem eraldab vaikimisi igale protsessile mäluruumi ning iga protsess pääseb ligi ainult operatsioonisüsteemi poolt eraldatud mälule, kuid mitte teistele protsessidele. Ja mõnikord on vaja kasutada sama mälutükki erinevate protsesside vahel, mida peaksid tegema? Operatsioonisüsteem pakub API-d jagatud mälu ligipääsu loomiseks ning protsessid, mis vajavad mälu jagamist, saavad selle määratletud API-de komplekti kaudu ligi mitme protsessi jagatud mälule ning iga protsess pääseb sellele mälule ligi nagu failile kõvakettal. .Net 4.0 tutvustab System.IO. MemoryMappedFiles nimeruum, klass, mis kapseldab Windowsi jagatud mäluga seotud API-sid, muutes .Net programmeerijatel mälukaardistamisfailide kasutamise lihtsamaks. Kasuta C#-s jagatud mälu. Järgmine kood App1 jaoks võimaldab kasutajal sisestada tekstirea jagatud mällu; App2 värskendab pidevalt konsooli ja väljastab viimast jagatud mälu sisu; App3 täidab samu funktsioone nagu App2, kuid lugemismeetod on erinev.
Andmete lugemiseks kasutati kahte meetodit. Kuna protsessidevahelist suhtlust kasutati varem harva, on see meetod vaid esialgne arusaam. Programm on liiga algeline ja on palju asju, mida ei hinnata. Näiteks kuidas luua jagatud mälu, kuidas seda taastada ja kustutada jne.
|