¿ La memoria compartida es una forma de que los diferentes elementos de un sistema informático para comunicarse entre sí mediante la lectura y la escritura en el mismo bloque de memoria RAM. Los elementos pueden ser diferentes hilos de ejecución dentro del mismo programa , diferentes programas, o los programas y dispositivos de hardware . Memoria compartida Systemwide era la norma en los primeros días de la computación . Sistemas operativos en modo protegido modernos como Linux normalmente no permiten diferentes programas para acceder a la memoria uno de otro por razones de seguridad y estabilidad , a menos que se sigan los procedimientos específicos para permitir explícitamente. Historia
Toda la memoria siempre fue compartida por todos los programas , sistemas operativos " modo real " principios tales como DOS. Cualquier programa puede leer o escribir en la memoria de cualquier otro programa en cualquier momento y sin restricción. Los autores de DOS TSR - los llamados " Terminar y permanecer residente " programas utilizan esta característica de muchas maneras ingeniosas para simular multitarea y ampliar la funcionalidad de otros programas que no tienen acceso al código fuente original. Esta característica también permite a los virus se propagan con mucha facilidad , los programas no ofreció ninguna garantía contra el control de sus datos por parte de otros programas , y hace que sea fácil para dormir todo el sistema a través de un pequeño error de programación que accidentalmente sobrescrito la memoria de otros procesos. < Br ingenieros >
modo protegido
de Intel reconocen los problemas de seguridad y estabilidad creada por la memoria compartida de todo el sistema , por lo que desarrollaron " modo protegido ", que apareció por primera vez en 80.286 fichas. El modo protegido se introduce el concepto de "anillos ", o niveles de privilegio . Anillo 0 procesos, destinados al núcleo del sistema operativo , pueden leer y escribir cualquier memoria . Anillo 3 procesos , destinados a programas ordinarios , se detienen de lectura y escritura de la memoria por el hardware del otro . Si lo intenta, resulta en un error " fallo de segmentación ", y por lo general termina el programa en cuestión .
Memoria
modo compartido Modern Protegida prevenir muchos de los problemas causada por la memoria compartida de todo el sistema en modo real , pero todavía es a veces deseable para un programa para ser capaz de leer y escribir en la memoria que se comparte con algún otro programa o dispositivo . Los sistemas operativos como Linux , por lo tanto , añaden soporte para memoria compartida explícitamente. Los programas y los dispositivos pueden optar por compartir la memoria entre sí , con ciertas restricciones. Hilos de ejecución dentro de una acción de su programa de memoria de forma predeterminada .
Parallel Computing
Muchos equipos tienen más de un núcleo de CPU. Los programas se pueden dividir a sí mismos en múltiples "hilos" de ejecución, cada uno de ellos puede ejecutar al mismo tiempo, para acelerar las operaciones totales necesarios en algunos datos. A menudo se necesitan para operar en los mismos datos simultáneamente o comunicar su estado a los otros, y la memoria compartida es una forma popular de hacer esto.
Bibliotecas dinámicas
comúnmente bibliotecas dinámicas utilizadas como libc se cargan normalmente por muchos programas diferentes . Dado que el código objeto en estas bibliotecas se utiliza por lo general en una forma de sólo lectura por programas , ahorros significativos de memoria se puede lograr con memoria compartida . La biblioteca dinámica puede ser cargado una sola vez por el sistema operativo y compartido entre cualquier número de programas , la disminución de consumo de memoria .