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

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

Concorrência em LI2 Monitor e Rendezvous Projeto de PLP – 2 a fase Daniel Pereira – {dtvp} Petrus Bastos – {prb} Rafael Ribeiro – {rar}

Apresentações semelhantes


Apresentação em tema: "Concorrência em LI2 Monitor e Rendezvous Projeto de PLP – 2 a fase Daniel Pereira – {dtvp} Petrus Bastos – {prb} Rafael Ribeiro – {rar}"— Transcrição da apresentação:

1

2 Concorrência em LI2 Monitor e Rendezvous Projeto de PLP – 2 a fase Daniel Pereira – {dtvp} Petrus Bastos – {prb} Rafael Ribeiro – {rar}

3 Programação Concorrente Definições –Interleaved Concurrency –Overlapped Concurrency Vantagens –Desempenho e uso efetivo do hardware –Realidade naturalmente concorrente –Simulações –Uso de I/O

4 Mecanismos de Comunicação Memória compartilhada –A linguagem deve prover mecanismos que providenciem exclusão mútua Objetos protegidos –Encapsulam as regras de acesso Rendezvous –Sincronismo entre linhas de execução

5 Programação Concorrente Lembram do Race Condition? x := x + 1 Exclusão mútua resolve! synch (x) { x := x + 1; } Mas será que é suficiente?

6 Programação Concorrente Qual o valor da variável global x no final da execução de duas tarefas concorrentes com exclusão mútua? (var x = 0) Task 1Task 2 x := x + 1;x := x + 2; E agora? Task 1Task 2 x := x + 1;x := x * 2;

7 Determinismo em ADA95 task Soma is entry sum(); end Soma; task body Soma is null; begin accept sum() do x := x + 1; end sum; end Soma; task Multiplica is entry mult(); end Multiplica; task body Multiplica is null; begin accept mult() do x := x * 2; end mult; end Multiplica;

8 Rendezvous–Aplicações Produtor – Consumidor Join no Diagrama de Atividades UML Inter1Inter2Inter3Int. N-1InterN Inter1Inter2Inter3Int. N-1InterN

9 Nosso Rendezvous task Soma is entry sum(); end Soma; task body Soma is null; begin accept sum() do x := x + 1; end sum; end Soma; Nosso: { entry inc() { x := x + 1 }; { accept inc; }

10 Alterações na BNF Inserção de blocos de execução: Comando::= ComandoSimples | Paralelismo ComandoSimples::= …….. | SequenciaComando ……. PSequenciaComando ::= ( ComandoSimples )*

11 Alterações na BNF Para implementação do Rendezvous PComandoSimples ::=.... | Sleep | Wait | Notify | ChamadaProcedimento | WaitRendezvous | ChamadaRendezvous

12 Alterações na BNF Rendezvous (Entry Point e Accept Entry): ChamadaRendezvous::= Id ListaExpressao WaitRendezvous::= Id

13 Alterações na BNF Rendezvous (declaração): Declaracao ::=... | DeclaracaoRendezvousComposta | DeclaracaoRendezvous DeclaracaoRendezvous ::= Id DefRendezvous | Id DefRendezvous DefRendezvous::= Comando | ListaDeclaracaoParametro Comando

14 Classes do Projeto Criadas: –SequenciaComandos.java –ChamadaRendezvous.java –DeclaracaoRendezvous.java –DefRendezvous.java –Rendezvous.java –ExecucaoRendezvous.java –WaitRendezvous.java –RendezvousJaDeclaradoException.java –RendezvousNaoDeclaradoException.java

15 Classes do Projeto Modificadas: –Imperative2.jj –AmbienteCompilacaoImperativa2.java –AmbienteExecucaoImperativa2.java –ContextoCompilacaoImperativa2.java –ContextoExecucaoImperativa2.java

16 Referências [1] Burns, Alan; Wellings, Andy - Concurrency in Ada, Second Edition, Cambridge University Press 1998; [2] Cohen, Norman H. – Ada as a Second Language, McGraw-Hill 1996; [3] Watt, D; Wichmann, B.; Findlay, W. – ADA: Language and Methodology, Prentice-Hall 1987.

17 Demonstração


Carregar ppt "Concorrência em LI2 Monitor e Rendezvous Projeto de PLP – 2 a fase Daniel Pereira – {dtvp} Petrus Bastos – {prb} Rafael Ribeiro – {rar}"

Apresentações semelhantes


Anúncios Google