•
Diferencia entre fork y vfork
Cuando lanzamos un strace normalmente lo hacemos con las opciones -fF. La opción -f sirve para seguir los forks y -F para los vforks. Veamos la diferencia entre ellos.
Cuando desde un programa llamamos a fork() se duplica el proceso que lo llama, siendo el nuevo el hijo (child) y el que ha llamado la función el padre (parent). A partir de allí cada proceso ejecuta tareas diferentes independientemente. Para ello se debe hacer copiando toda la memória del padre para el hijo con el fin que no interfieran entre ellos.
Por lo que respeta a los vforks el parent queda en suspenso hasta que el hijo ejecuta execve o exit. Esta llamada se diferencia en que es más ligera que fork ya comparte toda la memoria con el padre.
Relacionados
Imprimir
Deja un comentario: