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

164 views
135 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
164
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. PROGRAMACIÓ CONCURRENT Processos i fils
  2. 2. Programes seqüencialsEs tracta de lestil 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 dun programa seqüencial estan ordenades dacord amb un ordre estricte.El comportament dun programa únicament va en funció de les sentències que lintegren i delordre en que sexecuta.En els programes seqüencials, el temps que tarda cada operació en executar-se no téconseqüències sobre el resultat.La verificació dun programa seqüencial és senzilla: Cada sentència dóna la resposta correcta. Les sentències sexecuten en lordre adient. Powerpoint Templates Page 2
  3. 3. Programes concurrentsSón programes que tenen múltiples línies de flux de control.Les sentències dun programa concurrent sexecuten dacord amb un ordre no estricte.La seqüencialització dun programa concurrent es dóna entre punts de sincronització.Un programa concurrent sacostuma a concebre com un conjunt de processos que col·laboren i competeixenentre 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 dexecució de les sentències. El resultat ha de ser independent de la plataforma en la que sexecuta. Powerpoint Templates Page 3
  4. 4. Programa o procés?Un programa és una seqüència de instruccions escritaen un determinat llenguatge. Un programa és unconcepte estàtic mentre que un procés és un conceptedinàmic. Powerpoint Templates Page 4
  5. 5. Avantatges de la programació concurrentProporciona el model més senzill i natural de concebre moltes aplicacions.Facilita el disseny orientat a objectes de les aplicacions (els objectes reals sónconcurrents.Facilita la compartició de recursos.En sistemes monoprocessador permet optimitzar lús dels recursos.Permet reduir els temps dexecució sobre plataformes multiprocessadores. Powerpoint Templates Page 5
  6. 6. Entorns maquinari per la programació concurrentUn 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. 7. Entorn monoprocessador amb multiprogramacióEls processos sexecuten amb concurrència virtual.Laplicació concurrent no sexecuta més eficientment.Raons per les que sutilitza: Optimitzar la utilització dels recursos. Servir a múltiples usuaris. Aconseguir un disseny més simple i comprensible. Powerpoint Templates Page 7
  8. 8. Entorn multiprocessador amb memòria compartidaEls processos sexecuten amb concurrència física.El programa concurrent sexecuta de forma més eficient.Poden existir problemes de coherència entre memòries. Powerpoint Templates Page 8
  9. 9. Sistema distribuïtExisteix 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. 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. 11. Exemple: Solució concurrentLa solució requereix segmentarles tasques més llargues enseccions més breus.La solució és difícil de mantenir. Powerpoint Templates Page 11
  12. 12. Exemple: Tasca aperiòdicaLa tasca C_S té la funció de bloquejar el cinturó de seguretat si el sensordacceleració supera un llindar: Naturalesa: Aperiòdica Termini de resposta: 30 ms Ús de la CPU: 20 ms Interval mínim: 800 msIncorporar aquesta tasca a lestructura seqüencial és molt difícil.La solució és atendre lesdeveniment en una rutina de interrupció. Powerpoint Templates Page 12
  13. 13. Exemple: Solució concurrentEl programa es planteja com 4processos concurrents que,únicament, interactuen entre ellsper compartir el mateix recursde processament. Powerpoint Templates Page 13
  14. 14. Exemple de programa concurrentprogram 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 datenció del control del cinturó*)begin repeat Wait esdeveniment; C_S; forever; end;begin (*Programa principal*)cobeginP_MesuraVelocitat;P_PressioCarburant;P_ControlValvulaCarburador;P_ControlCintur;coend;end Powerpoint Templates Page 14

×