? Mémoire partagée est une façon pour les différents éléments d'un système informatique pour communiquer avec l'autre par la lecture et l'écriture sur le même bloc de RAM. Les éléments peuvent être différents threads d'exécution dans le même programme , les différents programmes ou les programmes et les périphériques matériels. Mémoire partagée chaîne a été la norme dans les débuts de l'informatique . Systèmes d'exploitation en mode protégé modernes tels que Linux ne permettent normalement pas différents programmes d'accéder à la mémoire de l'autre pour des raisons de sécurité et de stabilité, à moins que des procédures spécifiques sont suivies pour permettre explicitement. Histoire
Toute la mémoire a toujours été partagée par tous les programmes , les systèmes de pré " en mode réel " d'exploitation comme DOS. Tout programme peut lire ou écrire la mémoire de tout autre programme à tout moment sans restriction. Les auteurs de DOS TSR - dits " Terminate and Stay résident " programmes utilisaient cette fonctionnalité dans de nombreux moyens astucieux pour simuler le multitâche et étendre les fonctionnalités d'autres programmes sans accès au code source d'origine . Cette fonctionnalité a également permis virus de se propager très facilement, a offert des programmes aucune sécurité contre le contrôle de leurs données par d'autres programmes , et il était facile de planter le système entier à travers une petite erreur de programmation qui a accidentellement écrasé la mémoire de certains autres processus. < Br les ingénieurs >
mode protégé
Intel ont reconnu les problèmes de sécurité et de stabilité créé par mémoire partagée ensemble du système , de sorte qu'ils ont développé « mode protégé », qui est apparu sur 80286 jetons. Mode protégé introduit le concept de "anneaux ", ou des niveaux de privilèges. Ring 0 procédés, destinés au noyau du système d' exploitation , peuvent lire et écrire toute la mémoire. Trois procédés d'anneau , destinées à des programmes ordinaires, sont arrêtés à la lecture de la mémoire et l'écriture de l'autre par le matériel. Tenter de le faire entraîne une erreur " segmentation fault " et se termine généralement le programme incriminé .
Mode partagé moderne de mémoire protégée empêché de nombreux problèmes causée par la mémoire partagée ensemble du système en mode réel, mais il est encore parfois souhaitable pour un programme à être capable de lire et écrire la mémoire qui est partagée avec un autre programme ou un périphérique . Les systèmes d'exploitation tels que Linux , par conséquent, a ajouté le support pour la mémoire explicite partagée . Programmes et dispositifs peuvent choisir de partager la mémoire avec une autre , sous réserve de certaines restrictions. Fils d'exécution au sein d'un programme partagent leur mémoire par défaut.
Parallel Computing
nombreux ordinateurs contiennent plus d'un processeur. Les programmes peuvent se diviser en plusieurs "fils" d'exécution, chacun pouvant exécuter en même temps , afin d'accélérer l'ensemble des opérations nécessaires sur certaines données. Ils ont souvent besoin pour fonctionner sur les mêmes données simultanément ou communiquer leur état à un autre, et la mémoire partagée est une façon populaire de faire cela .
Bibliothèques dynamiques
Communément bibliothèques dynamiques utilisées comme libc sont généralement chargés par de nombreux programmes différents . Puisque le code de l'objet dans ces bibliothèques est habituellement utilisé de façon lecture seule par les programmes , les économies de mémoire significatives peuvent être réalisées avec mémoire partagée. La bibliothèque dynamique peut être chargé qu'une seule fois par le système d'exploitation et partagée entre un certain nombre de programmes , en diminuant l'utilisation globale de la mémoire.