Atmiņas kartēšanas faili izmanto virtuālo atmiņu, lai kartētu failus uz procesa adrešu telpu, pēc tam process manipulē ar failu tāpat kā ar adresi procesa telpā, piemēram, izmantojot memcpy un citas atmiņas darbības funkcijas C valodā. Šo metodi var labi izmantot situācijās, kad fails vai liels fails ir jāapstrādā bieži, un IO apstrādes efektivitāte ir augstāka nekā parastajam IO Koplietojamā atmiņa ir īpašs atmiņas kartēšanas failu gadījums, kas kartē atmiņas daļu, nevis failu diskā. Koplietojamās atmiņas priekšmets ir process, un operētājsistēma pēc noklusējuma katram procesam piešķir atmiņas vietu, un katram procesam ir atļauts piekļūt tikai operētājsistēmas piešķirtajai atmiņas daļai, bet ne citiem procesiem. Un dažreiz jums ir jāpiekļūst vienam un tam pašam atmiņas gabalam starp dažādiem procesiem, kas jums jādara? Operētājsistēma nodrošina API, lai izveidotu piekļuvi koplietojamai atmiņai, un procesi, kuriem nepieciešama koplietošanas atmiņa, var piekļūt atmiņai, ko koplieto vairāki procesi, izmantojot šo definēto API kopu, un katrs process piekļūst šai atmiņai tā, it kā tas piekļūtu failam cietajā diskā. .Net 4.0 iepazīstina ar System.IO. MemoryMappedFiles nosaukumvieta — klase, kas iekapsulē ar Windows koplietojamo atmiņu saistītos API, atvieglojot .Net programmētājiem atmiņas kartēšanas failu lietošanu. Izmantojiet koplietojamo atmiņu C#. Šis App1 kods ļauj lietotājam ievadīt teksta rindiņu koplietojamajā atmiņā; App2 pastāvīgi atsvaidzina konsoli un izvada jaunāko koplietojamās atmiņas saturu; App3 īsteno tādas pašas funkcijas kā App2, bet lasīšanas metode ir atšķirīga.
Datu nolasīšanai tika izmantotas divas metodes. Tā kā komunikācija starp procesiem iepriekš tika izmantota reti, šī metode ir tikai provizoriska izpratne. Programma ir pārāk rudimentāra, un ir daudzas lietas, kas netiek vērtētas. Piemēram, kā izveidot koplietojamu atmiņu, kā to izgūt un izdzēst utt.
|