Sistemas Concurrentes: conceptos fundamentales - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Sistemas Concurrentes: conceptos fundamentales

Description:

La concurrencia en la Naturaleza. 3. Bibliograf a. Programaci n ... sistemas de gesti n de bases de datos (DBMS) sistemas de tiempo real. sistemas distribuidos ... – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 25
Provided by: josmi2
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Concurrentes: conceptos fundamentales


1
Sistemas Concurrentesconceptos fundamentales
  • I.T. Informática de Sistemas

2
Contenidos
  • Concurrencia y paralelismo
  • Sistema concurrente
  • Arquitecturas hardware
  • La concurrencia en la Naturaleza

3
Bibliografía
  • Programación Concurrente
  • J. Palma et al. Thomson, 2003
  • Capítulo 1
  • Concurrent Programming
  • A. Burns, G. Davis. Addison-Wesley, 1993
  • Capítulo 1

4
Qué es la concurrencia?
  • Definición de diccionario acción y efecto de
    juntarse en un mismo lugar o tiempo diferentes
    personas, sucesos o cosas.
  • En Informática, se habla de concurrencia cuando
    hay unaexistencia simultánea de varios procesos
    en ejecución.
  • Ojo, concurrencia existencia simultánea no
    implica ejecución simultánea.

5
Paralelismo y concurrencia
  • El paralelismo es un caso particular de la
    concurrencia.
  • Se habla de paralelismo cuando ocurre la
    ejecución simultánea de instrucciones
  • arquitecturas paralelas
  • procesamiento paralelo
  • algoritmos paralelos
  • programación paralela

6
Procesos
  • Cuando hablamos de concurrencia en un sistema
    informático, nos referimos a un conjunto de
    actividades que se desarrollan de forma
    simultánea.
  • Cada una de esas actividades se llama proceso.
  • Cada proceso es un flujo de instrucciones que se
    pueden ejecutar en un procesador.

7
Competencia y cooperación
  • Los procesos de un sistema pueden tener esta
    relación con los demás
  • Competidores. Compiten por la utilización de
    recursos de uso exclusivo (ej. impresoras, bases
    de datos, etc.)
  • Cooperativos. Colaboran entre sí para alcanzar un
    fin común (ej. encontrar una secuencia de ADN en
    una BD)
  • En ambos casos, hacen falta mecanismos de
    sincronización y comunicación.

8
Contenidos
  • Concurrencia y paralelismo
  • Sistema concurrente
  • Arquitecturas hardware
  • La concurrencia en la Naturaleza

9
Qué es un sistema concurrente?
  • Es un sistema informático en el que la
    concurrencia desempeña un papel importante.
  • Ejemplos
  • sistemas operativos
  • sistemas de gestión de bases de datos (DBMS)
  • sistemas de tiempo real
  • sistemas distribuidos

10
Arquitecturas hardware
  • Tipos de arquitecturas hardware que soportan
    concurrencia
  • Monoprocesadores ? Sistemas con un solo
    procesador
  • Multiprocesadores ? Computadores con más de un
    procesador
  • Sistemas distribuidos ? Computadores conectados
    entre sí por una red

11
Sistemas monoprocesadores
  • No hay paralelismo. Los procesos se reparten el
    procesador entrelazado (interleaving)
  • Quién planifica los procesos?
  • el sistema operativo
  • el propio ejecutable (gracias al compilador) -gt
    runtime scheduler (RTSS)
  • Todos los procesos comparten la misma memoria
  • Forma natural de sincronizar y comunicar
    procesos
  • Variables compartidas

12
Multiprocesadores
  • Más de un procesador en la misma máquina ?
    paralelismo real
  • Sistemas estrechamente acoplados los
    procesadores comparten memoria y demás recursos
  • Escalable hasta unas decenas de procesadores
  • Comunicación mediante memoria compartida

13
Sistemas distribuidos
  • Múltiples procesadores conectados mediante una
    red
  • Los procesadores no comparten memoria ni reloj
  • Los sistemas conectados pueden ser de cualquier
    tipo
  • Escalable hasta millones de procesadores (ej.
    Internet)
  • Comunicación mediante mensajes

