Jaettu muisti (engl. shared memory) on prosessien välinen kommunikaatiotapa, joka löytyy jossakin muodossa useista eri käyttöjärjestelmistä. Menetelmässä tietty muistialue merkitään saataville useammalle prosessille ja se voi olla nopein tapa kommunikoida minimoiden kopioiden tarvetta.
Jaetulla muistilla voidaan tarkoittaa myös tietokonelaitteiston kykyä käyttää samoja muistialueita riippuen muistiarkkitehtuurista.
Unixeissa ja Unixin kaltaisissa käyttöjärjestelmissä voidaan käyttää System V järjestelmäkutsuja shmget()
ja shmctl()
jaetun muistialueen luomiseen ja käsittelyyn. Uudempi POSIX-yhteensopiva rajapinta käyttää shm_open()
, ftruncate()
ja mmap()
järjestelmäkutsuja.[1] Käyttöjärjestelmät voivat tukea molempia tapoja.[2]
Windowsissa käytetään CreateFileMapping()
ja MapViewOfFile()
funktioita tai CreateSharedMemory()
ja AllocateSharedMemory()
jaetun muistialueen käsittelyyn.[3][4]
Jaettu muisti ei itsessään määrittele dataformaattia jaetuille tiedoille.
Muistialue ei ole varattu prosessilta.[5]