Examen Ordinario de Sistemas Operativos - Mayo de 2023
Grado en Ingeniería Informática
NOMBRE: GRUPO:
NOTAS: Para la realización del presente examen se dispondrá de 2:30 horas. No se pueden utilizar libros ni apuntes.
Será necesario presentar el DNI o carnet universitario para realizar la entrega del examen
Ejercicio 3 (2,5 puntos)
Sea un sistema LINUX.
A.- Describa el ciclo de vida de un proceso y los estados que puede atravesar durante el mismo. Dibuje el grafo de los
mismos.
B.- Escriba un programa en C que cree un proceso padre que genere 10 hijos y espere por todos. Cada hijo debe
dormir los segundos de su orden de creación (i) y luego ejecutar un comando “cat fic1”. Cuando todos los hijos
hayan terminado, el padre debe terminar la ejecución.
C.- ¿Pasan todos los procesos anteriores por todos los estados posibles del ciclo de vida? Explique la respuesta.
¿Qué ocurriría si el padre no esperara por los procesos hijos?
Solución
A.-
Copìar tal cual de los apuntes de alba el ciclo de vida extendido con el swap a disco
B.-
#include <stdio.h>
int main() {
const int;
int i, pid, estado;
int pids[10];
for (i=0;i<10;i++) {
pid = fork();
switch (pid) {
case -1: /* error en fork */
fprintf(stderr, "Error en la creación de proceso hijo\n");
exit(-1);
case 0: /* proceso hijo */
sleep(i);
execl (““cat”, “fic1”, NULL)
exit(0);
default: /* proceso padre. Captura pid del hijo */
pids[i] = pid;
break;
}
}
// Esperar por los hijos
for (i=0;i<10;i++) {
waitpid(pids[i], &estado, 0);
}
return 0;
}
Examen Ordinario de Sistemas Operativos - Mayo de 2023
Grado en Ingeniería Informática
NOMBRE: GRUPO:
C.-
Si pasan por todos los estados.
Los hijos:
• Se inician, se ponen listos para ejecutar, ejecutan, se bloquean por sleep, vuelven a listos para ejecutar,
ejecutan y terminan.
El padre:
• Se inicia, se pone listos para ejecutar, ejecuta para crear los hijos, se bloquea por wait, recibe señales de
hijos y vuelve a listos para ejecutar, ejecuta y termina.
Si el padre no esperara por los hijos se quedarán zombies hasta que el sistema operativo se los asignara como hijos
al procesos INIT, en cuyo momento podrían terminar al recibir INIT las señales SIGCLHD.