110 likes | 321 Views
Procesos. Karina Figueroa. Gesti ón de procesos en unix. Usando fork. Valor de regreso Padre <- ID hijo Hijo <- 0. main ( ) { int f = fork ( ); if (f== -1 ) { printf ( “ Error – proc . no creado <br>”) exit (1) ; } if (f== 0 ){
E N D
Procesos Karina Figueroa
Usando fork • Valor de regreso • Padre <- ID hijo • Hijo <- 0 main ( ) { int f = fork (); if(f== -1){ printf( “ Error – proc. nocreado \n”) exit (1) ; } if(f== 0){ printf ( “ Soyel hijo, mi PID es %d y mi PPID es %d\n", getpid(), getppid()); exit (1) ; } if ( f != 0){ printf( Soy el padre, mi PID es %d y el PID de mi hijoes %d\n", getpid(), pid); exit (1) ;} }
Waitpid • Un proceso puede esperar por un hijo en particular sin esperar por todos los hijos. • no bloqueante -> un proc puede checar periodicamente por un hijo sin bloquearse indefinidamente. • Parámetros entrada: • pididenticador del proceso que se espera; • statlocapuntador para el regreso del status de terminacion del proceso esperado; • optionsbanderas WHOHANG, WCONTINUED, WNOWAIT y WUNTRACED.
EXEC • Execl • Reemplaza proceso actual por uno nuevo • Inicia ejecución en su funcion principal • »Return -1 ifan error; elseno returnifsuccessful • Varias formas para exec(execv, execle, execve) • l - formato lista de argumentos; • v - formato vector • e - el ambiente pasa también como un vector