• post

    Granja de Renderizado para Animación

    El renderizado, es un proceso que convierte modelos 3D en secuencias de imágenes, es intensivo en computación y puede llevar mucho tiempo. Para mejorar la eficiencia, decidieron implementar un sistema de procesamiento distribuido utilizando algoritmos paralelos y distribuidos. Imagine ahora una empresa de animación que produce películas y series animadas. Problema El tiempo de render para una sola escena es demasiado largo, y el estudio desea reducirlo para acelerar la producción. Solución Se implementa un sistema de procesamiento distribuido utilizando algoritmos paralelos y distribuidos para dividir la carga de trabajo y acelerar el tiempo del render Componentes del Sistema Implementación Beneficios Desafíos Los algoritmos paralelos y distribuidos pueden aplicarse en…

  • post

    Arquitectura Paralela y distribuida

    Para este ejercicio se debe de considerar la combinación de aspectos de ambas arquitectura un sistema de procesamiento de grandes conjuntos de datos utilizando paralelismo a nivel de tarea y distribución de carga en un entorno distribuido. En este caso, se considera una plataforma de redes sociales con millones de usuarios activos y un flujo constante de datos en tiempo real. El objetivo es procesar y analizar la actividad de los usuarios para proporcionar recomendaciones personalizadas, tendencias populares y mejorar la experiencia del usuario. Beneficios: Este caso de estudio se ilustra cómo la arquitectura paralela y distribuida es esencial para enfrentar los desafíos de procesar grandes cantidades de datos en…

  • post

    La Ingeniería en Sistemas Computacionales y Diseño de Software

    En el mundo actual altamente tecnológico, la ingeniería en sistemas computacionales y el diseño de software desempeñan un papel crucial en una amplia variedad de campos. Un ejemplo claro de esto es el sector de la salud, donde los profesionales de la ingeniería trabajan en colaboración con médicos y científicos para desarrollar sistemas de gestión de registros médicos electrónicos. Estos sistemas permiten a los profesionales de la salud acceder a la información de los pacientes de manera eficiente y segura, mejorando la atención médica y la toma de decisiones. En el ámbito de la educación, la ingeniería en sistemas computacionales también juega un papel importante. Los diseñadores de software educativo…

  • post

    Procesando imágenes

    Una de las características de la programación concurrente es que se puede realizar múltiples procesos al mismo tiempo. Para ello se describe un script escrito en python donde se procesan varias imágenes en las que se aplicará filtro de blanco y negro y serán guardado en otra ruta. Requerimientos Script Explicación Cada imagen se procesa en un hilo separado, lo que permite procesar varias imágenes al mismo tiempo sin tener que esperar a que una imagen termine de procesarse antes de comenzar con la siguiente. La cantidad de imágenes que puedes procesar simultáneamente depende en parte de la implementación específica de la biblioteca concurrente y de la capacidad de tu…

  • post

    Sistema de Reservas en una Aerolínea

    Una aerolínea, la implementación de un sistema de reservas puede beneficiarse significativamente de la programación concurrente. El proceso de gestionar las reservas de vuelos implica la interacción con múltiples usuarios que intentan reservar asientos simultáneamente, además de la necesidad de mantener actualizada la disponibilidad de asientos en tiempo real. Beneficios y Ventajas: Desventajas: Aplicación en la Vida Real: En la vida real, los sistemas de reservas de aerolíneas, como los utilizados por grandes compañías aéreas, implementan la programación concurrente para manejar la alta demanda y la concurrencia de múltiples usuarios que intentan reservar vuelos al mismo tiempo. La aplicación en línea de una aerolínea permite que numerosos usuarios busquen, seleccionen…

  • post

    Señales

    Las señales, son mecanismos de comunicación asincrónica entre procesos o entre el núcleo y los procesos. Estas son utilizadas para notificar eventos o solicitar ciertas acciones. Señales Personalizadas: Se puede definir y enviar de forma personalizadas en los scripts; asignando nombres significativos. Manejo de Errores con Señales: Se puede utilizar, para manejar errores de manera más elegante. Por ejemplo, configurar un script para que se ejecute con una acción específica cuando se detecta un error. Señales en Programas de Larga Duración: En programas que se ejecutan durante un período prolongado, puede ser útil manejarlas adecuadamente, para realizar tareas de limpieza antes de la terminación. Ignorar Señales: En algunos casos, se…

  • post

    Proceso – programación en el shell

    Un proceso es una instancia en ejecución de un programa. Cuando se ejecuta un programa en el shell, se crea un nuevo proceso para ese programa. Fork y Exec Comunicación entre Procesos (IPC): Los procesos pueden comunicarse mediante mecanismos de IPC (Inter-Process Communication). Los pipes (|) permiten la comunicación entre la salida de un proceso y la entrada de otro. Además, los archivos temporales, la memoria compartida y las colas de mensajes son ejemplos de mecanismos IPC más avanzados. Señales: Las señales son mecanismos de comunicación asincrónica entre procesos o entre el kernel y los procesos. Puedes enviar señales a los procesos utilizando comandos como kill. Por ejemplo, kill -SIGTERM…

  • post

    Llamada al sistema

    Las llamada al sistema son interfaces entre el software de usuario y el kernel del sistema operativo. En el contexto de la programación en el shell, estas llamadas proporcionan acceso a funciones de bajo nivel que permiten la manipulación de procesos, archivos y otros recursos del sistema. Creación y Gestión de Procesos: fork(): Crear un Proceso Hijo La llamada fork() crea un nuevo proceso llamado proceso hijo. Este proceso hijo es una copia exacta del proceso padre, pero tiene su propio espacio de memoria. La bifurcación se utiliza comúnmente en la programación de shell para ejecutar procesos en segundo plano. exec(): Reemplazar la Imagen del Proceso Después de crear un…

  • post

    Archivos

    El manejo de archivo son esenciales para manipular datos almacenados en dispositivos de almacenamiento. Se encuentra las siguientes características: Operaciones Básicas con Archivos Creación de Archivos: El comando touch se utiliza para crear archivos vacíos. Por ejemplo: Visualización de Contenido: Para ver el contenido de un archivo, puedes usar comandos como cat, more, o less. Por ejemplo: Edición de Archivos: Puedes editar archivos directamente desde el shell utilizando editores de texto como nano, vim, o emacs. Por ejemplo: Eliminación de Archivos: El comando rm se utiliza para eliminar archivos. Por ejemplo: Entrada y Salida Estándar Redirección de la Entrada y Salida: Los operadores < y > permiten redirigir la entrada…

  • post

    Argumentos en la programación

    En la programación de shell, los argumentos son valores que se proporcionan a un script o programa cuando se ejecuta. Estos valores permiten que el script o programa actúe de manera dinámica y adaptable a diferentes situaciones. Cómo se pasan los argumentos: Variables especiales: Número total de argumentos: Todos los argumentos como una cadena: Ejemplo práctico: Al ejecutar ./mi_script.sh arg1 arg2, obtendrías la salida correspondiente. Estos conceptos te permiten escribir scripts de shell más versátiles y adaptables al aceptar diferentes entradas durante la ejecución.