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

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

Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento

Apresentações semelhantes


Apresentação em tema: "Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento"— Transcrição da apresentação:

1 Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento
Equipe: Rafael Araújo Ingridd Brito

2 Sistema Sistema de estacionamento de um local genérico;
Possui possibilidade de pagamento tanto em um Caixa quanto na Cancela de Saída (caso o pagamento seja necessário); O pagamento pode ser realizado utilizando cartão de crédito ou dinheiro se realizado no Caixa; Se realizado na Cancela de Saída, o único meio aceito é via cartão de crédito.

3 Sistema Os veículos poderão entrar por uma das Cancelas de Entrada disponíveis; Os mesmos poderão realizar o pagamento no caixa, dadas as devidas sincronizações; Ou podem realizar o mesmo na Cancela de Saída; O Servidor é responsável por armazenar e gerenciar a sequência de tuplas (placa, hora) dos carros que entram no estacionamento através da Cancela de Entrada.

4 Componentes O sistema é composto por:
Datatypes, conjuntos e sequências; Funções. Canais e eventos; Processos;

5 Datatypes, Conjuntos e Sequências
datatype PLACAS = KGC3920 | KHJ2103 | KLA9123 | KFL1984 Representam as placas dos veículos;

6 Datatypes, Conjuntos e Sequências
datatype MENSAGEM= RetireTicket | PlacaExistente| BemVindo| TempoEsgotado| Obrigado Representam as mensagens que são exibidas para o usuário/veículo durante algumas das operações;

7 Datatypes, Conjuntos e Sequências
Alguns dos conjuntos presentes no sistema: RANGE = {1..3} //Capacidade de determinados processos. HORA = {1200, 1300, 1400, 1500} -- Simulam um horário de entrada de um veículo. VEICULOS = {1..2} // Quantidade de veículos. Representam as mensagens que são exibidas para o usuário/veículo durante algumas das operações;

8 Datatypes, Conjuntos e Sequências
Sequência utilizada no Sistema: TICKETS = <> Esta sequência armazena pares de placas e horas (i.e. (KGC3920, 1200)) de modo a representar os horários os quais as placas (veículos) entraram no estabelecimento.

9 Funções Funções utilizadas no sistema (assinaturas):
placaJaCadastrada(p, <>) placaJaCadastrada(p, <(placa, hora)> ^ ticketsRestantes) Utilizada para determinar se uma placa já existe na sequência para que não haja veículos com a mesma placa em horários diferentes.

10 Funções Funções utilizadas no sistema (assinaturas):
GetHora(p, t) = { h | h <- HORA, elem((p, h), t) } Utilizada para retornar um horário de entrada (h) relacionado a uma determinada placa (representada por p).

11 Funções Funções utilizadas no sistema (assinaturas):
RemovePlaca(placa, <>) = <> RemovePlaca(p, <(placa, hora)> ^ placasRestantes) Utilizada para remover a placa de uma sequência, onde a entrada é dada por uma própria sequência que é dividida em head e tail através da concatenação de elementos e é analisada separadamente até que a placa desejada seja encontrada, então, a concatenação dos elementos previamente analisados e os restantes serão retornados como uma única sequência.

12 Canais e Eventos Alguns dos Canais de Dados e Eventos presentes no sistema: channel levantaCancela, baixaCancela Representam ações de um processo que não recebem dados, normalmente utilizadas como alfabeto de sincronização ou operações únicas;

13 Canais e Eventos Alguns dos Canais de Dados e Eventos presentes no sistema: channel enviaDados: RANGE.PLACAS.HORA Representam ações de um processo que recebem dados, onde há a comunicação (output) de um processo X para a entrada (input) de um processo Y. Estas representam operações que operam sobre dados ou que irão gerar eventos baseados em valores transientes (calculados) sobre tais dados;

14 Processos Exemplo de Processo encontrado no sistema:
CancelaEntrada(n) = recebeDados!n?p -> leHora!n?hora -> enviaDados!n!p!hora -> entregaTicket.n -> abrirCancela.n -> display!BemVindo-> fecharCancela.n -> CancelaEntrada(n) Representam um conjunto de ações (eventos) com trasmissão de dados ou não, estes denotam o comportamento do processo de maneira contínua;

15 Processos Exemplo de Processo encontrado no sistema:
Servidor(T) = (enviaDados?n?placa?hora -> if (not placaJaCadastrada(placa, T)) then Servidor(T ^ <(placa, hora)>) else display!PlacaExistente -> Servidor(T)) Neste caso, faz-se o uso da sequência presente no sistema, estruturas de controle if-then-else e avaliação de expressões provenientes de funções.

16 Avaliações Para determinar algumas propriedades do sistema são utilizadas algumas asserções, tais como: assert CancelaEntrada(1) :[deterministic] assert CancelaEntrada(1) :[deadlock free] assert CancelaEntrada(1) :[livelock free] Estas representam, respectivamente, a presença de determinismo em um processo (ou composições, escolhas, etc. entre eles), a presença de deadlock e livelock, dada a análise unitária ou em conjunto com outros processos.

17 Avaliações Exemplo de asserções relativas a interação entre processos:
CancelaEntradaANDVeiculo = CancelaEntrada(1) [|{|recebeDados|}|] Veiculo(1) assert CancelaEntradaANDVeiculo :[deterministic] assert CancelaEntradaANDVeiculo :[deadlock free] assert CancelaEntradaANDVeiculo :[livelock free] Mesmos conceitos presentes na análise de um único processo, a diferença é a avaliação como um todo para quaisquer processos envolvidos e suas operações, havendo sincronização ou não.

18 Refinamento Para availiar se um processo "melhora" o outro em determinado modelo (Traces, Falhas, Falhas-Divergências) foram utilizadas as seguintes asserções: assert TotalVeiculos_UNREF [T= TotalVeiculos_REF assert TotalVeiculos_UNREF [F= TotalVeiculos_REF assert TotalVeiculos_UNREF [FD= TotalVeiculos_REF

19 Refinamento Para esta avaliação, foram utilizados os seguintes processos: TotalVeiculos_UNREF = |~| x: Veiculo(x) -- Processo com não-determinismo proposital, proveniente da escolha interna TotalVeiculos_REF = [] x: Veiculo(x) -- Processo que refinará o anterior, utilizando escolha externa

20 Melhorias no Modelo Interação entre Processos da Cancela de Saída e Veículo; Utilização do servidor ao sincronizar dados com o Caixa, ao invés de utilizar uma função como filtro de valores.

21 Considerações Finais Todos os processos foram avaliados nas 3 proposições de asserção; Deadlocks esperados estão marcados no modelo (.csp); Operações de dados foram realizadas utiizando índices para indicar qual o evento e qual o processo que originou este evento, durante a sincronização / paralelismo.


Carregar ppt "Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento"

Apresentações semelhantes


Anúncios Google