SlideShare a Scribd company logo
PROGRAMACIÓ
 CONCURRENT

      Processos i fils
Programes seqüencials
Es tracta de l'estil de programació que correspon al model conceptual de Von Newmann.

Un programa seqüencial té una línia simple de control de flux.

Les operacions d'un programa seqüencial estan ordenades d'acord amb un ordre estricte.

El comportament d'un programa únicament va en funció de les sentències que l'integren i de
l'ordre en que s'executa.

En els programes seqüencials, el temps que tarda cada operació en executar-se no té
conseqüències sobre el resultat.

La verificació d'un programa seqüencial és senzilla:
    Cada sentència dóna la resposta correcta.
    Les sentències s'executen en l'ordre adient.




                                   Powerpoint Templates
                                                                                Page 2
Programes concurrents
Són programes que tenen múltiples línies de flux de control.

Les sentències d'un programa concurrent s'executen d'acord amb un ordre no estricte.

La seqüencialització d'un programa concurrent es dóna entre punts de sincronització.

Un programa concurrent s'acostuma a concebre com un conjunt de processos que col·laboren i competeixen
entre sí.

Per validar un programa concurrent:

      Les operacions es poden validar individualment si les variables no són actualitzades
      concurrentment.

      El resultat ha de ser independent dels temps d'execució de les sentències.

      El resultat ha de ser independent de la plataforma en la que s'executa.



                                  Powerpoint Templates
                                                                                      Page 3
Programa o procés?
Un programa és una seqüència de instruccions escrita
en un determinat llenguatge. Un programa és un
concepte estàtic mentre que un procés és un concepte
dinàmic.




                 Powerpoint Templates
                                            Page 4
Avantatges de la programació
           concurrent
Proporciona el model més senzill i natural de concebre moltes aplicacions.

