conceptos y recursos para la programación concurrente

18
J.M. Drake M. Aldea Programación concurrente Master de Computación  I Conceptos y recursos p ara la pro gramación co ncurrente: I.1 Motivación de la programación concurrente.

Upload: javier-vivanco

Post on 25-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 1/18

J.M. Drake

M. Aldea

Programación concurrenteMaster de Computación

 I Conceptos y recursos para la programación concurrente:

  I.1 Motivación de la programación concurrente.

Page 2: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 2/18

2ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

Motivación de la programación concurrente

" #a crisis del so$t%are.

" Programas secuenciales concurrentes & de tiempo real.

" Programación concurrente.

" Programación de tiempo real.

" 'ntornos (ard%are para programación concurrente." ')emplo de un pro*lema concurrente.

Page 3: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 3/18

+ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

LA CRISIS DEL SO!"ARE.

" Con)unto de tópicos relacionados con la pro*lem,tica

asociada al desarrollo de so$t%are:"Construir una aplicación software es una tarea mucho más

 compleja de lo que parece al iniciarla"

" !spectos de esta pro*lem,tica son: Re#po#ivene##$ o satis$acen las espectativas del usuario.

Relia%ilit&$ Presentan $allos & su depuración es mu& di$cil.

Co#t$ 'l costo es di$cil de evaluar & mas alto de lo esperado.

Modi'ica%ilit&$ /on productos mu& rgidos & di$ciles de mantener.

!imele##$ 0euieren para su e)ecución mas tiempo del previsto.

!ran#porta%ilit&$ a& pro*lemas para migrar entre plata$orma.

E''icienc&$ /ólo utili3an una parte de la capacidad de (ard%are.

Page 4: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 4/18

4ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

CA(SAS DE LA CRISIS DELSO!"ARE.

" Causas pro$undas de la crisis del so$t%are son:

#a metodologa en cascada ue lineali3a el proceso de desarrollo.

#a metodologa de modulari3ación estructurada (ace ue el so$t%are

sea in$le5i*le & di$cil de mantener.

#os programadores no tienen $ormación en ingeniera so$t%are.

#a 6inercia7 de las empresas e instituciones di$iculta la introducción

de innovaciones.

 #a estructura secuencial de 8on e%man no se adapta a los

 pro*lemas ue se a*ordan.

Page 5: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 5/18

9ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

)RO*RAMAS + L,-EAS DE L(JO DE CO-!ROL.

" n programa se compone de:

/entencias: 'sta*lecen las actividades ;operaciones & veri$icaciones<

ue e)ecuta el sistema.

#nea de $lu)o de control ;=(read<: 'sta*lece el orden en ue se

e)ecutan las sentencias.

" /eg>n las caractersticas de la lnea de $lu)o de control los

 programas se clasi$ican en:

/ecuenciales.

Concurrentes ;tipo especial de sistemas concurrentes: =iempo real<.

Page 6: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 6/18

?ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

)RO*RAMAS SEC(E-CIALES.

" 's el estilo de programación ue corresponde al modelo

conceptual de on -e/mann." n programa secuencial tiene una l0nea #imple de control de

$lu)o.

" #as operaciones de un programa secuencial est,n ordenadas

de acuerdo con un orden e#tricto." 'l comportamiento de un programa es solo $unción de las

sentencias ue lo componen & del orden en ue se e)ecutan.

" El tiempo ue tarda en e)ecutarse cada operación no in'lu&e 

en el resultado de un programa secuencial." #a veri'icación de un programa secuencial e# #encilla:

Cada sentencia da la respuesta correcta.

#as sentencias se e)ecutan en el orden adecuado.

Page 7: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 7/18@ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

)RO*RAMAS CO-C(RRE-!ES.

" /on programas ue tienen m>ltiples lneas de $lu)o de control.

" #as sentencias de un programa concurrente se e)ecutan deacuerdo con un orden no estricto.

" #a secuenciali3ación de un programa concurrente es entre

(itos o puntos de sincroni3ación." n programa concurrente se suele conce*ir como un con)unto

de procesos ue cola*oran & compiten entre s.

" Para validar  un programa concurrente: #as operaciones se pueden validar individualmente si las varia*les no

son actuali3adas concurrentemente. 'l resultado de*e ser independiente de los tiempos de e)ecución de las

sentencias. 'l resultado de*e ser independiente de la plata$orma en ue se e)ecuta.

Page 8: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 8/18AProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

A)LICACIO-ES DE LOS )RO*RAMAS CO-C(RRE-!ES

" !plicaciones cl,sicas:

Programación de sistemas multicomputadores.

/istemas operativos.

Control & monitori3ación de sistemas $sicos.

" !plicaciones actuales:

/ervicios B'. /istemas multimedia.

C,lculo numrico.

Procesamientos entradaEsalida.

/imulación de sistemas din,micos.

Interacción operadorEm,uina ;FIs<

=ecnologas de componentes.

/istemas em*e*idos.

Page 9: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 9/18GProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

E-!AJAS DE LA )RO*RAMACIO- CO-C(RRE-!E.

" Proporciona el modelo m,s simple & natural  de conce*ir

muc(as aplicaciones.

" Hacilita el diseo orientado a o*)etos de las aplicaciones &a ue

los o*)etos reales son concurrentes.

" ace posi*le compartir recursos & su*sistemas comple)os.

" 'n sistemas monoprocesadores optimi3a el uso de los recursos.

" 0educe tiempos de e)ecución en plata$ormas multiprocesadoras.

" Hacilita la reali3ación de programas $ia*les replicando

componentes &Eo procesos.

Page 10: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 10/181ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

CO-CE)!O DE SIS!EMA DE !IEM)O REAL.

