Está en la página 1de 16

Ejercicio

Actividad 2

Nombre: Andrea Flores Gutiérrez


Matrícula: 660078292
Materia: Sistemas operativos
Profesor: Julio Cesar Pinto Martin
Campus: Hispano
Fecha de entrega: 20/marzo/2023
INTRODUCCIÓN
En esta actividad realizaremos unos ejercicios con el código proporcionado para poder ver el
resultado, usaremos una distribución de Ubuntu posterior a esto se procedio a la instalación de
visual code para poder compilar y ejecutar el código.

DESARROLLO

1. Consulta el material que se encuentra a continuación y tómate el tiempo para entenderlo.

2. A partir de la revisión de los materiales propuestos, realiza el ejercicio de procesos en los


sistemas operativos que se encuentran en los videos, para ello realiza lo siguiente:

a) Descarga e instala la versión de Linux (Ubuntu) que me mejor funcione en tu equipo de


cómputo (14.04.5 LTS, 16.04 LTS, 18.04 LTS)

b) Utiliza un compilador libre como:


gcc
DEv-C++
Visual Studio Code

c) Desarrolla los programas propuestos en los materiales y plantea tu postura acerca del uso de
fork()
3. Accede a la siguiente liga donde se encuentran los códigos: https://github.com/drbfraser/video-
tutorial-code/tree/master/fork_demo

DESCRIPCIÓN DEL EJERCICIO REALIZADO

En estos ejercicios aprendimos sobre la función del fork y como implementarla, creamos un nuevo
proceso (hijo), copia casi exacta del proceso generador (padre). Cuando el fork se ejecuta con
éxito devuelve en la variable PID guardaermos el resultado de fork, si es 0, estamos en el proceso
hijo, si es diferente a cero, estamos en el proceso padre.

IMAGEN DE LOS CÓDIGOS

Codigo archivo fork.c


Resultado archivo fork.c
Codigo archivo forkloop.c
Resultado archivo forkloop.c
Codigo archivo makefile
Codigo video 1
Resultado video 1
Codigo video 3
Resultado video 3
EXPLICACIÓN DE LA IMPLEMENTACIÓN (procesos, creación, gestión y
concurrencia)
En los ejercicios genera un duplicado del proceso actual (hijo), el duplicado los valores de todas
las variables, ficheros y la misma estructura. Fork retorna al proceso padre el identificador del
proceso hijo y a su vez regresa un cero al proceso hijo.
Los procesos hijo pueden a su vez generar nuevos hijos, creando una jerarqía de procesos. Esta
jerarquia recibe el nombre de grupo de procesos. Todos los miembros del grupo comparten los
ficheros que estaban cuando el proceso padre los creo. Comparten STDIN, STDOUT, STDERR. Las
sigas PID son utilizadas para referirnos al identificador del proceso.
La funcion fork genera dos ejecuciones concurrentes en un programa, es decir, son procesados al
mismo tiempo no hace falta haber ejecutado otro para ejecutar uno de ellos.

CONCLUSIÓN
En el sistema Linux multitarea, se pueden realizar difernetes acciones simultáneamnete cada
acción es un proceso que consta de uno o más subprocesos, y todos los subprocesos comparten
memoria de trabajo e información de planificación, cada subproceso consta de isntrucciones y
estado de ejecución. Cuando ejecutamos un comando en el shell, sus instrucciones se copian en
una ubicación en la RAM del sistema para su ejecución, cuando las instrucciones completan las
tareas, los programas se eliminan de la memoria del sistema, dejandolos libres para que se puedan
ejecutar mas memoria del sistema, dejandolos libres para que se puedan ejecutar mas programas
al mismo tiempo. Por lo tanto, cada uno de estos prpgramas es un proceso. Los procesos son
creados y destruidos por el sistema operativo, pero lo hace a pedido de otros procesos

BIBLIOGRAFÍA

• WhileTrueThenDream [nombre de usuario]. (29 de abril de 2019). fork(). Parte I: ,Creación


de un nuevo proceso, hijos, padres, zombies y huérfanos [Archivo de video]. Recuperado
de https://www.youtube.com/watch?v=VwjP-KFuZCM

• Brian Faser (Productor). (29 de Enero de 2015). Linux fork() Introduction [Archivo de
video]. Recuperado de https://www.youtube.com/watch?v=9seb8hddeK4

• Castilla, H. (Productor). (24 de enero de 2018). Fork - Creando Procesos en C [Archivo de


video]. Recuperado de https://www.youtube.com/watch?v=Xm9Eah8t0d4

• Lezcano Brito, M. G. (2018). Fundamentos de sistemas operativos: entornos de


trabajo [Versión electrónica]. Recuperado de https://elibro.net/es/lc/uvm/titulos/85313

También podría gustarte