? Delt hukommelse er en måde for de forskellige elementer i et edb- system til at kommunikere med hinanden ved at læse og skrive til den samme blok RAM. Elementerne kan være forskellige udførelse tråde inden for det samme program , forskellige programmer eller programmer og hardwareenheder . Systemwide delt hukommelse var normen i de tidlige dage af computing. Moderne beskyttet tilstand operativsystemer som Linux normalt ikke tillader forskellige programmer til at få adgang til hinandens hukommelse for sikkerhed og stabilitet årsager , medmindre der specifikke procedurer følges til eksplicit tillade det. Historie
p Alle hukommelse var altid deles af alle programmer i begyndelsen , " real mode" operativsystemer som DOS. Ethvert program kunne læse eller skrive noget andet program hukommelse som helst uden begrænsninger. Forfattere af DOS TSR'er såkaldte " opsige and Stay Resident " programmer brugt denne funktion i mange smarte måder at simulere multitasking og udvide funktionaliteten af andre programmer uden adgang til den originale kildekode. Denne funktion også tilladt virusser at udbrede meget let, tilbød programmer ingen sikkerhed mod inspektion af deres data fra andre programmer , og gjort det let at gå ned hele systemet gennem en lille programmeringsfejl , der ved et uheld overskrevet mindet om nogle andre processer. < Br >
beskyttet tilstand
Intels ingeniører anerkendt de sikkerhedsmæssige og stabilitet problemer, skabt af systemwide delt hukommelse , så de udviklede "beskyttet tilstand ", som først dukkede op på 80.286 chips. Beskyttet tilstand introducerer begrebet "ringe " eller privilegium niveauer . Ring 0 processer , beregnet til operativsystemets kerne , kan læse og skrive nogen hukommelse . Ring 3 processer, der er bestemt for almindelige programmer , bliver stoppet fra at læse og skrive hinandens hukommelse ved hardwaren. Forsøg på at gøre så resulterer i en " segmenteringsfejl " fejl og normalt afslutter ulovlige program .
Moderne Delt hukommelse
Beskyttet tilstand forhindrede mange af de problemer forårsaget af systemwide delt hukommelse i real mode , men det er stadig undertiden ønskeligt for et program at kunne læse og skrive hukommelse , der deles med et andet program eller enhed . Operativsystemer såsom Linux, derfor tilføjet støtte til eksplicit delt hukommelse. Programmer og enheder kan vælge at dele hukommelse med hinanden , dog med visse begrænsninger . Tråde for udførelse inden for en program deler deres hukommelse som standard .
Parallel Computing
Mange computere indeholde mere end én CPU kerne. Programmer kan opdele sig i flere "tråde " af udførelse, kan hver især udfører på samme tid , for at fremskynde den overordnede operationer, som kræves på nogle data. De har ofte brug for at operere på de samme data samtidigt eller kommunikere deres tilstand til hinanden og delt hukommelse er en populær måde at gøre dette .
Dynamic Biblioteker
Almindeligt brugt dynamiske biblioteker såsom libc typisk indlæst af mange forskellige programmer . Da formålet kode i disse biblioteker bruges normalt i en read-only måde ved hjælp af programmer , kan betydelige hukommelse opnås besparelser med delt hukommelse . Den dynamisk bibliotek kan indlæses én gang af operativsystemet og deles blandt en række programmer , generelt faldende hukommelse.