GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo maneja copy-on-write en fork() múltiples bifurcaciones?

Si fork se llama varias veces desde el proceso principal original, cada uno de los elementos secundarios y principal tendrá sus páginas marcadas como de solo lectura. Cuando un proceso hijo intenta escribir datos, la página del proceso padre se copia en su espacio de direcciones y la página copiada se marca como escribible en el hijo pero no en el padre.

Si fork se llama desde el proceso hijo y el nieto intenta escribir, la página del padre original se copia al primer hijo y luego al nieto, y todo se marca como escribible.


La página original solo se marca como editable si pertenece a un solo proceso, lo que podría no ser el caso si hubiera varias bifurcaciones. La nueva página siempre se marca como escribible porque solo pertenece al proceso que intentó escribirla.


Linux
  1. ¿Cómo matar un proceso cuyo padre es Init?

  2. Linux:¿cómo pasa Node.js/el módulo de clúster nuevas conexiones desde el proceso principal/principal a los procesos secundarios?

  3. Cómo funciona el ciclo de vida del proceso de Linux:proceso principal, secundario e inicial

  4. Cómo matar el proceso zombie

  5. Cómo obtener un proceso secundario del proceso principal

Cómo matar un proceso en Linux

Cómo mostrar PPID en Linux

¿Cómo configuro el directorio de trabajo del proceso principal?

Específicamente, ¿cómo maneja fork() la memoria asignada dinámicamente desde malloc() en Linux?

¿Cómo funciona internamente copy_from_user del kernel de Linux?

¿Cómo obtener el PID principal de un proceso determinado en GNU/Linux desde la línea de comandos?