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

14
PROGRAMACIÓ CONCURRENT Processos i fils

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

PROGRAMACIÓ CONCURRENT

Processos i fils

Powerpoint TemplatesPage 2

Programes seqüencialsEs 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 TemplatesPage 3

Programes concurrentsSó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 Un programa concurrent s'acostuma a concebre com un conjunt de processos que col·laboren i competeixen entre sí.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 TemplatesPage 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 TemplatesPage 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 TemplatesPage 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 TemplatesPage 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 TemplatesPage 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 TemplatesPage 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 TemplatesPage 10

Exemple de programa concurrentProgramari embarcat de control de un cotxe.

TASCATASCA PeríodePeríode DuracióDuració % ús% ús

Mesura de la velocitat Mesura de la velocitat 200 ms 40 ms 20%

Control de la pressió del Control de la pressió del carburantcarburant

400 ms 100 ms 25%

Control de la vàlvula del Control de la vàlvula del carburadorcarburador

800 ms 400 ms 50%

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

Powerpoint TemplatesPage 11

Exemple: Solució concurrentLa solució requereix segmentar les tasques més llargues en seccions més breus.La solució és difícil de mantenir.

Powerpoint TemplatesPage 12

Exemple: Tasca aperiòdicaLa 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 TemplatesPage 13

Exemple: Solució concurrent

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

Powerpoint TemplatesPage 14

Exemple de programa concurrentprogramprogram Control_cotxe;processprocess P_MesuraVelocitat; (*Procés de mesura de la velocitat*)

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

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

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

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

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

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

begin repeatbegin repeat Wait esdeveniment; C_S; forever; end;forever; end;

begin begin (*Programa principal*)(*Programa principal*)

cobegin cobegin

P_MesuraVelocitat;

P_PressioCarburant;

P_ControlValvulaCarburador;

P_ControlCintur;

coend;coend;

endend