Minnesmappningsfiler använder virtuellt minne för att mappa filer till processens adressutrymme, varefter processen manipulerar filen precis som adressen i processutrymmet, till exempel med memcpy och andra minnesoperationer i C-språket. Denna metod kan användas väl i situationer där en fil eller en stor fil behöver bearbetas ofta, och IO-bearbetningseffektiviteten är högre än för vanlig IO Delat minne är ett specialfall av minnesmappade filer, som mappar en minnesbit istället för en fil på disk. Ämnet delat minne är Process, och operativsystemet tilldelar som standard ett minnesutrymme till varje process, och varje process får endast åtkomst till en minnesbit som operativsystemet har tilldelat sig, men inte till andra processer. Och ibland behöver du komma åt samma minnesbit mellan olika processer, vad ska du göra? Operativsystemet tillhandahåller ett API för att skapa åtkomst till delat minne, och processer som behöver dela minne kan komma åt minnet som delas av flera processer via denna uppsättning definierade API:er, och varje process får tillgång till detta minne som om den vore att komma åt en fil på en hårddisk. .Net 4.0 introducerar System.IO. MemoryMappedFiles-namnrymden, en klass som kapslar in Windows Shared Memory-relaterade API:er, vilket gör det enklare för .Net-programmerare att använda minnesmappningsfiler. Använd delat minne i C#. Följande kod för App1 låter användaren mata in en textrad i delat minne; App2 uppdaterar ständigt konsolen och skickar ut det senaste delade minnesinnehållet; App3 implementerar samma funktioner som App2, men läsmetoden är annorlunda.
Två metoder användes för att läsa datan. Eftersom kommunikation mellan processer sällan användes tidigare är denna metod endast en preliminär förståelse. Programmet är för grundläggande, och det finns många saker som inte bedöms. Till exempel hur man skapar ett delat minne, hur man hämtar och tar bort det, osv.
|