File

Anuncio
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
Descargar