" n sistema de tiempo real es una com*inación de uno o varios

computadores dispositivos de (ard%are de IEK & so$t%are de propósito especial en la ue: a& una $uerte interacción con el entorno

'l entorno cam*ia con el tiempo

'l sistema controla o reacciona de $orma simult,nea a di$erentesaspectos del entorno

" 'n las aplicaciones de tiempo real el $uncionamiento correcto

no sólo depende de los resultados del c,lculo sino tam*in

del instante en el ue se generan esos resultados

" Como resultado: /e imponen reuisitos temporales so*re el so$t%are.

'l so$t%are es de naturale3a concurrente.

Page 11: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 11/18

Page 12: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 12/1812ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

CO-CE)!O DE SIS!EMA DE !IEM)O REAL.

" Caractersticas esenciales de un sistema de tiempo real: 'l orden de e)ecución de las operaciones depende de:

" #os eventos e5ternos ue reci*e del entorno.

" Del tiempo ue transcurre.

'l cumplimiento de pla3os temporales en las respuestas es parte de la

especi$icación $uncional.

" De acuerdo con la severidad de los reuerimientos

temporales:

/istemas de tiempo real estricto ;ard real-time<: 'l incumplimientode un pla3o es un $allo irrecupera*le.

/istemas de tiempo real la5os: ;/o$t real-time<: #os reuerimientos

temporales se cumplen en promedio.

Page 13: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 13/181+ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

SIS!EMAS EM)O!RADOS.

" n computador ;& su so$t%are< se considera empotrado si:

 L  es un componente integral de un sistema ma&or L  se usa para controlar monitori3ar o procesar la in$ormación de ese

sistema

 L  & usa dispositivos (ard%are especiales

" #a ma&ora de los sistemas de tiempo real son empotrados

Page 14: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 14/1814ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

EJEM)LO DE )RO*RAMA DE !IEM)O REAL.

" /o$t%are em*arcado de control de un coc(e. 

" 'l con)unto de tareas (acen uso del G9 de la capacidad del

 procesador.

"  o es posi*le com*inar secuencialmente la tres tareas.

94 msA msControl 8,lvula Car*urador 

291 ms4 msControl presión car*urante

24 ms2 msMedida de velocidad

usoDuraciónPeriodo=area

Page 15: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 15/1819ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

EJEM)LO$ SOL(CI- SEC(E-CIAL.

" #a solución reuiere segmentar las

tareas mas largas en secciones mas *reves.

" #a solución es di$cil de mantener. 

A

4

1

2

+

9

?

@

MN8O1

PNCO1

8NCNaO1

8NCN*O1

8NCNcO1

8NCNdO1

MN8O2

MN8O+

PNCO2

MN8O4

/leep;4ms<

8NC

;4 ms<

? ms

1? ms

? ms

12 ms

t ;ms<

Page 16: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 16/181?ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

EJEM)LO$ !AREA A)ERIDICA.

" #a tarea CN/ tiene la $unción de *louear el cinturón de

seguridad si el sensor de aceleración supera un um*ral:

 aturale3a: !periódica

Pla3o de respuesta: + ms

so de CP: 2 ms

Intervalo mnimo: A ms

" Incorporar esta tarea a la estructura secuencial es mu& di$cil.

" #a solución atender el evento en una rutina de interrupción.

Page 17: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 17/181@ProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

EJEM)LO SOL(CI- CO-C(RRE-!E.

  'l programa se plantea como cuatro procesos

concurrentes ue solo interaccionan entre s por

compartir el mismo recurso de procesamiento. 

A

4

1

2

+

9

?

@

MN8O1

PNCO1

8NCO1

8NCO1

8NCO1

8NCO1

MN8O2

MN8O+

PNCO2

MN8O4

CP #i*re

)roce#o M2=iempo e)ec: 4 ms

2 ms

)roce#o )2C

=iempo e)ec: 1 ms

4 ms

)roce#o 2C=iempo e)ec: 4 ms

A ms

)roce#o C2S

=iempo e)ec:2 ms

Pla3o e)ec: + ms

!celerómetro

Prioridad

+

2

1

Prioridad: 1

Page 18: Conceptos y recursos para la programación concurrente

7/25/2019 Conceptos y recursos para la programación concurrente

http://slidepdf.com/reader/full/conceptos-y-recursos-para-la-programacion-concurrente 18/181AProCon’12: I.1- Motivación de la programación concurrente J. M.Drake M. !ldea

E3emplo de programa concurrente

program Control_coche;  process P_MedidaVelocidad; (* Proceso de medida de la velocidad *) 

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(00 ms); forever;

end; 

process P_ControlValvulaCarburador; (* Proc! de control de v"lvula del carburador *)  begin

repeat V_C; sleep(#00 ms); forever;end;

  process P_ControlCinturan; (* Proceso de atención del control del cinturón *)  begin 

repeat  $ait evento; C_%; forever;end;

begin (* Pro&rama principal *)  cobegin 

P_MedidaVelocidad; P_PresionCarburante;  P_ControlValvulaCarburador; P_ControlCinturón;

coend;

end.