Súbory na mapovanie pamäte používajú virtuálnu pamäť na mapovanie súborov do adresného priestoru procesu, po čom proces manipuluje so súborom rovnako ako s adresou v procesnom priestore, napríklad použitím memcpy a iných pamäťových operačných funkcií v jazyku C. Táto metóda sa dá dobre využiť v situáciách, keď je potrebné súbor alebo veľký súbor často spracovávať a efektivita spracovania IO je vyššia ako pri bežných IO Zdieľaná pamäť je špeciálny prípad súborov mapovaných na pamäť, ktoré mapujú časť pamäte namiesto súboru na disku. Predmetom zdieľanej pamäte je proces a operačný systém štandardne priraďuje každému procesu pamäťový priestor, pričom každý proces má prístup len k časti pamäte pridelenej operačným systémom, ale nie k iným procesom. A niekedy potrebujete pristupovať k tej istej pamäti medzi rôznymi procesmi, čo by ste mali robiť? Operačný systém poskytuje API na vytvorenie prístupu k zdieľanej pamäti a procesy, ktoré potrebujú zdieľať pamäť, môžu pristupovať k pamäti zdieľanej viacerými procesmi prostredníctvom tejto sady definovaných API a každý proces pristupuje k tejto pamäti, akoby pristupoval k súboru na pevnom disku. .Net 4.0 predstavuje System.IO. Menný priestor MemoryMappedFiles, trieda, ktorá zahŕňa API súvisiace s Windows Shared Memory, čím uľahčuje používateľom .Net používanie súborov mapovania pamäte. Používajte zdieľanú pamäť v C#. Nasledujúci kód pre App1 umožňuje používateľovi zadať riadok textu do zdieľanej pamäte; App2 neustále obnovuje konzolu a generuje najnovší obsah zdieľanej pamäte; App3 implementuje rovnaké funkcie ako App2, ale spôsob čítania je odlišný.
Na čítanie dát sa používali dve metódy. Keďže komunikácia medzi procesmi sa predtým používala len zriedka, táto metóda je len predbežným pochopením. Program je príliš jednoduchý a je veľa vecí, ktoré sa nehodnotia. Napríklad, ako vytvoriť zdieľanú pamäť, ako ju získať a vymazať a podobne.
|