Está en la página 1de 18

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.1. Aldea 2 .Drake. Programas secuenciales. ProCon’12: I. M. Programación de tiempo real. Programación concurrente. Ejemplo de un problema concurrente. Entornos hardware para programación concurrente. M.Motivación de la programación concurrente J. concurrentes y de tiempo real.

Motivación de la programación concurrente J. Aldea 3 . M. ProCon’12: I. Timeless: Requieren para su ejecución mas tiempo del previsto.Drake. Modificability: Son productos muy rígidos y difíciles de mantener.LA CRISIS DEL SOFTWARE. Transportability: Hay problemas para migrar entre plataforma. Efficiency: Sólo utilizan una parte de la capacidad de hardware. Cost: El costo es difícil de evaluar y mas alto de lo esperado. • 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. M.1. Reliability: Presentan fallos y su depuración es muy difícil.

Motivación de la programación concurrente J. M.  La metodología de modularización estructurada hace que el software sea inflexible y difícil de mantener.  La estructura secuencial de Von Newman no se adapta a los problemas que se abordan.CAUSAS DE LA CRISIS DELSOFTWARE. Aldea 4 .Drake. • Causas profundas de la crisis del software son:  La metodología en cascada que linealiza el proceso de desarrollo.1. M.  Los programadores no tienen formación en ingeniería software. ProCon’12: I.  La “inercia” de las empresas e instituciones dificulta la introducción de innovaciones.

Drake.Motivación de la programación concurrente J.1. Aldea 5 .PROGRAMAS Y LÍNEAS DE FLUJO DE CONTROL. • Según las características de la línea de flujo de control los programas se clasifican en:  Secuenciales.  Línea de flujo de control (Thread): Establece el orden en que se ejecutan las sentencias. • Un programa se compone de:  Sentencias: Establecen las actividades (operaciones y verificaciones) que ejecuta el sistema. ProCon’12: I. M. M.  Concurrentes (tipo especial de sistemas concurrentes: Tiempo real).

• Un programa secuencial tiene una línea simple de control de flujo.PROGRAMAS SECUENCIALES.Motivación de la programación concurrente J. • El tiempo que tarda en ejecutarse cada operación no influye en el resultado de un programa secuencial. M. • La verificación de un programa secuencial es sencilla:   Cada sentencia da la respuesta correcta.Drake. • El comportamiento de un programa es solo función de las sentencias que lo componen y del orden en que se ejecutan.1. • Las operaciones de un programa secuencial están ordenadas de acuerdo con un orden estricto. Aldea 6 . M. ProCon’12: I. Las sentencias se ejecutan en el orden adecuado. • Es el estilo de programación que corresponde al modelo conceptual de Von Newmann.

• Un programa concurrente se suele concebir como un conjunto de procesos que colaboran y compiten entre sí. • Son programas que tienen múltiples líneas de flujo de control. El resultado debe ser independiente de la plataforma en que se ejecuta. ProCon’12: I.Drake. M.PROGRAMAS CONCURRENTES. El resultado debe ser independiente de los tiempos de ejecución de las sentencias. • Para validar un programa concurrente:    Las operaciones se pueden validar individualmente si las variables no son actualizadas concurrentemente. • La secuencialización de un programa concurrente es entre hitos o puntos de sincronización. Aldea 7 .Motivación de la programación concurrente J. • Las sentencias de un programa concurrente se ejecutan de acuerdo con un orden no estricto.1. M.

Sistemas multimedia. Aldea 8 . Procesamientos entrada/salida.  Sistemas operativos. M.APLICACIONES DE LOS PROGRAMAS CONCURRENTES • Aplicaciones clásicas:  Programación de sistemas multicomputadores.  Control y monitorización de sistemas físicos. Sistemas embebidos.1. Simulación de sistemas dinámicos. Interacción operador/máquina (GUIs) Tecnologías de componentes. M.Drake. • Aplicaciones actuales:         Servicios WEB. ProCon’12: I.Motivación de la programación concurrente J. Cálculo numérico.

1. • Facilita la realización de programas fiables replicando componentes y/o procesos. ya que los objetos reales son concurrentes. • Hace posible compartir recursos y subsistemas complejos. • Proporciona el modelo más simple y natural de concebir muchas aplicaciones. M. • Reduce tiempos de ejecución en plataformas multiprocesadoras.Drake.Motivación de la programación concurrente J.VENTAJAS DE LA PROGRAMACION CONCURRENTE. ProCon’12: I. M. • Facilita el diseño orientado a objetos de las aplicaciones. • En sistemas monoprocesadores optimiza el uso de los recursos. Aldea 9 .

