BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA 201118720 JOSÉ ANTONIO MÉNDEZ BARRIOS SISTEMAS OPERATIVOS 1 Practica 2 OTOÑO 2015 Ma. Carmen Cerón Garnica INTRODUCCION Se realizaran distintos programas para tener conocimiento sobre el uso de llamadas, la manera en que se utilizan y las modificaciones que se pueden realizar. PROGRAMA NO. 1 #include <stdio.h> #include <unistd.h> #include <sys/types.h> main() { pid_t childpid; childpid = fork(); if (childpid==0) printf("Soy el hijo con ID= %ld\n",(long)getpid()); else printf("Soy el Padre con ID= %ld, mi hijo es %ld\n",(long)getpid(),childpid); } CORRIDA: -QUE HACE EL PROGRAMA:MUESTRA EL ID DEL PROCESO PADRE Y EL ID DEL PROCESO HIJO -QUE REALIZA LA FUNCION GETPID():DEVUELVE EL ID DEL HIJO PROGRAMA NO. 2 #include <stdio.h> #include <unistd.h> main() { pid_t p; p = fork(); if (p != 0) while (1) sleep(1000); else exit (2); } CORRIDA: -QUE HACE EL PROGRAMA:MANDA A DORMIR EL PROCESO -QUE FUNCION TIENE LA LIBRERÍA SYS/TYPES.H:EJECUTA EL PID,GETPID} #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include <unistd.h> void main(int argc, char *argv[]) {int i, n;pid_t hijopid; if (argc !=2) { fprintf(stderr,"USO: %s num_procesos\n", argv[0]); exit(1); }n = atoi(argv[1]);hijopid = 0; for (i = 1; i < n; i++) if (hijopid = fork())break; if (hijopid == -1) { perror("error al ejecutar el fork");exit(1);} fprintf(stdout,"i:%d proceso - %ld Id del padre - %ld ID del hijo\n",i, (long)getppid(), (long)getpid()); exit(0);} CORRIDA: EJECUTE Y OBSERVE LOS RESULTADOS CUANTOS DE ELLOS SON ADOPTADOS?:2PROCESOS_1 ADOPTADO