Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEvelyn Lago Alterado mais de 9 anos atrás
1
1 Communicating Sequential Processes (CSP) MO409 – Eng. de Software Profa. Eliane Martins Fernando J. C. de Lima F o - RA014861 Rodrigo Teruo Tomita – RA992432
2
2 CSP Proposto em 1978 por Hoare Processos seqüenciais que “rodam” em paralelo e se comunicam entre si Uso: protocolos, sistemas distribuídos, etc (diversas variantes) Operações básicas: comandos repetitivo, alternativo e seqüencial – I/O
3
3 CSP - Propostas Comandos com guarda (Dijkstra) [ x y m:=x [] x y m:=y ] * [ i < maxsize i := i + 1 [] i > maxsize i := i - 1] Comando paralelo [label1::ROTINA1 || label2::ROTINA2] Processos iniciam ao mesmo tempo; comando termina quando o último termina
4
4 CSP – Propostas (2) I/O: comunicação entre processos Input: A:: B?variável Output: B:: A!variável Recíproco: A nomeia B para input, B nomeia A para output Input em guardas (alternância e repetição)
5
5 Ferramentas FDR (Failures-Divergence Refinement) ProBE (Process Behavior Explorer) JCSP: CSP for Java (University of Kent at Canterbury) CCSP: ambiente de execução (University of Missouri – Rolla) Deadlock Checker
6
6 Estudo de Caso - Elevador Controle Elevador Mantém tabela com os andares a serem visitados Informa paradas e sentidos aos elevadores Sabe os andares mais altos e mais baixos a visitar Painel Elevador Lê o número apertado dentro do elevador Informa o número ao controle elevador Porta Abrir e Fechar
7
7 Estudo de Caso – Elevador (2) Elevador Mantém a sua direção (sobe, desce) Pergunta ao controle se deve parar e abrir as portas a cada andar Pergunta ao controle se não há mais chamadas (inverte seu sentido ou pára no 1o. andar) Painel Andar Subir e Descer Avisa o controle elevador que o andar já foi servido
8
8 Considerações Finais Problema do elevador se mostrou mais complexo do que o previsto (casos excepcionais) CSP é antigo e utilizado, tendo diversas variações e ferramentas Notação (Dijkstra) é familiar, mas bastante limitada (variantes surgiram para complementar essas limitações) Dificuldade com as ferramentas
9
9 Perguntas? ? Obrigado! fernando@ic.unicamp.br rodrigo.tomita@ic.unicamp.br
10
10 Referências Hoare, C. A. R. – “Communicating Sequential Processes”, Communications of the ACM, vol. 21, num. 8, (666-677), agosto 1978 Kieburtz, Richard B. & Silberschatz, Abraham – “Comments on ‘Communicating Sequential Processes’”, ACM Transactions on Programming Languages and Systems, vol. 1, num. 2 (218-225), outubro 1979 Gries, David – The Science of Programming, Spring Verlag, 1981
11
11 Referências (2) The CSP archive – Oxford http://www.afm.sbu.ac.uk/csp/ Formal Systems - Europe (FDR, ProBE, CSP Typechecker) http://www.fsel.com/ Tools for CSP – Oxford http://web.comlab.ox.ac.uk/oucl/publications/ books/concurrency/tools/ JCSP – University of Kent at Canterbury - http://www.cs.ukc.ac.uk/projects/ofa/jcsp/
12
12 Variantes do CSP TCSP - Steve Schneider, University of London Introduced a treatment of time into CSP. Steve has recently completed a book on timed and untimed CSP. CSPP - A. Lawrence, Oxford University Introduced priority into CSP, which is useful when describing resource-limited systems
13
13 Variantes do CSP (2) HCSP - A. Lawrence, Oxford University Extends the priority model in CSPP and includes new synchronisation primitives and a modelling of state. It is useful when describing hardware systems where state & clocks etc. are unavoidable. PCSP - Probabilistic CSP
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.