Modelos para Sistemas Comunicantes Lista 2 Profs. Paulo Maciel e Eduardo Tavares Aluno: Anderson Luiz Souza Moreira João Ferreira da Silva Junior
QUESTÃO 3.1 Show that S1 and S2 describe the same behavior: P = (a->b->p). Q = (c->b->q). S1 = (P Q). S2 =(a->c->b->s2 c->a->b->s2). Resolução: Na composição paralela o processo gerado, é representado como uma máquina de estado, da mesma forma como qualquer outro processo. A máquina de estado gerada representa todos os possíveis intervalos de ações. Por exemplo, considere dois processos e sua composição paralela: P = (a->b->p). Q = (c->b->q). S1=(P Q). As máquinas de estado correspondentes aos processos P, Q e S1 são: E agora considere a seguinte máquina de estados S2:
As duas máquinas de estado possuem o mesmo comportamento, ou seja, independente dos valos não determinísticos escolhidos no início, as mesmas irão parar no mesmo estado futuro. Por conta que tendem a uma ação em comum, nesse caso a b. QUESTÃO 3.2 ELEMENT=(up->down->ELEMENT) accepts an up action and then a down action. Using parallel composition and the ELEMENT process describe a model that can accept up to four up actions before a down action. Draw a structure diagram for your solution. Utilizando o elemento abaixo fazer uma composição paralela que execute 4 up antes do down ELEMENT = (up->down->element). Pela definição do livro de rotulação de processos - seção 3.1.3, faz a linha forall para descrever uma array de ELEMENT 1 CONTADOR(N = 4) = (forall[i:0..n-1] e[i]:element) 2 /{ down/e[0].down, up/e[n-1].up, 3 forall[i:0..n-2] {e[i].up/e[i+1].down} 4 }@{up,down}. No final do forall quando aplicado ao processo CONTADOR o operador de esconder {up,down} remove os nomes das ações do alfabeto para gerar o menu com apenas duas opções. Para verificação foi criado um menu com o nome de TESTE e as ações de up e down, menu TESTE = {up, down}. O modelo pode ser baixado do site http://www.cin.ufpe.br/~alsm4/modelos/lista2 QUESTÃO 3.3 Extend the model of the client server system described in section 3.1.4 such that more than one client can use the server. O modelo descrito na seção 3.1.4 descreve o funcionamento de apenas um cliente e um servidor. Apesar de utilizarem a função de re-etiquetagem (relabeling) o processo não cria nenhuma estrutura de armazenamento em forma de vetor. Foi refeita e estrutura do processo colocando um vetor para armazenamento de vários clientes com um servidor. A linha 1 que tem a constante chamada PARADA conforme descrita abaixo, é que tem 2 clientes acessando o servidor. O valor pode ser modificado para identificar mais de um cliente. 1 const PARADA = 2 2 3 CLIENTE = (chama -> espera -> continua -> CLIENTE). 4 5 SERVIDOR = (requisita -> serve -> retorna -> SERVIDOR). 6 7 CS = CLIENTE_SERVIDOR. 8 CS = (client[1..parada]:cliente SERVIDOR) / 9 {client[1..parada].chama/requisita, client[1..parada].espera/retorna}. O modelo descreve apenas um servidor. Porém o modelo pode ser expandido para vários servidores. Mudando a linha de composição paralela, na linha 8, CLIENTE SERVIDOR para CLIENTE SERVI- DOR[1..PARADA.
As máquinas de estado correspondentes são: Cliente 1 Cliente 2: Servidor:
A máquina de estado correspondente a composição paralela é: O exemplo na ferramenta LTSA está disponível em: http://www.cin.ufpe.br/~alsm4/modelos/lista2 QUESTÃO 3.6 A museum allows visitors to enter through the east entrance and leave through its west exit. Arrivals and departures are signaled to the museum controller by the turnstiles at the entrance and exit. At opening time, the museum director signals the controller that the museum is open and then the controller permits both arrivals and departures. At closing time, the director signals that the museum is closed, at which point only departures are permitted by the controller. Given that it consists of the four processes EAST, WEST, CONTROL and DIRECTOR, draw the structure diagram for the museum. Now provide an FSP description for each of the processes and the overall composition. A primeira fase de resolução de questão é a criação das máquinas de estado mais simples, que são as dos portões e do diretor. A entrada leste é de chegada, então o evento é único, chamado de arrive, e a entrada oeste é a de saída, com o evento leave, como descrito a seguir:
Máquina da Entrada Leste EAST = (arrive -> EAST). Máquina Saída Oeste WEST = (leave -> WEST). Já para máquina de estados do diretor tem dois eventos, abrir e fechar o portão, tendo dois estados, identificado por 0 e 1. Máquina Diretor DIRECTOR = (open -> close -> DIRECTOR). Para a máquina do controle, deve usar um vetor para simular o tempo de espera das pessoas, a mesma deve ser inicializada com 0, porém deve ter os estados de abertura e fechamento. 1 CONTROL = CLOSED[0], 2 3 CLOSED[i:0..FLAG] = (when (i==0) open -> OPENED[0] 4 when (i>0) leave -> CLOSED[i-1] 5 ), 6 OPENED[i:0..FLAG] = (close -> CLOSED[i] 7 when (i<flag) arrive -> OPENED[i+1] 8 when (i>0) leave -> OPENED[i-1] 9 ). A linha 1, mostra o primeiro estado de controle é fechado caso não tenha nenhum evento de abertura, arrive. O segundo estado do CONTROL é CLOSED, que possui a seguinte condição: Se portão estiver aberto, passa e permite o portão de saída. Já o segundo estado é de abertura, OPENED, com a seguinte condição: Se exitir pelo menos um evento que o portão está aberto, este é repassado de CLOSED. A máquina é desenhada a seguir:
Máquina de Controle A composição paralela do modelo MUSEUM = (EAST WEST DIRECTOR CONTROL). É descrita a seguir: O exemplo na ferramenta LTSA está disponível em http://www.cin.ufpe.br/~alsm4/modelos/lista2