SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

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

Resum UF3 - Sistemes de gestió empresarial
Resum UF3 - Sistemes de gestió empresarialResum UF3 - Sistemes de gestió empresarial
Resum UF3 - Sistemes de gestió empresarialxavi_13
 
Alta disponibilitat i Virtualització
Alta disponibilitat i VirtualitzacióAlta disponibilitat i Virtualització
Alta disponibilitat i VirtualitzacióNania87
 
Sistemesdegestio
SistemesdegestioSistemesdegestio
Sistemesdegestioalexturcu
 
Sistemesgestioempresarial
SistemesgestioempresarialSistemesgestioempresarial
Sistemesgestioempresarialalexturcu
 
Alexandracg uf4 sistemes_de_gestió_empresarial
Alexandracg uf4 sistemes_de_gestió_empresarialAlexandracg uf4 sistemes_de_gestió_empresarial
Alexandracg uf4 sistemes_de_gestió_empresarialAlexandra C G
 
Resum
ResumResum
Resumcfgmi
 
Uf4 sistemes de_gestió_empresarial
Uf4 sistemes de_gestió_empresarialUf4 sistemes de_gestió_empresarial
Uf4 sistemes de_gestió_empresarialAlexandra C G
 
El framework Cakephp
El framework CakephpEl framework Cakephp
El framework Cakephpherotyc
 
Estructura client-servidor
Estructura client-servidorEstructura client-servidor
Estructura client-servidorpaulacampanag
 
sistema empresarial de gestó d'informació
sistema empresarial de gestó d'informaciósistema empresarial de gestó d'informació
sistema empresarial de gestó d'informacióvgr22
 
Presentación1
Presentación1Presentación1
Presentación1deirt
 

Ähnlich wie 1213 Threads [1] Programació concurrent, processos i fils (20)

Resum UF3 - Sistemes de gestió empresarial
Resum UF3 - Sistemes de gestió empresarialResum UF3 - Sistemes de gestió empresarial
Resum UF3 - Sistemes de gestió empresarial
 
Alta disponibilitat i Virtualització
Alta disponibilitat i VirtualitzacióAlta disponibilitat i Virtualització
Alta disponibilitat i Virtualització
 
Sistemesdegestio
SistemesdegestioSistemesdegestio
Sistemesdegestio
 
Sistemesgestioempresarial
SistemesgestioempresarialSistemesgestioempresarial
Sistemesgestioempresarial
 
Segi
SegiSegi
Segi
 
Alexandracg uf4 sistemes_de_gestió_empresarial
Alexandracg uf4 sistemes_de_gestió_empresarialAlexandracg uf4 sistemes_de_gestió_empresarial
Alexandracg uf4 sistemes_de_gestió_empresarial
 
Glossari-1.pdf
Glossari-1.pdfGlossari-1.pdf
Glossari-1.pdf
 
Resum lluelles xavi_uf3
Resum lluelles xavi_uf3Resum lluelles xavi_uf3
Resum lluelles xavi_uf3
 
Resum
ResumResum
Resum
 
Resum_Xavi_Lliulles_UF3
Resum_Xavi_Lliulles_UF3Resum_Xavi_Lliulles_UF3
Resum_Xavi_Lliulles_UF3
 
UD3 Programació
UD3 ProgramacióUD3 Programació
UD3 Programació
 
Jose software
Jose softwareJose software
Jose software
 
Uf4 sistemes de_gestió_empresarial
Uf4 sistemes de_gestió_empresarialUf4 sistemes de_gestió_empresarial
Uf4 sistemes de_gestió_empresarial
 
El framework Cakephp
El framework CakephpEl framework Cakephp
El framework Cakephp
 
Estructura client-servidor
Estructura client-servidorEstructura client-servidor
Estructura client-servidor
 
Estructura Client Servidor
Estructura Client ServidorEstructura Client Servidor
Estructura Client Servidor
 
Open KM i open CMS
Open KM i open CMSOpen KM i open CMS
Open KM i open CMS
 
Presentación1
Presentación1Presentación1
Presentación1
 
sistema empresarial de gestó d'informació
sistema empresarial de gestó d'informaciósistema empresarial de gestó d'informació
sistema empresarial de gestó d'informació
 
Presentación1
Presentación1Presentación1
Presentación1
 

Mehr von Oriol Torres

Presentation of Treat or Treat
Presentation of Treat or TreatPresentation of Treat or Treat
Presentation of Treat or TreatOriol Torres
 
Presentación pública Treat or Treat
Presentación pública Treat or TreatPresentación pública Treat or Treat
Presentación pública Treat or TreatOriol Torres
 
