Jump to content

User:Mounmaa/sandbox

From Wikipedia, the free encyclopedia


Mällu vastendatud fail on osa virtuaalsest mälust, millele vastab baitide üks-ühene vastavavus mingile osale failist või faili laadsest ressurssist. Tavaliselt kasutatakse kõvakettal eksisteerivat faili, kuid saab ka kasutada teisi vahendeid, millele operatsioonisüsteem suudab viidata kasutades failikirjeldajat. Sellist vastavust ära kasutades saab programm kasutada virtuaalset mälu samamoodi nagu see oleks primaarne mälu.

Kasutus

[edit]

Kõige tavalisem koht, kus rakendatakse mällu vastendatud faile, on tänapäeva operatsioonisüsteemide protsesside laadijas. Kui protsess käivitatakse, siis operatsioonisüsteem kasutab mällu vastendatud faili, et mällu käivitamiseks tuua jooksutatav fail koos tema kõikide laaditavate moodulitega. Enamus mälu vastendamise süsteeme kasutavad nõudmise põhjal lehekülgede saalimist, kus lehekülg laetakse mällu ainult siis, kui mingi protsess on seda nõudnud. [1] Käivitavate failide korral lubab selline käitumine operatsioonisüsteemil valikuliselt laadida ainult need osad protsessist, mida on tegelikult vaja täita.

Teine tavaline koht, kus kasutatakse mällu vastendatud faile, on mälu jagamine mitme protsessi vahel. Tänapäeva operatsioonisüsteemides ei ole üldiselt lubatud protsessidel kasutada mäluruumi, mis on allokeeritud teise protsessile kasutamiseks. On olemas erinevaid meetodeid, kuidas turvaliselt jagada mälu protsesside vahel, kuid mällu vastendatud failide sisend/väljund on üks kõige populaarsemaid. Kaks või enam programmi saavad samaaegselt vastendada ühe füüsilise faili mällu ja siis sellele mälule ligipääseda. [2]

Tüübid

[edit]

Mällu vastendatud faile on kahte tüüpi:

Säiliv

[edit]

Säilivatele mällu vastendatud failidele on vastavusse seatud reaalne fail kettal. Kui kõik protsessid on faili kasutamise lõpetanud salvestatakse andmed lähtefaili. Säilivaid mällu vastendatud faile on mõistlik kasutada, kui töötatakse väga suurte lähtefailidega. [3]

Mitte säiliv

[edit]

Mitte säilivatele mällu vastendatud failidele ei seata vastavusse faili kettal. Kui viimane protsess lõpetab faili kasutamise, siis kõik andmed kaovad ning prügikoristus eemaldab faili. Sellist lähenemist eelistatakse juhtudel, kus töötatakse mitme protsessi vahel jagatud failidega ja protsesside vahelise suhtlusega. [3]

Eelised

[edit]
  • Kiire ja kerge ligipääs andmetele, nagu nad oleks juba mälus olemas [4]
  • Võrreldes tavalise sisend/väljundiga on jõudlus palju parem [4]
  • Kaudselt asünkroonsetes programmides ei teki lõimede probleeme [4]

Puudused

[edit]
  • Kasutab palju rohkem mälu kui tavaline sisend/väljund [4]
  • Puudub kontroll, kui palju mälu kasutatakse ja kui kaua andmed püsivad muutmälus [4]
  • Mällu vastendatud failid nõuavad kindlaks määratud faili suurust, nende mahtu on väga raske muuta [4]
  • Bait baidile vastendamine teeb väga raskeks faili andmete kokkupakkimise [4]
  • Mällu vastendatud failid ei toeta failide jagamist [4]

Ajalugu

[edit]

TOPS-20 PMAP

[edit]

Kõige esimene mällu vastendatud failide rakendamine oli PMAP süsteemi kutse DEC-20's TOPS-20 operatsioonisüsteemis. [5] Seda hakati arendama 1969 aastal ja valmis sai 1976 aastal.

SunOS 4 mmap

[edit]

SunOS 4(Detsember 1988) tutvustas Unixi käsu 'mmap', mis lubas programmidel faile vastendada mällu. [6]

Kasvavad mällu vastendatud failid (GMMF)

[edit]

Kaks aastakümmet pärast TOPS-20's PMAP avalikustamist tekkis Windows NT-sse kasvavad mällu vastendatud failid. [7]

Viited

[edit]
  1. ^ Tutorial, Linux Knowledge Base and. "Linux Knowledge Base and Tutorial". www.linux-tutorial.info. Retrieved 2018-11-04.
  2. ^ "Memory Mapped File IPC" (PDF).
  3. ^ a b mairaw. "Memory-Mapped Files". docs.microsoft.com. Retrieved 2018-11-04.
  4. ^ a b c d e f g h "The Hidden Costs of Memory Mapped Files – Danny Thorpe". dannythorpe.com. Retrieved 2018-11-04.
  5. ^ "TOPS-20 Monitor Calls Reference Manual" (PDF).
  6. ^ "Chris's Wiki :: blog/unix/SbrkVersusMmap". utcc.utoronto.ca. Retrieved 2018-11-04.
  7. ^ Richter, Jeffrey (October 1995). "Add Growable Memory-Mapped Files to your App". Microsoft Systems Journal. pp. 17–28.