1. UNIDAD 6
1.1. ALGORÍTMO DE EXCLUSIÓN MUTUA
1.1.1. Representa un problema crpitico en los sistemas distribuidos ya que implica garantizar que solo un porceso tenga acceso a un recurso compartido en un momento dado.
1.1.1.1. Algoritmo de servidor central
1.1.1.1.1. Esta es la forma más sencilla de lograr la exclusión mutua. se consigue utilizando un servidor que otorga los permisos para acceder a la sección crítica
1.1.1.2. Algoritmo basado en un anillo
1.1.1.2.1. Esta es la manera más simple de lograr la exclusión mutua entre procesos. Es una estrategia utilizada en sistemas distribuidos para lograr la exclusión mutua distribuida y resolver problemas de coordinación entre procesos
2. UNIDAD 7
2.1. Arquitecturas
2.1.1. CUDA
2.1.1.1. Compute Unified Device Architecture es una plataforma de computación paralela y un modelo de programación creado por NVIDIA permite a los desarrolladores utilizar GPUs (Unidades de procesamiento gráfico) para aplicaciones generales GPGPU logrando un rendimiento significativamente superior al de las CPU
2.1.2. GPU
2.1.2.1. Están diseñadas para manejar múltiples operaciones en paralelo lo que las hace ideales para tareas que requieren porcesamiento de datos masivo como gráficos y cálculos científicos. La arquitectura que de una GPU incluye miles de núcleos simples que trabajan juntos para realizar operaciones simultánemante
3. UNIDAD I
3.1. SMP
3.1.1. Todos los procesadores tienen acceso igualitario a la memoria y otros recursos del sistema
3.1.1.1. VENTAJAS
3.1.1.1.1. Mayor Capacidad de Procesamiento
3.1.1.1.2. Mayor rendimiento en general
3.1.1.1.3. Escalabilidad relativamente sencilla al agregar más procesadores
3.1.1.2. DESVENTAJAS
3.1.1.2.1. Mayor consumo de energía y generación de calor
3.1.1.2.2. Requiere un sistema operativo aplicaciones optimizadas para el multiprocesamiento
3.2. AMP
3.2.1. Existe un procesador principal encargado de las tareas generales y la coordinación del trabajo de los procesadores secundarios o coprocesadores especializados
3.2.1.1. VENTAJAS
3.2.1.1.1. Eficiencia en tareas especializadas
3.2.1.1.2. Menor consumo de energía al usar procesadores especializados
3.2.1.2. DESVENTAJAS
3.2.1.2.1. Menor flexibilidad para tareas generales
3.2.1.2.2. Coordinación más compleja entre los procesadores
4. UNIDAD 2
4.1. ALGORÍTMICA DISTRIBUIDA
4.1.1. Es un campo de estudio en la informática que se enfoca en el diseño y análisis de algorítmos destinados a resolver problemas en sistemas distribuidos
4.1.1.1. Elementos de Calidad de un algorítmo distribuido
4.1.1.1.1. Correctitud
4.1.1.1.2. Eficiencia
4.1.1.1.3. Escalabildad
4.1.1.1.4. Tolerancia a fallos
5. UNIDAD 3
5.1. PROGRAMACIÓN PARALELA
5.1.1. Es un enfoque en el desarrollo de software que busca mejorar el rendimiento y eficiencia de un programa al ejecutar multiples tareas o procesos de manera simultánea
5.1.1.1. Dominios
5.1.1.1.1. Simulación Científica
5.1.1.1.2. Análisis de datos
5.1.1.1.3. Procesamiento de imágenes y video
5.1.1.1.4. Ciencias de la Salud
6. UNIDAD 4
6.1. LENGUAJE DE PROGRAMACIÓN SINCRONO
6.1.1. Se basan en la ejecución secuancial y ordenada de instrucciones
6.1.1.1. Conceptos
6.1.1.1.1. Paso de mensajes
6.1.1.1.2. Llamadas a procedimientos remotos
7. UNIDAD 5
7.1. OPENMP
7.1.1. Open Multi-processing es una API para programación paralela en sistemas con memoria compartida
7.1.1.1. Características
7.1.1.1.1. Se utilizan para indicar las regiones paralelas en el código
7.1.1.1.2. Soporta C, C++ y Fortran
7.1.1.1.3. Diseñado para sistemas de memoria compartida
7.2. OPENMPI
7.2.1. Open Message Passing Interface Es una implementación de código abierto de la interfáz de paso de mensjaes MPI diseñado para dar soporte a una amplia gama de sistemas
7.2.1.1. Características
7.2.1.1.1. Diseñado para sistemas de gran escala
7.2.1.1.2. Soportan C, C++ y Fortran
7.2.1.1.3. Proveen diversas técnicas de comunicación entre procesos
7.3. THREADS
7.3.1. Es un estándar para la porgramación de hilos en sistemas Unix. Permite la creación y control de hilos dentro de un proceso
7.3.1.1. Características
7.3.1.1.1. Proporciona un control detallado sobre la creación, sincronización y terminación de hilos
7.3.1.1.2. Compatibilidad en istemas Unix-Like
7.4. POSIX
7.4.1. Portable Operating System Interface for Unix. Es un conjunto de estándares que especifíca la interfaz de un sistema operativo tipo Unix y las aplicaciones que se ejecutan en él.
7.4.2. Portable Operating System Interface for Unix. Es un conjunto de estándares que especifíca la interfaz de un sistema operativo tipo Unix y las aplicaciones que se ejecutan en él.
7.4.2.1. Elementos que se pueden controlar y gestionar en un hilo POSIX
7.4.2.1.1. Puntero de Pila
7.4.2.1.2. Conjunto de registros
7.4.2.1.3. Propiedades de planificación como política y prioridad
7.4.2.1.4. Conjunto de señales pendientes y bloqueadas