Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 4
Rodrigo Benjamín Vergara
Resolución del Laboratorio:
Número de Lab.: 3 Nombre completo: Rodrigo Benjamín Vergara Fecha: 24/01/2024 Grupo: A Sección: A
1. Cree un archivo .c de subprocesos con el siguiente código.
Descargué Visual Studio Code para manejar el código, ya que me siento más cómodo con ese editor.
2. Investigue cómo crear, compilar y ejecutar un programa C en Ubuntu usando la
terminal.
Investigando en internet pude encontrar los siguientes procedimientos para
crear, compilar y ejecutar un programa C en Ubuntu con la terminal. Instalar el compilador GCC (GNU Compiler Collection) ejecutando el siguiente comando en la terminal: Rodrigo Benjamín Vergara
• Crear el código con un editor de texto (por ejemplo: nano o vim)
• Se usa gcc para compilar el programa y crear un ejecutable por ejemplo : gcc mi_programa.c -o mi_programa
• Ejecutar el programa con: ./mi_programa
Rodrigo Benjamín Vergara
3. Compile y ejecute el programa y trate de entender lo que hace. Cambie
las líneas recomendadas (según algunos comentarios después de "//") y vea qué sucede. Comenté el código tal y como lo pedía el comentario y obtuve que el programa funciona distinto, ya que imprime todos los números y no solo los impares.
4. Investigue qué hacen los siguientes comandos (https://vitux.com/fork-
• fork(): El sistema de llamadas al sistema fork() en Linux crea un nuevo
proceso duplicando el proceso existente, al cual se le llama proceso hijo. Ambos procesos, el padre y el hijo, comparten el mismo código, datos y descriptores de archivos, pero tienen distintos identificadores de proceso (PID). Después de la llamada a fork(), el proceso hijo generalmente ejecuta otro programa utilizando exec(). El proceso padre puede continuar su ejecución o esperar a que el proceso hijo termine. • exec(): El sistema de llamadas al sistema exec() en Linux se utiliza para reemplazar la imagen de un proceso con una nueva imagen de programa. Después de un fork(), un proceso hijo a menudo utiliza exec() para cargar un nuevo programa en su espacio de direcciones de memoria, reemplazando así la imagen del proceso hijo con la del nuevo programa. Esto permite al proceso hijo ejecutar un programa diferente al del proceso padre. • chrt (relacionado con process scheduling): El comando chrt en Linux se utiliza para establecer o mostrar la política y la prioridad de planificación de un proceso en tiempo real. Puede utilizarse para ajustar la prioridad de un proceso para la planificación en tiempo real. Las opciones comunes incluyen SCHED_FIFO (FIFO) y SCHED_RR (Round Robin) para tareas en tiempo real. Ejemplo de uso: chrt -f -p 10 <comando> establece la prioridad del proceso (identificado por <comando>) en 10 con la política FIFO.
Conclusiones:
Realicé un laboratorio en el que creé, compilé y ejecuté un programa en C en
Ubuntu usando Visual Studio Code. También investigué y entendí los comandos fork(), exec(), y chrt en Linux. En el programa, modifiqué el código para observar cómo afectaba el resultado. Comenté el código según las instrucciones, lo que cambió el comportamiento del programa. En resumen, aprendí a trabajar con programas en C, a entender conceptos clave como fork() y exec(), y a ajustar la prioridad de planificación con chrt. Estas habilidades son útiles tanto para la universidad como para futuras aplicaciones prácticas en programación y sistemas operativos.