Drake.1. Aldea 10 . el funcionamiento correcto no sólo depende de los resultados del cálculo. M. ProCon’12: I. dispositivos de hardware de I/O y software de propósito especial.Motivación de la programación concurrente J. M.CONCEPTO DE SISTEMA DE TIEMPO REAL. El software es de naturaleza concurrente. • Un sistema de tiempo real es una combinación de uno o varios computadores. sino también del instante en el que se generan esos resultados • Como resultado:   Se imponen requisitos temporales sobre el software. 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.

.

• Del tiempo que transcurre. El cumplimiento de plazos temporales en las respuestas es parte de la especificación funcional. ProCon’12: I. • 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.Drake. Sistemas de tiempo real laxos: (Soft real-time): Los requerimientos temporales se cumplen en promedio.1.Motivación de la programación concurrente J. Aldea 12 . • 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. M. M.CONCEPTO DE SISTEMA DE TIEMPO REAL.

M.Drake. 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.Motivación de la programación concurrente J.1.SISTEMAS EMPOTRADOS. M. • Un computador (y su software) se considera empotrado si: – es un componente integral de un sistema mayor. Aldea 13 . – se usa para controlar.

Drake. M. • No es posible combinar secuencialmente la tres tareas. ProCon’12: I. Tarea Periodo Duración % uso Medida de velocidad 200 ms 40 ms 20% Control presión carburante 400 ms 100 ms 25% Control Válvula Carburador 800 ms 400 ms 50% • El conjunto de tareas hacen uso del 95% de la capacidad del procesador. Aldea 14 . M.1.Motivación de la programación concurrente J.EJEMPLO DE PROGRAMA DE TIEMPO REAL. • Software embarcado de control de un coche.

M.EJEMPLO: SOLUCIÓN SECUENCIAL. Aldea 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) 15 .Drake.Motivación de la programación concurrente J. • La solución es difícil de mantener. • La solución requiere segmentar las tareas mas largas en secciones mas breves.1. 60 ms 0 100 200 300 400 160 ms 500 V_C (400 ms) 60 ms 120 ms 600 700 800 t (ms) ProCon’12: I. M.

Aldea 16 . M.1.EJEMPLO: TAREA APERIÓDICA.Drake. • 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: Aperiódica Plazo de respuesta: 30 ms Uso de CPU: 20 ms Intervalo mínimo: 800 ms • Incorporar esta tarea a la estructura secuencial es muy difícil. ProCon’12: I. M.Motivación de la programación concurrente J. • La solución atender el evento en una rutina de interrupción.

que solo interaccionan entre sí por compartir el mismo recurso de procesamiento.EJEMPLO SOLUCIÓN CONCURRENTE.Drake.Motivación de la programación concurrente M_V[3] P_C[2] 700 V_C[1] M_V[4] V_C[1] 800 CPU Libre 600 J. Aldea 17 . Prioridad 30 200 ms 400 Tiempo ejec: 40 ms Tiempo ejec: 100 ms 800 ms 500 Proceso C_S Tiempo ejec:20 ms Plazo ejec: 30 ms Prioridad: 100 10 V_C[1] M_V[2] V_C[1] Acelerómetro 400 ms 20 200 300 Proceso M_V Proceso P_C 100 M_V[1] P_C[1] Proceso V_C Tiempo ejec: 400 ms ProCon’12: I. M. M.1. 0 El programa se plantea como cuatro procesos concurrentes.

P_ControlCinturón. end. forever. process P_MedidaVelocidad. sleep(160 ms). forever.1. end. begin (* Programa principal *) cobegin P_MedidaVelocidad. P_PresionCarburante. (* Proceso de medida de la velocidad *) begin repeat M_V. C_S. process P_ControlCinturan. (* Proceso de control de la presión de carburante *) begin repeat P_C. P_ControlValvulaCarburador. end. end. sleep(300 ms). (* Proceso de atención del control del cinturón *) begin repeat wait evento. sleep(400 ms). (* Proc. process P_ControlValvulaCarburador. de control de válvula del carburador *) begin repeat V_C.Drake. M. process P_PresiónCarburante. forever. end. forever.Motivación de la programación concurrente J. Aldea 18 . M. ProCon’12: I. coend.Ejemplo de programa concurrente program Control_coche.