post

  • post

    Exclusión, sincronización y región

    La programación concurrente, esencial en entornos de desarrollo modernos, involucra la ejecución simultánea de múltiples hilos o procesos para mejorar la eficiencia y la capacidad de respuesta de un programa. Conceptos clave como la exclusión mutua, las regiones críticas y la sincronización juegan un papel fundamental. La exclusión mutua asegura que solo un hilo acceda a un recurso compartido en un momento dado, evitando así condiciones de carrera y garantizando la coherencia de los datos. Las regiones críticas, por su parte, son secciones de código donde se accede y modifica información compartida, y se implementan para garantizar que estas operaciones críticas se realicen de manera atómica, sin interferencia de otros…

  • 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…