PROCESOS EN LINUX
Windows 11
Piscoya Bellido Santiago Enrique
16/03/2025
Introducción
El presente informe se detalla el uso de la herramienta VMware Workstation, el cual es
un software de virtualización que permite crear y ejecutar máquinas virtuales en un
mismo equipo físico. Este mismo nos permite ejecutar otros sistemas operativos, en este
caso se hará uso del sistema operativo Linux (Fedora) para analizar su centro de
procesamiento.
Metodología
Se utilizó VMware Workstation para ejecutar diferentes códigos que nos permitirán
aprender sobre procesos y jerarquías, los cuales se podrán ampliarse para trabajar con
múltiples procesos concurrentes. Se hará uso de herramientas externas como un USB
para poder pasar los códigos desde el host de la computadora a la computadora virtual,
a continuación, los códigos a ejecutar:
#include <sys/types.h>; #include <sys/types.h>;
#include <stdio.h>; #include <stdio.h>;
main() main()
{ {
pid_t id_proceso; pid_t pid;
pid_t id_padre; pid=fork();
id_proceso=getpid(); switch(pid){
id_padre=getppid(); case -1: /* error en el fork() */
printf(“Identificador de proceso: %d\n”, id_proceso); perror(“fork”);
printf(“Identificador del proceso padre: %d\n”, id_padre); break;
} case 0: /* proceso hijo */
CODIGO N°1
printf(“Proceso %d; padre = %d \n”, getpid(), getppid() )
break;
default: /* proceso padre */
printf(“Proceso %d; padre = %d \n”, getpid(), getppid() )
}
CODIGO N°2
}
Procedimiento
Para el primer ejercicio usaremos el primer
código, copiaremos nuestro código en un archivo y
lo guardaremos como (.txt). Una ves guardado lo
pondremos en un USB para luego poder ponerlo
en la maquina virtual, ya en la maquina
ejecutamos el “cmd” de Linux.
Para poder hacer nuestro ejercicios nos podremos
en el directorio principal y nos vamos al directorio “media” que es donde se carga el
contenido del USB, para poder tener el documento (.txt) antes mencionado.
Posteriormente no se puede trabajar el documento (.txt) directamente, por lo que lo
convertiremos en (.c) que es un archivo de código fuente en lenguaje C. por medio del
siguiente comando: “mv nombreArchivo.txt nombreArchivo.c”
En este caso TareaTSO.txt
Ahora toca compilar el código n°1 con el comando: “gcc -o binario TareaTS0.c” y lo
ejecutamos con el comando: “. /binario” (debido al nombre con el que se guardó)
Resultado
Como se puede observar en el resultado de la consola, nos muestra que cada ejecución
del programa es un nuevo proceso, cuando ejecutas “./binario”, el sistema crea un
nuevo proceso hijo del terminal, como cada proceso en Linux tiene un identificador
único, el PID cambia en cada ejecución, pero el del proceso padre será siempre el
mismo.
Para el segundo ejercicio se hace el mismo procedimiento anterior, lo que nos genera un
resultado similar al primer código:
Este resultado a simple vista ya nos muestra un resultado diferente debido a que en el
segundo código se hace uso del “fork()” el cual crea un nuevo proceso duplicado a partir
del proceso actual. El proceso original (padre) se divide en dos procesos:
Uno sigue ejecutando como el proceso padre.
Otro es el proceso hijo, que es una copia exacta del padre en el momento del
fork().
Comparando ambos resultados podríamos decir que:
Característica binario binario2 (nuevo)
(anterior)
Procesos creados 1 proceso 2 procesos (padre e
hijo)
Usa fork()? No Sí
PID del proceso cambia en Sí Sí (pero en pares)
cada ejecución
PPID constante en cada Sí Sí (pero en la línea
ejecución del padre)
Conclusión
En el informe se detalla el uso de VMware Workstation para la ejecución de máquinas
virtuales con Linux, con el fin de estudiar el comportamiento de los procesos y su
jerarquía. Se utilizaron códigos en lenguaje C para analizar cómo se gestionan los
procesos y cómo se relacionan entre sí mediante PID y PPID. Este estudio demuestra la
importancia de comprender el manejo de procesos en sistemas operativos como Linux,
ya que es clave para la programación concurrente, el control de procesos y el diseño de
sistemas robustos y eficientes.