From c8bc30878e2188de5d2e0ce1442e4b6a9c392354 Mon Sep 17 00:00:00 2001 From: Pau Date: Tue, 24 Sep 2024 19:22:39 +0200 Subject: [PATCH] created eje1 from unit exercises --- eje1 | Bin 0 -> 16176 bytes eje1.c | 32 ++++++++++++++++++++++++++++++++ p3 | Bin 0 -> 16208 bytes p3.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100755 eje1 create mode 100644 eje1.c create mode 100755 p3 create mode 100644 p3.c diff --git a/eje1 b/eje1 new file mode 100755 index 0000000000000000000000000000000000000000..0dc9a9f25d63cec9e5a6ec0696b4e40802a76423 GIT binary patch literal 16176 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 Niw(*;AHgSze*jIUBsc&7 literal 0 HcmV?d00001 diff --git a/eje1.c b/eje1.c new file mode 100644 index 0000000..5f36d74 --- /dev/null +++ b/eje1.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include +#include +void main(void) { + pid_t p_hijo, p_padre; + int a; + a = 6; + printf("Mi PID es %d y el del sistema %d\n", getpid(), getppid()); + sleep(1); + p_hijo = fork(); + + switch(p_hijo) { + case -1: //error + printf("No se ha podido crear el proceso nieto en el hijo"); + exit(-1); + break; + case 0: // Estoy en el hijo + a -= 5; + printf("Soy el proceso HIJO %d, Mi padre es = %d \n", + getpid(),getppid()); + printf("La variable hijo vale %d", a); + sleep(1); + break; + default: //proceso padre + a += 5; + printf("Soy el proceso PADRE %d, Mi padre es = %d \n", + getpid(),getppid()); + printf("La variable padre vale %d", a); + } +} \ No newline at end of file diff --git a/p3 b/p3 new file mode 100755 index 0000000000000000000000000000000000000000..61ebb933e3b7bdaccabc71a21f5aa09cba731a40 GIT binary patch literal 16208 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 literal 0 HcmV?d00001 diff --git a/p3.c b/p3.c new file mode 100644 index 0000000..b3d8a2a --- /dev/null +++ b/p3.c @@ -0,0 +1,45 @@ +#include +#include +#include +#include +#include +void main(void) { + pid_t pid, id_actual, Hijo_pid, pid2, Hijo2_pid; + pid = fork(); // Soy el abuelo e intento crear a mi hijo + if (pid == -1) { // Hubo error + printf("Hubo un problema de impotencia al crear el hijo"); + exit(-1); + } + // Si todo va bien y se crea el hijo tenemos que hacer + // que el programa ejecute un código con distinto para cada + // proceso + if (pid == 0) { + // Nos encontramos en el hijo + pid2 = fork(); //soy el hijo y creo al nieto + switch(pid2) { + case -1: //error + printf("No se ha podido crear el proceso nieto en el hijo"); + exit(-1); + break; + case 0: // Estoy en el nieto + printf("\t\tSoy el proceso NIETO %d, Mi padre es = %d \n", + getpid(),getppid()); + break; + default: //proceso padre + Hijo2_pid=wait(NULL); //espero a que termine nieto, que es mi hijo. + printf("\t\tSoy el proceso HIJO %d, Mi padre es = %d \n", + getpid(),getppid()); + printf("\tMi hijo: %d terminó.\n", Hijo2_pid); + } + + } else { + // Nos encontramos en el abuelo + id_actual = wait(NULL); // Espero a que termine mi hijo, que a su vez espera que termine el nieto + printf("Yo soy el abuelo de las dos criaturas anteriores:\n\t"); + printf("Mi PID es %d, el de mi padre (Sistema Operativo) es %d.\n\t", getpid(),getppid()); + printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid); + printf("A mi nieto no lo puedo conocer, solo reconozco a mi generación inmediata\n"); + printf("Para conocer a mi NIETO debería implementar algún sitema de comunicación entre procesos."); + } +exit(0); +} \ No newline at end of file