miércoles, febrero 04, 2009

El proceso FORK

El proceso Fork es la única forma que tenemos en MINIX3 para crear un nuevo proceso (por eso es tan importante).

Crea un proceso idéntico al original (proceso padre). Después del Fork, ambos procesos (el hijo y el padre) se ejecutan de forma separada.

El proceso fork devuelve un valor de retorno que es cero en el hijo y en cambio en el padre es el PID del proceso hijo. De esta forma cada proceso sabe si es padre o hijo. Esto es así, porque normalmente el proceso hijo tiene que ejecutar algo diferente al proceso padre.

Respecto a gestión de procesos sólo hay 9 llamadas al sistema más:

waitpid: de esta forma el proceso padre espera a que termine el hijo.
wait: versión antigua de waitpid.
execve: Reemplaza la imagen core de un proceso.
exit: termina la ejecución de un proceso y devuelve el estado.
brk: establece el tamaño del segmento de datos.
getpid: devuelve el pid del proceso.
getpgrp: devuelve el id del grupo de proceso.
setsid: crea un nueva sesión y devuelve el id del grupo de proceso.
ptrace: utilizado para debugging.

Saludos.

No hay comentarios: