PDF de programación - Programación concurrente - Master de Computación I - Conceptos y recursos para la programación concurrente

Imágen de pdf Programación concurrente - Master de Computación I - Conceptos y recursos para la programación concurrente

Programación concurrente - Master de Computación I - Conceptos y recursos para la programación concurrentegráfica de visualizaciones

Publicado el 14 de Enero del 2017
670 visualizaciones desde el 14 de Enero del 2017
713,8 KB
18 paginas
Creado hace 11a (08/10/2012)
Programación concurrente

Master de Computación

I Conceptos y recursos para la programación concurrente:
I.1 Motivación de la programación concurrente.

J.M. Drake
M. Aldea

Motivación de la programación concurrente

• La crisis del software.
• Programas secuenciales, concurrentes y de tiempo real.
• Programación concurrente.
• Programación de tiempo real.
• Entornos hardware para programación concurrente.
• Ejemplo de un problema concurrente.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

2

LA CRISIS DEL SOFTWARE.

• Conjunto de tópicos relacionados con la problemática

asociada al desarrollo de software:
"Construir una aplicación software es una tarea mucho más

compleja de lo que parece al iniciarla"

• Aspectos de esta problemática son:

 Resposiveness: No satisfacen las espectativas del usuario.
 Reliability: Presentan fallos y su depuración es muy difícil.
 Cost: El costo es difícil de evaluar y mas alto de lo esperado.
 Modificability: Son productos muy rígidos y difíciles de mantener.
 Timeless: Requieren para su ejecución mas tiempo del previsto.
 Transportability: Hay problemas para migrar entre plataforma.
 Efficiency: Sólo utilizan una parte de la capacidad de hardware.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

3

CAUSAS DE LA CRISIS DELSOFTWARE.

• Causas profundas de la crisis del software son:

 La metodología en cascada que linealiza el proceso de desarrollo.

 La metodología de modularización estructurada hace que el software

sea inflexible y difícil de mantener.

 Los programadores no tienen formación en ingeniería software.

 La “inercia” de las empresas e instituciones dificulta la introducción

de innovaciones.

 La estructura secuencial de Von Newman no se adapta a los

problemas que se abordan.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

4

PROGRAMAS Y LÍNEAS DE FLUJO DE CONTROL.

• Un programa se compone de:

 Sentencias: Establecen las actividades (operaciones y verificaciones)

que ejecuta el sistema.

 Línea de flujo de control (Thread): Establece el orden en que se

ejecutan las sentencias.

• Según las características de la línea de flujo de control los

programas se clasifican en:
 Secuenciales.
 Concurrentes (tipo especial de sistemas concurrentes: Tiempo real).

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

5

PROGRAMAS SECUENCIALES.
• Es el estilo de programación que corresponde al modelo

conceptual de Von Newmann.

• Un programa secuencial tiene una línea simple de control de

flujo.

• Las operaciones de un programa secuencial están ordenadas

de acuerdo con un orden estricto.

• El comportamiento de un programa es solo función de las
sentencias que lo componen y del orden en que se ejecutan.

• El tiempo que tarda en ejecutarse cada operación no influye

en el resultado de un programa secuencial.

• La verificación de un programa secuencial es sencilla:

 Cada sentencia da la respuesta correcta.
 Las sentencias se ejecutan en el orden adecuado.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

6

PROGRAMAS CONCURRENTES.

• Son programas que tienen múltiples líneas de flujo de control.

• Las sentencias de un programa concurrente se ejecutan de

acuerdo con un orden no estricto.

• La secuencialización de un programa concurrente es entre

hitos o puntos de sincronización.

• Un programa concurrente se suele concebir como un conjunto

de procesos que colaboran y compiten entre sí.

• Para validar un programa concurrente:

 Las operaciones se pueden validar individualmente si las variables no

son actualizadas concurrentemente.

 El resultado debe ser independiente de los tiempos de ejecución de las

sentencias.

 El resultado debe ser independiente de la plataforma en que se ejecuta.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

7

APLICACIONES DE LOS PROGRAMAS CONCURRENTES

• Aplicaciones clásicas:

 Programación de sistemas multicomputadores.
 Sistemas operativos.
 Control y monitorización de sistemas físicos.

• Aplicaciones actuales:

 Servicios WEB.
 Sistemas multimedia.
 Cálculo numérico.
 Procesamientos entrada/salida.
 Simulación de sistemas dinámicos.
 Interacción operador/máquina (GUIs)
 Tecnologías de componentes.
 Sistemas embebidos.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

8

VENTAJAS DE LA PROGRAMACION CONCURRENTE.

• Proporciona el modelo más simple y natural de concebir

muchas aplicaciones.

• Facilita el diseño orientado a objetos de las aplicaciones, ya que

los objetos reales son concurrentes.

• Hace posible compartir recursos y subsistemas complejos.
• En sistemas monoprocesadores optimiza el uso de los recursos.
• Reduce tiempos de ejecución en plataformas multiprocesadoras.
• Facilita la realización de programas fiables replicando

componentes y/o procesos.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

9

CONCEPTO DE SISTEMA DE TIEMPO REAL.

• Un sistema de tiempo real es una combinación de uno o varios
computadores, dispositivos de hardware de I/O y software de
propósito especial, en la que:
 Hay una fuerte interacción con el entorno
 El entorno cambia con el tiempo
 El sistema controla o reacciona de forma simultánea a diferentes

aspectos del entorno

• En las aplicaciones de tiempo real, el funcionamiento correcto

no sólo depende de los resultados del cálculo, sino también
del instante en el que se generan esos resultados

• Como resultado:

 Se imponen requisitos temporales sobre el software.
 El software es de naturaleza concurrente.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

10

CONCEPTO DE SISTEMA DE TIEMPO REAL.

• Características esenciales de un sistema de tiempo real:

 El orden de ejecución de las operaciones depende de:

• Los eventos externos que recibe del entorno.
• Del tiempo que transcurre.

 El cumplimiento de plazos temporales en las respuestas es parte de la

especificación funcional.

• De acuerdo con la severidad de los requerimientos

temporales:
 Sistemas de tiempo real estricto (Hard real-time): El incumplimiento

de un plazo es un fallo irrecuperable.

 Sistemas de tiempo real laxos: (Soft real-time): Los requerimientos

temporales se cumplen en promedio.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

12

SISTEMAS EMPOTRADOS.

• Un computador (y su software) se considera empotrado si:

– es un componente integral de un sistema mayor,
– se usa para controlar, monitorizar o procesar la información de ese

sistema

– y usa dispositivos hardware especiales

• La mayoría de los sistemas de tiempo real son empotrados

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

13

EJEMPLO DE PROGRAMA DE TIEMPO REAL.

• Software embarcado de control de un coche.

Tarea

Periodo

Duración

% uso

Medida de velocidad

200 ms

40 ms

Control presión carburante

400 ms

100 ms

Control Válvula Carburador

800 ms

400 ms

20%

25%

50%

• El conjunto de tareas hacen uso del 95% de la capacidad del

procesador.

• No es posible combinar secuencialmente la tres tareas.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

14

EJEMPLO: SOLUCIÓN SECUENCIAL.

• La solución requiere segmentar las
tareas mas largas en secciones mas
breves.

• La solución es difícil de mantener.

60 ms

160 ms

60 ms

120 ms

V_C

(400 ms)

0

100

200

300

400

500

600

700

M_V[1]
P_C[1]

V_C_a[1]
M_V[2]
V_C_b[1]

M_V[3]
P_C[2]

V_C_c[1]
M_V[4]
V_C_d[1]

Sleep(40ms)

800
t (ms)

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

15

EJEMPLO: TAREA APERIÓDICA.

• La tarea C_S tiene la función de bloquear el cinturón de
seguridad si el sensor de aceleración supera un umbral:

Naturaleza:
Plazo de respuesta:
Uso de CPU:
Intervalo mínimo:

800 ms

Aperiódica
30 ms

20 ms



Incorporar esta tarea a la estructura secuencial es muy difícil.

• La solución atender el evento en una rutina de interrupción.

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

16

EJEMPLO SOLUCIÓN CONCURRENTE.
0

El programa se plantea como cuatro procesos
concurrentes, que solo interaccionan entre sí por
compartir el mismo recurso de procesamiento.

Prioridad

200 ms

30

20

Proceso M_V
Tiempo ejec: 40 ms

400 ms

Proceso P_C
Tiempo ejec: 100 ms

800 ms

10

Proceso V_C
Tiempo ejec: 400 ms

Acelerómetro

Proceso C_S
Tiempo ejec:20 ms
Plazo ejec: 30 ms

Prioridad: 100

100

200

300

400

500

600

700

800

M_V[1]
P_C[1]

V_C[1]
M_V[2]
V_C[1]

M_V[3]
P_C[2]

V_C[1]
M_V[4]
V_C[1]

CPU Libre

ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake, M. Aldea

17

Ejemplo de programa concurrente



(* Proceso de medida de la velocidad *)

program Control_coche;
process P_MedidaVelocidad;
begin
repeat M_V; sleep(160 ms); forever;
end;
process P_PresiónCarburante; (* Proceso de control de la presión de carburante *)
begin
repeat P_C; sleep(300 ms); forever;
end;
process P_ControlValvulaCarburador; (* Proc. de control de válvula del carburador *)
begin
repeat V_C; sleep(400 ms); forever;
end;
process P_ControlCinturan; (* Proceso de atención del control del cinturón *)
begin
repeat wait evento; C_S; forever;
end;
begin
cobegin

(* Programa principal *)

P_MedidaVelocidad; P_PresionCarburante;

P_ControlValvulaCarburador; P_ControlCinturón;
coend;
end.
ProCon’12: I.1- Motivación de la progr
  • Links de descarga
http://lwp-l.com/pdf1085

Comentarios de: Programación concurrente - Master de Computación I - Conceptos y recursos para la programación concurrente (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad