Gedeeld geheugen is een manier voor de verschillende onderdelen van een computersysteem om te communiceren met elkaar door het lezen van en schrijven naar hetzelfde blok RAM . De elementen kunnen zijn verschillende uitvoering threads binnen hetzelfde programma , verschillende programma's of programma's en hardware-apparaten . Systemwide gedeeld geheugen was de norm in de begindagen van de computer . Moderne beveiligde modus besturingssystemen zoals Linux doorgaans niet mogelijk om verschillende programma's om toegang te krijgen tot elkaars geheugen voor veiligheid en stabiliteit redenen , tenzij er specifieke procedures worden gevolgd om expliciet toestaan. Geschiedenis Alle geheugen is altijd gedeeld door alle programma's in het begin , " real-modus " operating systemen , zoals DOS . Elk programma kan op elk gewenst moment lezen of schrijven geheugen een ander programma zonder beperkingen . Auteurs van DOS TSR - zogenaamde ' Terminate and Stay Resident " programma's gebruikt deze functie op veel slimme manieren te simuleren multitasking en de functionaliteit van andere programma's uit te breiden , zonder toegang tot de originele broncode . Deze functie ook toegestaan virussen om heel gemakkelijk voortplanten , bood programma geen beveiliging tegen de controle van hun gegevens door andere programma's , en maakte het gemakkelijk om het hele systeem crashen door een kleine programmeerfout die per ongeluk overschreven het geheugen van een aantal andere processen . < Br ingenieurs > beveiligde modus Intel's erkende de veiligheid en stabiliteit problemen die ontstaan door het hele systeem gedeeld geheugen , dus ontwikkelden ze ' protected mode ', die voor het eerst verscheen op 80.286 chips . Beveiligde modus introduceert het concept van de " ringen ", of voorrecht niveaus . Ring 0 processen , bestemd voor de kernel van het besturingssysteem , kan lezen en schrijven elk geheugen . Ring 3 processen bestemd voor gewone uitzendingen worden gestopt lezen en schrijven elkaars geheugen door de hardware . Een poging om zo resultaten te doen in een " segmentation fault " fout en meestal eindigt het gewraakte programma . Modern Shared Memory beveiligde modus voorkomen dat veel van de problemen door systemwide gedeelde geheugen in real mode , maar het is nog steeds soms gewenst om een programma te kunnen lezen en schrijven geheugen dat wordt gedeeld met een ander programma of apparaat . Besturingssystemen zoals Linux , dus , toegevoegde ondersteuning voor expliciet gedeeld geheugen . Programma's en apparaten kunt ervoor kiezen om het geheugen te delen met elkaar , onder voorbehoud van bepaalde beperkingen . Draden van de uitvoering binnen een programma delen hun geheugen standaard . Parallel Computing Veel computers bevatten meer dan een CPU core . Programma's kunnen zichzelf splitsen in meerdere " threads " van de uitvoering , kan elk van die uitvoeren op hetzelfde moment , het versnellen van de totale bedrijfsvoering vereist op bepaalde data . Ze moeten vaak gelijktijdig te laten werken op dezelfde data of hun staat te communiceren met elkaar , en gedeeld geheugen is een populaire manier om dit te doen . Dynamic Bibliotheken Gewoonlijk gebruikte dynamische bibliotheken zoals libc typisch geladen door veel verschillende programma's . Sinds de objectcode in deze bibliotheken wordt meestal gebruikt in een alleen-lezen manier door programma , kunnen aanzienlijke geheugen besparingen worden bereikt met gedeeld geheugen . De dynamische bibliotheek kan slechts eenmaal door het besturingssysteem worden geladen en gedeeld door een willekeurig aantal programma's , het verminderen van de totale geheugengebruik .
|