
#include
#include
#include
#include
#include
int main (int arge, char * argv[])
{
int num;
pid_t pid;
for(num=0; num < 3; num++)
{
pid = fork();
printf("Soy el proceso pid %d y mi padre tiene %d de pid \n",
getpid(), getppid());
if (pid != 0)
{
break;
srandom(getpid());
sleep (random() %3);
}
}
if (pid != 0)
{
printf("Fin del proceso pid %d \n", wait (NULL));
return 0;
}
}
IDentificadores
Process ID (PID)
Al crearse un nuevo proceso se le asigna un identificador de proceso único. Este número debe utilizarse por el administrador para referirse a un proceso dado al ejecutar un comando.
Los PID son asignados por el sistema a cada nuevo proceso en orden creciente comenzando desde cero. Si antes de un reboot del sistema se llega al nro. máximo, se vuelve a comenzar desde cero, salteando los procesos que aún estén activos.
fork().
Un proceso se crea invocando a una función del sistema operativo llamada fork(). La función fork() crea una copia idéntica del proceso que la invoca con excepción de:
* El nuevo proceso tiene un PID diferente
* El PPID del nuevo proceso es el PID del proceso original
* Se reinicia la información de tarificación del proceso (uso de CPU, etc.)
¿Por que aparecen mensajes repetidos?
por que estos mensajes estan contenidos en La clase Random que proporciona un generador de números aleatorios
¿Que observas?
El PPID de un proceso que viene siendo el PID de su proceso padre.
¿por que?
se realiza por la vía de duplicar un proceso existente invocando al comando fork(). Al proceso original se le llama "padre" y al nuevo proceso "hijo".
CABECERAS
NOMBRE
sys/types.h - data types sys / types.h - tipos de datos
SYNOPSIS SINOPSIS
#include
DESCRIPTION DESCRIPCIÓN
The
blkcnt_t blkcnt_t
Used for file block counts. Utilizado para el recuento de bloqueo de archivos.
blksize_t blksize_t
Used for block sizes. Se utiliza para tamaños de bloque.
NOMBRE
sys/wait.h - declarations for waiting sys / wait.h - declaraciones de espera
SYNOPSIS SINOPSIS
#include
DESCRIPTION DESCRIPCIÓN
The
WCONTINUED WCONTINUED
[ XSI ] [ XSI ] Report status of continued child process. Informe sobre el estado del proceso hijo continuó.
WNOHANG WNOHANG
Do not hang if no status is available; return immediately. No cuelgue si no se dispone de la condición, el retorno inmediato.
WUNTRACED WUNTRACED
Report status of stopped child process. Informe sobre el estado del proceso hijo parado.
REVISADO
ResponderEliminar