CREADO POR:
-FRANCISCO JAVIER GARCIA CALIX
- Escriba y ejecute cada uno de los ejemplos de exec, huérfano y zombie.
Aqui creamos un proceso huerfano,
como es posible?,
Solo debemos que hacer que el
proceso hijo duerma, mientras el
padre termina, como vemos en la
imagen.
Imprimimos por pantalla el PID y PPID.
Una ves ya terminado el proceso padrem el
hijo despierta pero cambia su PPID y vemos
que ya no tiene la misma que la del padre,
ahora tiene una diferente, y esta en el rango
de 0-1000 oasea que fue adoptado por un
proceso del sistema
Como vemos con el comando ps y el PPID
que nos da el proceso, vemos que pertenece a
system Osea que es un proceso del Sistema el
que lo adopto
- Utilice el comando ps -el | grep 'Z' y visualice si hay algún proceso zombie.
Aqui lo que hacemos es dormir el
proceso hijo, hasta que el padre termine
y se termine de ejecutar el programa
Verificamos con el comando ps –l |
grep ‘Z’
Para ver si hay algun proceso
zombie en el Sistema, y
efectivamente se encontro el proceso
zombie que hemos creado,
esperamos a que termine el tiempo
que le dimos para dormir, y
volvemos a colocar el comando,
como vemos el proceso zombie ya
termino su ejecucion y a muerto.
EJERCICIO 2
- A) Escriba un programa que mediante un ciclo for(3) genere procesos hijos. Cada proceso deberá imprimir
“hola”, (no utilice exit() o wait()), cuantas veces se imprime el mensaje “Hola”?, dibuje el árbol de procesos
y explique.
Aqui temenos la ejecucion del
programa donde nos imprime
holas, que son diferentes hijos
pero del mismo padre.
Como vemos el codigo hacemos un ciclo for que de 3
vueltas, y creamos hijos del mismo padre
Asi seria la representacion del
arbol de procesos del proceso
padre y la creacion de sus hijos,
si aumentamos el numero de
vueltas del ciclo, este seguiria
aumentando
- B) Modifique el programa anterior para que el proceso padre solo genere tres procesos Hijos. El proceso padre deberá
esperar por la finalización de cada uno de sus procesos hijos y al final imprimirá “mis hijos han terminado, Adios”.
Esta seria la ejecucion del codigo Hacemos unos pequeños retoques al programa anterior, para
que al final de cada proceso hijo, terminey damos exit,
siguientes Vuelta, crea otro procesos hijo, termine y Vuelve a
dar otra Vuelta, cuando terminan todos los procesos, el
proceso padre estaba dormido, al despertar sus hijos han
terminado e imprime el mensaje.
- C) Realice un programa que mediante la llamada a fork() crea un proceso que imprime cada segundo el mensaje
“existo” y su pid, luego de 5 segundos conviértalo en proceso huérfano.
Hacemos un ciclo for para que el procesos que fue creado
imprimir que existe, lo hacemos dormir por un Segundo y
Como sabemos si el proceso es huerano?, pues Vuelve a imprimir que existe, entonces al terminar de
como anteriormente hacemos lo mismo, buscamos imprimir que existe, duerme un Segundo, y el proceso
el PID que nos da, y vemos que es un proceso del padre termina, al despertarce el proceso hijo se ha
Sistema y adopto a ese proceso. convertido en huerfano.
- D) Utilice fork(), exit(), wait() y exec() para realizar un programa que crea el siguiente diagrama de procesos?
En este codigo hacemos lo siguientes, un proceso
hijo, e imprime, termina el proceso y creamos otro,
pero esta ves con un padre diferente,el hijo otro
proceso, y termina, al final el ultimo proceso creado
imprime y terman.
E) Realice un programa que cree el siguiente diagrama de procesos y donde el proceso Z deberá convertirse en zombi.
Vemos en la ejeciciom que todo a salido bien, y con el comando Creamos un solo proceso hijo imprimi que es el
ps –l | grep ‘Z’ vemos si se creo que el proceso zombie, y asi fue, proceso X, termina y se crea otro proceso pero
se creado correctamente, esperamos el tiempo de ejecicion de ese esta ves lo hacemos dormir 10s, ¿para que?, asi
proceso y colocamos denuevo el comando, y vemos que el proceo cuando el programa termine el estara dormido y
ya a terminado se convertira en un proces zombie