Ir al contenido principal

Concurrencia y Paralelismo: Multiprocesamiento en Acción

En los sistemas modernos, donde la eficiencia y velocidad son esenciales, las computadoras manejan múltiples tareas a la vez mediante técnicas como la concurrencia y el paralelismo. Aunque a menudo se confunden, estos conceptos tienen diferencias clave.


Conceptos y Clases

Concurrencia

La concurrencia permite que varias tareas avancen en paralelo de manera lógica, aunque no necesariamente al mismo tiempo físico. Es como tener varias conversaciones intercaladas con diferentes personas: cada una progresa por turnos.

  • Se basa en intercalado de procesos.

  • Ideal para sistemas multitarea o con recursos limitados.

  • Se usa comúnmente en sistemas operativos y aplicaciones interactivas.

Paralelismo

El paralelismo, por otro lado, implica que múltiples tareas se ejecutan simultáneamente, usando múltiples núcleos o procesadores. Es como tener varias personas resolviendo problemas distintos al mismo tiempo.

  • Aprovecha hardware multinúcleo.

  • Utilizado en procesamiento intensivo (IA, simulaciones, renderizado, etc.).

  • Mejora el rendimiento al dividir una tarea compleja en subtareas ejecutadas en paralelo.


Algoritmos Clásicos

Para gestionar correctamente la concurrencia y evitar problemas como bloqueos o condiciones de carrera, se han propuesto algoritmos clásicos que ilustran soluciones elegantes a estos desafíos:

🍝 El problema de los filósofos comensales

Cinco filósofos comparten una mesa con cinco tenedores. Cada uno necesita dos tenedores para comer. El problema plantea cómo coordinar el uso compartido de recursos limitados (tenedores) sin caer en bloqueo ni inanición.

Es una metáfora común para problemas de sincronización y acceso a recursos compartidos.

🏦 El algoritmo del banquero

Diseñado por Edsger Dijkstra, este algoritmo simula el comportamiento de un banquero prudente que concede o niega recursos a los procesos si, al hacerlo, se evita un estado de bloqueo.

Permite prevenir deadlocks asegurando que siempre haya una secuencia segura de ejecución.



Comentarios

Entradas más populares de este blog

Memoria: Tipos, Jerarquía y Administración

La memoria es un componente esencial en todo sistema informático. Permite almacenar datos y programas temporal o permanentemente, y su eficiencia impacta directamente en el rendimiento general del sistema. Tipos de Memoria RAM (Memoria de Acceso Aleatorio) Es volátil , lo que significa que pierde su contenido al apagar el equipo. Existen dos variantes principales: SRAM (Static RAM): Más rápida y costosa. Se usa en memorias caché. DRAM (Dynamic RAM): Más lenta y económica. Es la memoria RAM típica de uso general. ROM (Memoria de Solo Lectura) Es no volátil , conserva los datos incluso sin energía. Contiene instrucciones permanentes, como el firmware del sistema. Memoria FLASH Tipo de memoria no volátil que permite ser reprogramada . Se utiliza en unidades USB, SSD, y en el almacenamiento interno de dispositivos móviles. Memoria Principal, Caché y Virtual Memoria principal (RAM): Es el espacio de trabajo inmediato para el sistema operativo y las aplicaciones en ejecuc...

Interconexión: Buses y Comunicación Interna en Sistemas Computacionales

La interconexión se refiere a cómo se comunican internamente los distintos componentes de una computadora. Esta comunicación se realiza principalmente a través de buses , líneas físicas por las que viajan los datos, direcciones y señales de control. Arquitectura Von Neumann Es la arquitectura clásica sobre la que se basan la mayoría de los sistemas informáticos modernos. Se caracteriza por: Memoria única para datos e instrucciones. Un único bus conecta la CPU , la memoria principal y los dispositivos de entrada/salida (E/S) . Aunque es sencilla y flexible, puede presentar un cuello de botella , ya que instrucciones y datos comparten el mismo canal de comunicación. Arquitectura Harvard Se diferencia de Von Neumann en que: Tiene memorias separadas para datos e instrucciones. Permite el acceso simultáneo a ambos, lo que mejora el rendimiento . Es común en sistemas embebidos y microcontroladores, donde la eficiencia y la velocidad son prioritarias. Buses de Sistema...

Dispositivos de Entrada y Salida: Comunicación entre el Usuario y la Computadora

Los dispositivos de entrada y salida (E/S) permiten la interacción entre el usuario y el sistema computacional , así como el intercambio de datos con el mundo exterior. Son esenciales para que una computadora pueda recibir, procesar, mostrar y almacenar información. Dispositivos de Entrada Los dispositivos de entrada permiten introducir datos o instrucciones en la computadora. Algunos ejemplos comunes son: Teclados: Para ingresar texto y comandos. Ratones (mouse): Dispositivo apuntador que facilita la navegación e interacción gráfica. Sensores: Captan información del entorno físico (temperatura, movimiento, luz, etc.) y la transforman en datos digitales. Dispositivos de Salida Permiten visualizar o transmitir el resultado del procesamiento: Pantallas (monitores): Muestran gráficos, texto, videos y más. Impresoras, parlantes y proyectores también son ejemplos de salida. Dispositivos de Almacenamiento Algunos dispositivos cumplen una doble función: pueden recibir...