Muistin kartoitustiedostot käyttävät virtuaalimuistia tiedostojen kartoittamiseen prosessin osoiteavaruuteen, minkä jälkeen prosessi käsittelee tiedostoa samalla tavalla kuin osoite prosessitilassa, esimerkiksi käyttämällä memcpyä ja muita muistitoimintoja C-kielellä. Tätä menetelmää voidaan käyttää hyvin tilanteissa, joissa tiedostoa tai suurta tiedostoa täytyy käsitellä usein ja IO-prosessoinnin tehokkuus on korkeampi kuin tavallisen IO:n Jaettu muisti on erityistapaus muistikartoitetuille tiedostoille, jotka kartoittavat muistin osan levyllä olevan tiedoston sijaan. Jaetun muistin aiheena on prosessi, ja käyttöjärjestelmä varaa oletuksena muistitilan jokaiselle prosessille, ja jokainen prosessi saa käyttää vain käyttöjärjestelmän sille varaamaa muistia, mutta ei muita prosesseja. Ja joskus täytyy käyttää samaa muistia eri prosessien välillä, mitä pitäisi tehdä? Käyttöjärjestelmä tarjoaa rajapinnan jaetun muistin luomiseen, ja prosessit, joiden täytyy jakaa muistia, voivat käyttää useiden prosessien jakamaa muistia tämän määriteltyjen rajapintojen kautta, ja jokainen prosessi käyttää tätä muistia ikään kuin käyttäisi tiedostoa kiintolevyllä. .Net 4.0 esittelee System.IO. MemoryMappedFiles-nimiavaruus, luokka, joka kapseloi Windowsin jaettuun muistiin liittyvät API:t, tehden .Net-ohjelmoijille helpommaksi käyttää muistikartoitustiedostoja. Käytä jaettua muistia C#:ssa. Seuraava App1-koodi antaa käyttäjän syöttää rivin tekstiä jaettuun muistiin; App2 päivittää konsolia jatkuvasti ja tuottaa uusinta jaetun muistin sisältöä; App3 toteuttaa samat toiminnot kuin App2, mutta lukutapa on erilainen.
Datan lukemiseen käytettiin kahta menetelmää. Koska prosessien välistä viestintää käytettiin aiemmin harvoin, tämä menetelmä on vasta alustava ymmärrys. Ohjelma on liian alkeellinen, ja monia asioita ei arvosteta. Esimerkiksi, miten luoda jaettu muisti, miten se haetaan ja poistetaan jne.
|