paralelismo alexandre mota ([email protected]). paralelismo representam a execução paralela de dois...

21
Paralelismo Alexandre Mota ([email protected])

Upload: vitor-pedroso-aleixo

Post on 07-Apr-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Paralelismo

Alexandre Mota([email protected])

Page 2: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Paralelismo Representam a execução paralela de dois ou

mais processos: fluxos de controles independentes interações eventuais

Utilizados para conectar os componentes de um sistema distribuído: sistemas distribuídos a partir de componentes

seqüenciais sistemas distribuídos a partir de componentes

paralelos

Page 3: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Operadores de Paralelismo Concorrência pode ser expressa

em CSP através de: Composição paralela alfabetizada

P [ X || Y ] Q Composição paralela generalizada

P [| X |] Q Entrelaçamento

P ||| Q

Page 4: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Entrelaçamento Sejam P e Q processos CSP então

P ||| Q P e Q são executados em paralelo

sem sincronização (independentes) Útil para especificar arquiteturas

cliente-servidor Vários clientes e/ou servidores

Page 5: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Entrelaçamento P ||| Q

Oferece os eventos iniciais tanto de P quanto de Q, e espera até que haja uma comunicação

Após a comunicação de um evento a de P (Q), comporta-se como P’ ||| Q (P ||| Q’)

Na presença de mesmo evento, P ||| Q evolução em P ou Q é não-determinística

Page 6: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Processos Paralelos e Seqüenciais Sejam P = c?x:A -> P’ e Q = c?x:B -> Q’.

Então:

P ||| Q = c?x: A B -> if (x A B) then (P’ ||| Q) |~| (P ||| Q’) else if (x A) then (P’ ||| Q) else (P ||| Q’)

Page 7: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Lei Interessante Seja P um processo CSP. Então

P ||| STOP = P Esta lei decorre imediatamente do

slide anterior (step-law) if (x A) then (P’ ||| Q) Onde Q é o processo STOP

Este fato nos permite modelar tolerância a falhas

Page 8: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Cuidado Sejam P e Q processos CSP

recursivos. O processoP = P ||| Q

É infinito estruturalmente e FDR não consegue lidar com o mesmo

Já P = P’ ||| Q pode ser trabalhado sem problemas

Page 9: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Exercício 1. Como modelo uma coleção de

processos independentes entre si, mas que sejam identificáveis individualmente?

2. Como represento um sistema tolerante a falhas onde o sistema só deixa de funcionar quando todos os componentes falharem?

Page 10: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Composição Paralela Generalizada Sejam P e Q processos CSP então

P [| X |] Q P e Q são executados em paralelo

mas sincronizando nos eventos em X: Nos outros eventos semelhante ao

operador de entrelaçamento (independente)

Page 11: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Composição Paralela Generalizada Generaliza outros operadores:

P ||| Q = P [| {} |] Q P [ X || Y ] Q =

(P [| Events \ X |] STOP)[| X Y |] (Q [| Events \ Y |] STOP)

Não pode ser expresso através dos outros operadores

Page 12: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Composição Paralela Generalizada P [| X |] Q

Com A e B sendo respectivamente os eventos iniciais de P e Q, tem-se o seguinte conjunto de eventos:

C =(A \ X) U (B \ X) U (A B X)

Page 13: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Processos Paralelos e Sequenciais

Sejam P = c?x:A -> P’ e Q = c?x:B -> Q’. Então P [| X |] Q = c?x:C -> if (xX) then P’ [|X|] Q’ else if (xAB) then (P’ [|X|] Q) |~| (P [|X|] Q’) else if (xA) then (P’ [|X|] Q) else (P [|X|] Q’)

Page 14: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

DeadlockP = (a -> b -> P) [] (b -> a -> P)

Q = (a -> c -> Q) [] (c -> a -> Q)

P [|Events|] Q = a -> STOP

Page 15: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Exercício 1. Como modelo um cliente-

servidor? Por exemplo, um supermercado com

vários caixas e vários servidores de acesso a cartão crédito/visa electron?

Page 16: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Restringindo Concorrência Os operadores de composição

paralela podem ser usados para restringir o comportamento dos processos: P [|X|] STOP comporta-se como P exceto

pela proibição da realização dos eventos em X

P [|X|] Q, onde Q só realiza os eventos em X, restringe o comportamento de P

Page 17: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Associatividade Sejam P, Q e R processos CSP, X e

Y conjuntos de sincronização. Então (P [|X|] Q) [|Y|] R P [|X|] (Q [|Y|] R)

Só quando X = Y esta associatividade é válida (P [|X|] Q) [|X|] R = P [|X|] (Q [|X|] R)

Page 18: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Multiway rendezvous Ocorre quando mais de dois

processos participam de interação em comum

Do ponto de vista de análise pode ser usado sem problemas

No nível de projeto deve ser evitado ou reescrito

O modelo CSP que será usado para mapear em JCSP não deve usar JCSP não suporta

Page 19: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Operadores Indexados Para P [ X || Y ] Q temos

|| i:{1..N} @ [A(i)] P(i) Para P ||| Q temos

||| i:{1..N} @ P(i) Para P [|X|] Q temos

[|X|] i:{1..N} @ P(i)

Page 20: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Cliente-Servidor Indexados Sejam Ci e Sj processos CSP e X um

conjunto de sincronização entre Ci e Sj. Então uma arquitetura cliente-servidor pode ser vista genericamente como (|||i=1..N Ci) [|X|] (|||j=1..K Sj)

Page 21: Paralelismo Alexandre Mota (acm@cin.ufpe.br). Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes

Referências Roscoe, A.W. The Theory and

Practice of Concurrency. Prentice-Hall, 1998.

Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.