psp-b1 hilos y procesos

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

eugeniaperez.es

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

1 Programas concurrentes

  • Múltiples líneas de flujo de control
  • No se sigue un orden temporal lineal
    • Sincronización que defina el orden
    • y los recursos a compartir
    • Hilos
      • Constituyen el programa concurrente
      • Se sincronizan y se comunican entre sí

eugeniaperez.es

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

1 Programas concurrentes

  • Múltiples líneas de flujo de control
  • Políticas de sincronización ¿?

eugeniaperez.es

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

1.1 Programación paralela

  • Ejecución simultánea de varias instrucciones
  • Subdivisión de un problema en partes más pequeñas
  • Más difícil de implementar

eugeniaperez.es

  • Velocidad
  • Diseño
  • Complejidad

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

1.1 Programación paralela

Se asienta en la industria multiprocesador

eugeniaperez.es

  • Velocidad
  • Diseño
  • Complejidad

1.1 PARALELISMO VS. CONCURRENCIA

 

Concurrencia

  • 1 solo procesador
  • Varias tareas
  • Ejecución simultánea de tareas
    • Falsa sensación de simultaneidad

 

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

Paralelismo

  • Varios procesadores
  • Ejecución simultánea real
    • Diferentes tareas asignadas a diferentes procesadores

eugeniaperez.es

1.1 PARALELISMO VS. CONCURRENCIA

eugeniaperez.es

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

1.2 Aplicaciones de la programación concurrente

eugeniaperez.es

Clásicas    

  • Sistemas operativos (en función del nº de procesadores)

Actuales

  • Servicios Web -> llamadas AJAX
  • Sistemas multimedia
  • Cálculo numérico
  • Procesamientos entrada/salida
  • Interfaces de usuario
  • Aplicaciones móviles

 

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

1.3 Ventajas de la programación concurrente

eugeniaperez.es

  • En sistemas monoprocesador permite optimizar el uso de los recursos.
  • Facilita la programación de tiempo real, ya que se pueden concebir como procesos cuya ejecución se planifican de acuerdo con la urgencia.
  • Permite reducir los tiempos de ejecución sobre plataformas multiprocesadoras.

 

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

2. Sistema distribuído

eugeniaperez.es

Un sistema distribuido es una colección de computadores independientes que aparecen ante los usuarios como un único sistema coherente”

 

Andrew S. Tanenbaum

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

2. Sistema distribuído

eugeniaperez.es

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

INTERNET

2. Sistema distribuído

Bases de datos distribuidas

  • En desarrollo, los programadores solemos utilizar bases de datos ubicadas en un solo equipo (normalmente en la misma máquina de desarrollo)
  • En producción, es habitual distribuir varias instancias de la base de datos en diferentes servidores.

 

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

eugeniaperez.es

2. Sistema distribuído

 

 

  • Fiabilidad
  • Disponibilidad
  • Rendimiento
  •  Económico

 

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

eugeniaperez.es

Más complejos, propensos a vulnerabilidades...

2. Sistema distribuído

eugeniaperez.es

Bases de datos distribuidas

 

UT 2: PROGRAMACIÓN CONCURRENTE Y DISTRIBUÍDA

Made with Slides.com