14
Contenidos
  • Concurrencia y paralelismo
  • Sistema concurrente
  • Arquitecturas hardware
  • La concurrencia en la Naturaleza

15
Dónde se encuentra la concurrencia?
  • En el hardware (la herramienta para construir
    sistemas informáticos)
  • ejecución paralela de instrucciones
  • funcionamiento paralelo de los periféricos
  • procesadores múltiples
  • sistemas distribuidos
  • En la Naturaleza (los sistemas que modelamos
    cuando hacemos ingeniería informática)
  • ejemplos?

16
Concurrencia inherente o potencial
  • Concurrencia inherente
  • Hay sistemas que en los que forzosamente se dan
    actividades simultáneas.
  • p.ej. GUI red de cajeros automáticos etc.
  • Concurrencia potencial
  • Hay sistemas o problemas que se pueden resolver
    de forma secuencial, pero en los que se puede
    aprovechar la concurrencia p.ej. para aumentar el
    rendimiento.
  • P.ej. multiplicar dos matrices, ordenar un vector

17
Ejercicio
  • Dar un ejemplo de sistema en la Naturaleza que
    sea concurrente
  • Dar dos ejemplos de sistemas que sean
    inherentemente concurrentes
  • Dar dos casos de sistemas/problemas en los que
    nos beneficiaríamos de la utilización de la
    concurrencia (concurrencia potencial)

18
Conclusiones
  • La concurrencia está presente en la Naturaleza y
    en los sistemas informáticos.
  • El hardware multiprocesador permite realizar más
    trabajo en menos tiempo.
  • Como ingenieros, estas conclusiones nos invitan a
    dos grandes objetivos
  • aprovechar el paralelismo existente en el
    hardware
  • facilitar nuestra misión de modelar sistemas
    concurrentes

19
(apéndices)
  • Algunas diapositivas complementarias

20
Sistemas distribuidos ventajas
  • compartición de recursos dispersos
  • ayuda al trabajo cooperativo de equipos humanos
  • aumento de velocidad de ejecución
  • escalabilidad ilimitada
  • aumento de fiabilidad
  • tolerancia a fallos (fault tolerance)
  • alta disponibilidad (availability)

21
Sistemas distribuidos complicaciones
  • los sistemas no comparten memoria ni reloj
  • la comunicación es más compleja
  • no se puede tener un estado global instantáneo.
  • dificultades en la sincronización
  • red de comunicaciones no fiable
  • pérdida de mensajes
  • mensajes desordenados
  • heterogeneidad de los nodos
  • múltiples plataformas hw y sw
  • diferencias en rendimiento

22
Sistemas de tiempo real
  • Para poder ejecutar satisfactoriamente tareas que
    han de completarse en un plazo prefijado (ej.
    sistemas de control industrial, sistemas
    multimedia)
  • Dos tipos
  • s.t.r. crítico para tareas que siempre deben
    cumplir los plazos de terminación. Adecuados para
    la industria. Muy simples, incompatibles con
    tiempo compartido, memoria virtual, etc.
  • s.t.r. no crítico intentan cumplir los plazos,
    pero no los garantizan al 100. Adecuados para
    multimedia, etc.

23
Granularidad del paralelismo
  • Cuando queremos explotar el paralelismo, podemos
    hacerlo en niveles de detalle distintos
  • Instrucciones de máquina
  • Sentencias de un lenguaje de programación
  • Módulos dentro de un programa
  • Programas ejecutables completos
  • Grano fino ? grano grueso

24
Granularidad del paralelismo
  • El programador debe saber con qué grano debe
    trabajar ante cada problema y no trabajar en
    niveles de detalle inferior.
  • Ej. si trabajamos con Ada o Java, estamos en el
    nivel de módulos
  • Concurrencia basada en hilos (threads)
  • no deberíamos perder el tiempo buscando
    sentencias simples que se pueden ejecutar en
    paralelo ? crear un hilo nuevo para ejecutar una
    única instrucción no hace ganar tiempo, incluso
    puede tardar más.
Write a Comment
User Comments (0)
About PowerShow.com