A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.

Apresentações semelhantes


Apresentação em tema: "Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes."— Transcrição da apresentação:

1 Paralelismo Alexandre Mota (acm@cin.ufpe.br)

2 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

3 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

4 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

5 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

6 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’)

7 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

8 Cuidado Sejam P e Q processos CSP recursivos. O processo P = P ||| Q É infinito estruturalmente e FDR não consegue lidar com o mesmo Já P = P’ ||| Q pode ser trabalhado sem problemas

9 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?

10 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)

11 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

12 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)

13 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 (x  X) then P’ [|X|] Q’ else if (x  A  B) then (P’ [|X|] Q) |~| (P [|X|] Q’) else if (x  A) then (P’ [|X|] Q) else (P [|X|] Q’)

14 Deadlock P = (a -> b -> P) [] (b -> a -> P) Q = (a -> c -> Q) [] (c -> a -> Q) P [|Events|] Q = a -> STOP

15 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?

16 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

17 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)

18 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

19 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)

20 Cliente-Servidor Indexados Sejam C i e S j processos CSP e X um conjunto de sincronização entre C i e S j. Então uma arquitetura cliente-servidor pode ser vista genericamente como (||| i=1..N C i ) [|X|] (||| j=1..K S j )

21 Referências Roscoe, A.W. The Theory and Practice of Concurrency. Prentice-Hall, 1998. Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.Communicating Sequential Processes


Carregar ppt "Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes."

Apresentações semelhantes


Anúncios Google