? Delt minne er en måte for ulike elementene i et datasystem for å kommunisere med hverandre ved å lese og skrive til samme blokk med RAM . Elementene kan være forskjellige utførelse tråder innenfor samme program , ulike programmer, eller programmer og maskinvare-enheter . Hele systemet delt minne var normen i de tidlige dager av databehandling . Moderne beskyttet modus operativsystemer som Linux vanligvis ikke tillate ulike programmer for å få tilgang til hverandres minne for sikkerhet og stabilitet grunner , med mindre spesifikke prosedyrer blir fulgt til eksplisitt tillater det . Historie
All minne ble alltid delt av alle programmene i begynnelsen , "real mode " operativsystemer som DOS . Ethvert program kunne lese eller skrive noe annet program minne når som helst uten restriksjoner . Forfattere av DOS TSRer - såkalt " avslutte og holde bosatt " programmer brukt denne funksjonen på mange smarte måter å simulere multitasking og utvide funksjonaliteten til andre programmer uten tilgang til den originale kildekoden . Denne funksjonen har også lov virus å forplante veldig lett, tilbød programmer ingen sikkerhet mot inspeksjon av sine data ved andre programmer , og gjorde det lett å krasje hele systemet gjennom en liten programmeringsfeil som tilfeldigvis overskrev minnet om noen andre prosesser .
beskyttet modus
Intels ingeniører anerkjent sikkerhet og stabilitet problemene skapt av hele systemet delt minne , så de utviklet "beskyttet modus ", som først dukket opp på 80 286 chips. Beskyttet modus introduserer begrepet "ringer ", eller privilegium nivåer . Ring 0 prosesser , beregnet for operativsystemet kjernen , kan lese og skrive noe minne . Ring 3 prosesser , beregnet for vanlige programmer, blir stoppet fra å lese og skrive hverandres minne av maskinvaren. Forsøk på å gjøre dette resulterer i en " segmentering feil " feil og vanligvis avslutter uakseptable programmet .
Modern deleminne
Beskyttet modus forhindret mange av problemene forårsaket av hele systemet delt minne i fast modus, men det er likevel av og til ønskelig for et program for å være i stand til å lese og skrive minne som er delt med et annet program eller enhet. Operativsystemer som Linux , derfor lagt til støtte for eksplisitt delt minne . Programmer og enheter kan velge å dele minnet med hverandre , med visse begrensninger . Tråder gjennomføring innenfor ett program aksje deres minne som standard .
Parallel Computing
Mange datamaskiner inneholder mer enn én CPU kjerne. Programmer kan dele seg opp i flere "tråder " av gjennomføring, kan hver av dem kjøre på samme tid , for å fremskynde den samlede operasjoner som kreves på enkelte data . De trenger ofte å operere på de samme dataene samtidig eller kommunisere sin tilstand til en annen, og delt minne er en populær måte å gjøre dette .
Dynamiske biblioteker
Vanligvis brukt dynamiske biblioteker som libc er vanligvis lastet av mange forskjellige programmer. Siden målet kode i disse bibliotekene er vanligvis brukes i en skrivebeskyttet måte av programmer , kan betydelige minne besparelser oppnås med delt minne . Den dynamiske bibliotek kan lastes bare én gang av operativsystemet og delt mellom en rekke programmer , redusere samlede minnebruk .