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

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

Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.

Apresentações semelhantes


Apresentação em tema: "Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos."— Transcrição da apresentação:

1 Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos

2 http://www.cin.ufpe.br/~phmb/CSPZ Detalhes sobre o curso

3 O que o sistema faz? Que serviços o sistema oferece? Que objetos são manipulados pelo sistema? Abstrair detalhes irrelevantes Análise e Projeto Especificação

4 class Conta { private double saldo; private String numero; Conta (String n) {numero = n; saldo = 0;} void credito(double valor) {saldo = saldo + valor;} void debito(double valor) {saldo = saldo - valor;} String numero() {return numero;} double saldo() {return saldo;} } Implementação

5 Tanto na especificação quanto na implementação de um sistema temos que considerar não só –as operações que são oferecidas pelo sistema, mas também –quando tais operações podem ser executadas (a ordem em que as operações podem ser executadas) Operações

6 Quando cada operação pode ser executada? Em que estados ou situações uma operação pode ser executada? Máquina de estados Especificação

7 Uma máquina de estados real: –http://www.cin.ufpe.br/~phmb/CSPZ/Mater ialDeEnsino/Apresentacao/MaquinaDeEsta dosDoPDV.dochttp://www.cin.ufpe.br/~phmb/CSPZ/Mater ialDeEnsino/Apresentacao/MaquinaDeEsta dosDoPDV.doc Especificação da ordem de execução das operações: –útil para sistemas sequenciais –essencial para sistemas concorrentes e distribuídos Especificação

8 class Conta { private double saldo;... synchronized void credito(double valor) { saldo = saldo + valor’; } synchronized void debito(double valor) { saldo = saldo - valor; } synchronized String numero() {return numero;} synchronized double saldo() {return saldo;} } Implementação

9 Necessário para –evitar interferências indesejadas na execução dos métodos de um objeto –controlar acesso a recursos compartilhados Um objeto só pode executar um método synchronized por vez –Um objeto pode executar vários métodos não sincronizados ao mesmo tempo que está executando um método synchronized Sincronização

10 class Conta { private double saldo;... synchronized void credito(double valor) { saldo = saldo + valor; notifyAll (); } synchronized void debito(double valor) { while (saldo < valor) wait(); saldo = saldo - valor; }... } Implementação

11 O comando notifyAll acorda todos os processos esperando para executar um método do objeto que executou o notifyAll –O comando notify só acorda um dos processos (escolha arbitrária) O comado wait só pode ser usado dentro de um método synchronized; o processo executando o comando é posto para esperar e a restrição de sincronização é liberada Monitores

12 Devem ser usados com muito cuidado: –é fácil introduzir erros e levar o sistema a deadlock ou livelock A especificação do sistema é essencial para guiar a introdução de sincronização ou operações de monitores Sincronização e Monitores

13 class File { private String text; private File otherPart;... void print(String message) { System.out.println(text+" by thread "+message); } void printAll(String message) { this.print(message); otherPart.printAll(message); }

14 Sistemas cliente-servidor (2, 3, n camadas) –Sistemas de informação tradicionais Sistemas distribuídos –Sistema de automação de loja –Aplicações para ensino à distância Sistemas Distribuídos

15

16

17 Concorrência é inerente aos sistemas cliente-servidor e distribuídos: –recursos sendo compartilhado, execuções simultâneas É essencial considerar a ordem em que as operações são executadas para evitar interferência, deadlock, e livelock Sistemas Distribuídos

18 Devido a concorrência, têm um alto grau de não-determinismo A realização de testes não é efetiva para garantir a corretude dos sistemas É necessário utilizar métodos formais para especificação dos sistemas: –garantia de que a implementação corresponde à especificação –abstrair detalhes irrelevantes Sistemas Distribuídos

19 Z Especificação dos aspectos sequencias Quais são as operações e o que elas fazem? Implementação detalha como a operação é realizada Especificação Formal CSP Especificação dos aspectos concorrentes Quando as operações podem ser executadas e em que ordem? Implementação garante que a ordem de execução é satisfeita

20 Foco inicial na ordem em que as operações podem ser executadas –depois considera-se o que cada operação deve fazer Outras aplicações para CSP: –projeto de interface com o usuário –fluxo de eventos dos use cases CSP


Carregar ppt "Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos."

Apresentações semelhantes


Anúncios Google