segmentacion páginas programas proceso politicas mft memoria mapa los las implementación gestion estar ejemplos deben contiguas como cargan algoritmos administración unix process operating-system kernel

unix - páginas - memoria mft



sección de texto en el mapa de memoria de proceso (1)

Cada proceso tiene sus propias direcciones virtuales. Esa dirección virtual no se comparte con nadie, incluido el proceso secundario. Pero estas direcciones virtuales están traducidas o, en otras palabras, asignadas a direcciones físicas por el núcleo del sistema operativo y la MMU.

¡La cuestión es que las direcciones virtuales de diferentes espacios de direcciones pueden apuntar a las mismas direcciones físicas ! Por ejemplo, cuando se bifurca el proceso, obtiene su propio espacio de direcciones virtuales, pero a menos que este proceso hijo no cambie (escriba) en su memoria, comparte la memoria con el proceso principal para su lectura . Cuando el proceso hijo intentará modificar parte de la memoria, Kernel creará una copia propia de una página determinada para el proceso secundario y ya no se volverá a compartir (hasta que el proceso hijo se bifurcó). Esto se conoce como Copiar en Escribir (CoW).

Entonces, lo real es que la sección de texto se puede compartir asignando diferentes páginas virtuales a las mismas páginas físicas (llamadas fotogramas).

Normalmente, el mapa de memoria de proceso consiste en pila, texto, datos + bss y montón.

La dirección de memoria es independiente de otros procesos, excepto la sección de texto.

Mi pregunta es acerca de la sección de texto, ¿hay solo un proceso hijo podría compartir

la misma sección de texto con su proceso principal? u otros procesos podrían compartirlo también.

=============================================== ====================

@avd: sí, consulte la wikipedia

http://en.wikipedia.org/wiki/Process_isolation

"El aislamiento de procesos puede implementarse con el espacio de direcciones virtuales, donde el espacio de direcciones del proceso A es diferente del espacio de direcciones del proceso B, lo que impide que A escriba en B."

Esto es lo que quiero decir con cada proceso tiene su propio mapa de memoria.

Sin embargo, cuando leo el libro del sistema operativo, menciona que la sección de texto podría ser compartida. Por lo tanto, no estoy muy claro con esto o, probablemente, malentendí esa parte del libro.

=============================================== ==================== Información adicional:

http://www.hep.wisc.edu/~pinghc/Process_Memory.htm

Los procesos comparten el segmento de texto si se va a ejecutar una segunda copia del programa al mismo tiempo. En esta configuración, el sistema hace referencia al segmento de texto previamente cargado con el puntero en lugar de volver a cargar un duplicado. Si es necesario, el texto compartido, que es el predeterminado al usar el compilador C / C ++, se puede desactivar utilizando la opción -N en el tiempo de compilación.