PCB del proceso hijo en un fork()

Re: PCB del proceso hijo en un fork()

de Santiago Iturriaga -
Número de respuestas: 0

Hola:

El proceso hijo es una copia exacta del contenido del espacio de memoria del proceso padre (esto incluye los segmento de datos, código, heap, stack, etc.). El contenido del PCB de los procesos padre e hijo necesariamente va a ser diferente en algunos aspectos porque ambos procesos son copias idénticas pero son dos procesos diferentes. Eso quiere decir que obligatoriamente el PID será diferente (porque el PID debe identificar de forma única a cada proceso), además dependiendo de como se haga la copia las regiones de memoria física que contiene cada una de las copias también podrá ser diferente, si el proceso padre es multihilado es probable que el proceso hijo no herede todos los hilos, etc.

Con respecto a la otra pregunta. Luego del fork y previo al comando exec, padre e hijo no comparten la memoria. Tienen copias exactas pero son dos copias diferentes. Es posible que se esten confundiendo con la técnica copy-on-write (ver sección 9.3 del Silberschatz).

Saludos,

Santiago.