Facilita el disseny orientat a objectes de les aplicacions (els objectes reals són
concurrents.

Facilita la compartició de recursos.

En sistemes monoprocessador permet optimitzar l'ús dels recursos.

Permet reduir els temps d'execució sobre plataformes multiprocessadores.




                               Powerpoint Templates
                                                                             Page 5
Entorns maquinari per la
         programació concurrent
Un programa concurrent correcte ha de funcionar en qualsevol plataforma.

La plataforma pot ser important per establir els models de fallida.

Entorns habituals:

    Entorn monoprocessador amb multiprogramació.

    Entorn multicomputador amb memòria compartida.

    Entorn distribuït.




                               Powerpoint Templates
                                                                           Page 6
Entorn monoprocessador amb
       multiprogramació
Els processos s'executen amb concurrència virtual.

L'aplicació concurrent no s'executa més eficientment.

Raons per les que s'utilitza:

    Optimitzar la utilització dels recursos.

    Servir a múltiples usuaris.

    Aconseguir un disseny més simple i comprensible.




                                  Powerpoint Templates
                                                         Page 7
Entorn multiprocessador amb
      memòria compartida
Els processos s'executen amb concurrència física.

El programa concurrent s'executa de forma més eficient.

Poden existir problemes de coherència entre memòries.




                             Powerpoint Templates
                                                          Page 8
Sistema distribuït
Existeix concurrència física.

La comunicació és per missatges.

Problemes típics:

    La comunicació és costosa.

    Coherència de dades.

    Entorns heterogenis.




                                Powerpoint Templates
                                                       Page 9
Exemple de programa concurrent
  Programari embarcat de control de un cotxe.

           TASCA                    Període            Duració          % ús
 Mesura de la velocitat               200 ms             40 ms              20%

 Control de la pressió del            400 ms            100 ms              25%
 carburant
 Control de la vàlvula del            800 ms            400 ms              50%
 carburador


  El conjunt de tasques utilitzen el 95% de la capacitat del processador.
  No és possible combinar seqüencialment les tres tasques.




                            Powerpoint Templates
                                                                            Page 10
Exemple: Solució concurrent
La solució requereix segmentar
les tasques més llargues en
seccions més breus.
La solució és difícil de mantenir.




                             Powerpoint Templates
                                                    Page 11
Exemple: Tasca aperiòdica
La tasca C_S té la funció de bloquejar el cinturó de seguretat si el sensor
d'acceleració supera un llindar:

               Naturalesa:                Aperiòdica
               Termini de resposta:       30 ms
               Ús de la CPU:              20 ms
               Interval mínim:            800 ms


Incorporar aquesta tasca a l'estructura seqüencial és molt difícil.
La solució és atendre l'esdeveniment en una rutina de interrupció.




                             Powerpoint Templates
                                                                      Page 12
Exemple: Solució concurrent

El programa es planteja com 4
processos    concurrents    que,
únicament, interactuen entre ells
per compartir el mateix recurs
de processament.




                           Powerpoint Templates
                                                  Page 13
Exemple de programa concurrent
program Control_cotxe;
process P_MesuraVelocitat;        (*Procés de mesura de la velocitat*)

begin repeat M_V; sleep(160 ms); forever; end;

process P_PressioCarburant;       (*Procés de control de la pressió del carburant*)

begin repeat M_V; sleep(300 ms); forever; end;

process P_ControlValvulaCarburador;      (*Procés de mesura de la velocitat*)

begin repeat M_V; sleep(400 ms); forever; end;

process P_ControlCintur; (*Procés d'atenció del control del cinturó*)

begin repeat Wait esdeveniment; C_S; forever; end;

begin                             (*Programa principal*)

cobegin

P_MesuraVelocitat;

P_PressioCarburant;

P_ControlValvulaCarburador;

P_ControlCintur;

coend;

end




                                            Powerpoint Templates
                                                                                      Page 14

More Related Content

PPT
Economia col·laborativa, turisme col·laboratiu i KangApp
PDF
1213 Sockets [1] Introducció
PDF
1213 Sockets [2] Arquitectura client - servidor
PDF
1213 serveis [5] Correu electronic i pagines web
PDF
1213 Threads [3] Semafors
PDF
1213 Sockets [4] Servidors i fils
PPTX
Carl Bauer "Trade-Ins Online
PPTX
European offshore statistics 2012
Economia col·laborativa, turisme col·laboratiu i KangApp
1213 Sockets [1] Introducció
1213 Sockets [2] Arquitectura client - servidor
1213 serveis [5] Correu electronic i pagines web
1213 Threads [3] Semafors
1213 Sockets [4] Servidors i fils
Carl Bauer "Trade-Ins Online
European offshore statistics 2012

Similar to 1213 Threads [1] Programació concurrent, processos i fils (20)

PDF
Glossari-1.pdf
PDF
C1 ud6
PPTX
UD3 Programació
ODP
Sergi software
ODP
Programari lliure, patrimoni de la humanitat
PDF
C2 Tecnologia digital i ús de l’ordinador i del sistema operatiu
PDF
Projecte Informàtica
PPS
La meva primer presentació
PPT
La Finestra de treball del powerpoint
PDF
C2 Comença!
PDF
150511 programari lliure_i_taller_de_linux_v2
PDF
Tema 2. sistemes operatius i gestió de xarxes
PPTX
UD3 PROGRAMACIÓ
PDF
La informàtica
PDF
La informàtica
ODP
Jose software
PDF
Tecno informatica eric
PDF
Tecno informatica eric
PDF
Sync toasync
PDF
Ordinador - Software i
Glossari-1.pdf
C1 ud6
UD3 Programació
Sergi software
Programari lliure, patrimoni de la humanitat
C2 Tecnologia digital i ús de l’ordinador i del sistema operatiu
Projecte Informàtica
La meva primer presentació
La Finestra de treball del powerpoint
C2 Comença!
150511 programari lliure_i_taller_de_linux_v2
Tema 2. sistemes operatius i gestió de xarxes
UD3 PROGRAMACIÓ
La informàtica
La informàtica
Jose software
Tecno informatica eric
Tecno informatica eric
Sync toasync
Ordinador - Software i
Ad

More from Oriol Torres (7)

PPTX
Presentation of Treat or Treat
PDF
Presentación pública Treat or Treat
PDF
1213 Threads [4] Sincronització
PDF
1213 Threads [5] Accés a fitxers
PDF
1213 Threads [2] Programació concurrent
PDF
1213 Sockets [3] Programació
PPTX
Appetite apps stats market
Presentation of Treat or Treat
Presentación pública Treat or Treat
1213 Threads [4] Sincronització
1213 Threads [5] Accés a fitxers
1213 Threads [2] Programació concurrent
1213 Sockets [3] Programació
Appetite apps stats market
Ad

1213 Threads [1] Programació concurrent, processos i fils

  • 1. PROGRAMACIÓ CONCURRENT Processos i fils
  • 2. Programes seqüencials Es tracta de l'estil de programació que correspon al model conceptual de Von Newmann. Un programa seqüencial té una línia simple de control de flux. Les operacions d'un programa seqüencial estan ordenades d'acord amb un ordre estricte. El comportament d'un programa únicament va en funció de les sentències que l'integren i de l'ordre en que s'executa. En els programes seqüencials, el temps que tarda cada operació en executar-se no té conseqüències sobre el resultat. La verificació d'un programa seqüencial és senzilla: Cada sentència dóna la resposta correcta. Les sentències s'executen en l'ordre adient. Powerpoint Templates Page 2
  • 3. Programes concurrents Són programes que tenen múltiples línies de flux de control. Les sentències d'un programa concurrent s'executen d'acord amb un ordre no estricte. La seqüencialització d'un programa concurrent es dóna entre punts de sincronització. Un programa concurrent s'acostuma a concebre com un conjunt de processos que col·laboren i competeixen entre sí. Per validar un programa concurrent: Les operacions es poden validar individualment si les variables no són actualitzades concurrentment. El resultat ha de ser independent dels temps d'execució de les sentències. El resultat ha de ser independent de la plataforma en la que s'executa. Powerpoint Templates Page 3
  • 4. Programa o procés? Un programa és una seqüència de instruccions escrita en un determinat llenguatge. Un programa és un concepte estàtic mentre que un procés és un concepte dinàmic. Powerpoint Templates Page 4
  • 5. Avantatges de la programació concurrent Proporciona el model més senzill i natural de concebre moltes aplicacions. Facilita el disseny orientat a objectes de les aplicacions (els objectes reals són concurrents. Facilita la compartició de recursos. En sistemes monoprocessador permet optimitzar l'ús dels recursos. Permet reduir els temps d'execució sobre plataformes multiprocessadores. Powerpoint Templates Page 5
  • 6. Entorns maquinari per la programació concurrent Un programa concurrent correcte ha de funcionar en qualsevol plataforma. La plataforma pot ser important per establir els models de fallida. Entorns habituals: Entorn monoprocessador amb multiprogramació. Entorn multicomputador amb memòria compartida. Entorn distribuït. Powerpoint Templates Page 6
  • 7. Entorn monoprocessador amb multiprogramació Els processos s'executen amb concurrència virtual. L'aplicació concurrent no s'executa més eficientment. Raons per les que s'utilitza: Optimitzar la utilització dels recursos. Servir a múltiples usuaris. Aconseguir un disseny més simple i comprensible. Powerpoint Templates Page 7
  • 8. Entorn multiprocessador amb memòria compartida Els processos s'executen amb concurrència física. El programa concurrent s'executa de forma més eficient. Poden existir problemes de coherència entre memòries. Powerpoint Templates Page 8
  • 9. Sistema distribuït Existeix concurrència física. La comunicació és per missatges. Problemes típics: La comunicació és costosa. Coherència de dades. Entorns heterogenis. Powerpoint Templates Page 9
  • 10. Exemple de programa concurrent Programari embarcat de control de un cotxe. TASCA Període Duració % ús Mesura de la velocitat 200 ms 40 ms 20% Control de la pressió del 400 ms 100 ms 25% carburant Control de la vàlvula del 800 ms 400 ms 50% carburador El conjunt de tasques utilitzen el 95% de la capacitat del processador. No és possible combinar seqüencialment les tres tasques. Powerpoint Templates Page 10
  • 11. Exemple: Solució concurrent La solució requereix segmentar les tasques més llargues en seccions més breus. La solució és difícil de mantenir. Powerpoint Templates Page 11
  • 12. Exemple: Tasca aperiòdica La tasca C_S té la funció de bloquejar el cinturó de seguretat si el sensor d'acceleració supera un llindar: Naturalesa: Aperiòdica Termini de resposta: 30 ms Ús de la CPU: 20 ms Interval mínim: 800 ms Incorporar aquesta tasca a l'estructura seqüencial és molt difícil. La solució és atendre l'esdeveniment en una rutina de interrupció. Powerpoint Templates Page 12
  • 13. Exemple: Solució concurrent El programa es planteja com 4 processos concurrents que, únicament, interactuen entre ells per compartir el mateix recurs de processament. Powerpoint Templates Page 13
  • 14. Exemple de programa concurrent program Control_cotxe; process P_MesuraVelocitat; (*Procés de mesura de la velocitat*) begin repeat M_V; sleep(160 ms); forever; end; process P_PressioCarburant; (*Procés de control de la pressió del carburant*) begin repeat M_V; sleep(300 ms); forever; end; process P_ControlValvulaCarburador; (*Procés de mesura de la velocitat*) begin repeat M_V; sleep(400 ms); forever; end; process P_ControlCintur; (*Procés d'atenció del control del cinturó*) begin repeat Wait esdeveniment; C_S; forever; end; begin (*Programa principal*) cobegin P_MesuraVelocitat; P_PressioCarburant; P_ControlValvulaCarburador; P_ControlCintur; coend; end Powerpoint Templates Page 14