1213 Threads [4] Sincronització
1213 Threads [4] Sincronització1213 Threads [4] Sincronització
1213 Threads [4] SincronitzacióOriol Torres
 
1213 Threads [5] Accés a fitxers
1213 Threads [5] Accés a fitxers1213 Threads [5] Accés a fitxers
1213 Threads [5] Accés a fitxersOriol Torres
 
1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrentOriol Torres
 
1213 Sockets [3] Programació
1213 Sockets [3] Programació1213 Sockets [3] Programació
1213 Sockets [3] ProgramacióOriol Torres
 
Appetite apps stats market
Appetite apps stats marketAppetite apps stats market
Appetite apps stats marketOriol Torres
 

Mehr von Oriol Torres (7)

Presentation of Treat or Treat
Presentation of Treat or TreatPresentation of Treat or Treat
Presentation of Treat or Treat
 
Presentación pública Treat or Treat
Presentación pública Treat or TreatPresentación pública Treat or Treat
Presentación pública Treat or Treat
 
1213 Threads [4] Sincronització
1213 Threads [4] Sincronització1213 Threads [4] Sincronització
1213 Threads [4] Sincronització
 
1213 Threads [5] Accés a fitxers
1213 Threads [5] Accés a fitxers1213 Threads [5] Accés a fitxers
1213 Threads [5] Accés a fitxers
 
1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent1213 Threads [2] Programació concurrent
1213 Threads [2] Programació concurrent
 
1213 Sockets [3] Programació
1213 Sockets [3] Programació1213 Sockets [3] Programació
1213 Sockets [3] Programació
 
Appetite apps stats market
Appetite apps stats marketAppetite apps stats market
Appetite apps stats market
 

Kürzlich hochgeladen

Presentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptxPresentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptxRosabel UA
 
LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)
LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)
LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)nfulgenc
 
JFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdf
JFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdfJFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdf
JFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdfErnest Lluch
 
Català parelles 1r -Natalia i LunaHORIZONTAL.pdf
Català parelles 1r -Natalia i LunaHORIZONTAL.pdfCatalà parelles 1r -Natalia i LunaHORIZONTAL.pdf
Català parelles 1r -Natalia i LunaHORIZONTAL.pdfErnest Lluch
 
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓII BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓLasilviatecno
 
presentació treball i energia 1 Batx.pptx
presentació treball i energia 1 Batx.pptxpresentació treball i energia 1 Batx.pptx
presentació treball i energia 1 Batx.pptxcarleslucmeta
 
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdfINFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdfErnest Lluch
 
JOCS FLORALSCatalà 6è - Isak Arenas.pdf
JOCS FLORALSCatalà 6è - Isak Arenas.pdfJOCS FLORALSCatalà 6è - Isak Arenas.pdf
JOCS FLORALSCatalà 6è - Isak Arenas.pdfErnest Lluch
 

Kürzlich hochgeladen (9)

Presentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptxPresentació bloc 3 Perspectiva gènere.pptx
Presentació bloc 3 Perspectiva gènere.pptx
 
LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)
LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)
LES COMARQUES DE CATALUNYA( Plana, costa, muntanya)
 
JFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdf
JFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdfJFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdf
JFCatalà 5è - EmmaVAZQUEZRODRIGUEZ.pdf
 
Díptic CFGM cfgm cfgm cfgm cfgm cfgm .pdf
Díptic CFGM cfgm cfgm cfgm cfgm cfgm .pdfDíptic CFGM cfgm cfgm cfgm cfgm cfgm .pdf
Díptic CFGM cfgm cfgm cfgm cfgm cfgm .pdf
 
Català parelles 1r -Natalia i LunaHORIZONTAL.pdf
Català parelles 1r -Natalia i LunaHORIZONTAL.pdfCatalà parelles 1r -Natalia i LunaHORIZONTAL.pdf
Català parelles 1r -Natalia i LunaHORIZONTAL.pdf
 
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓII BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
II BLOC ACTIVITATS APP INVENTOR PROGRAMACIO I DIGITALITZACIÓ
 
presentació treball i energia 1 Batx.pptx
presentació treball i energia 1 Batx.pptxpresentació treball i energia 1 Batx.pptx
presentació treball i energia 1 Batx.pptx
 
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdfINFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
INFORME_BAREM_PROVISIONAL_BAREMELLUCH.pdf
 
JOCS FLORALSCatalà 6è - Isak Arenas.pdf
JOCS FLORALSCatalà 6è - Isak Arenas.pdfJOCS FLORALSCatalà 6è - Isak Arenas.pdf
JOCS FLORALSCatalà 6è - Isak Arenas.pdf
 

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