Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA8
Abordagem por Processos n É o mais utilizado atualmente. n Suportada pela linguagem SIMSCRIPT II.5, SIMULA e GPSS. n Lógica do Modelo –Todo o ciclo de vida de uma entidade é tomado como base da simulação baseada em processos.
–Processo: seqüência de operações pela qual uma entidade deve passar durante seu ciclo de vida. –Cada classe de entidades tem seu próprio processo. –Cada entidade criada herda o processo de sua classe. –A simulação consiste em um conjunto de processos, pelo menos um para cada classe de entidades.
n O progresso de uma entidade por um processo é regulado por dois tipos de condições: –Bloqueio incondicional Também chamado de suspensão ativa. Ocorre quando o progresso de uma entidade é bloqueado por um certo período de tempo que, em princípio, pode ser determinado de antemão. Depois de decorrido o período de tempo indicado, a entidade é desbloqueada. Ex.: atendimento de um cliente
–Bloqueio condicional Também chamada de suspensão passiva. Ocorre quando o progresso de uma entidade é bloqueado devido a condições específicas do modelo simulado. A entidade é desbloqueada no momento em que as condições são satisfeitas. Ex.: cliente permanece na fila até que chegue no topo da fila e o servidor esteja livre.
Exemplo: Problema Teatro chegada serviço fila rua nada telefonando chamando lugarespera
n Processos: –ClienteNaBilheteria crie entidade Cliente calcule TempoChegada do próximo Cliente crie e bloqueie novo processo ClienteNaBilheteria por TempoChegada espera até que (topo da fila) e (Funcionário livre) coloque Funcionário em serviço retire Cliente da fila calcule TempoDeServiço bloqueie processo por TempoDeServiço libere Funcionário libere Cliente.
Exercício: 1) Especifique em pseudo-código o processo para a entidade Telefonema.
n Módulo de decisão –O módulo de decisão necessita saber onde, em cada processo, uma entidade está (ou seja, o estado do processo) e necessita também ter a capacidade de parar e reiniciar o movimento de uma entidade pelo seu processo. –Logo, deve manter, para cada entidade: tempo de reativação (se conhecido) ponto de reativação (isto é, a posição dentro do processo)
–O módulo de decisão mantém duas listas com essas informações: lista de eventos futuros: calendário com as informações sobre entidades que sofreram bloqueio incondicional. lista de eventos atuais: contém as informações de dois tipos de entidades –entidades bloqueadas incondicionalmente que atingiram o tempo de desbloqueio, –entidades em bloqueio condicional.
n O módulo de decisão divide-se em três fases: –A lista de eventos futuros é utilizada para se determinar o próximo evento. O relógio de simulação é atualizado para o novo tempo. –As entidades da lista de eventos futuros cujo tempo de reativação for igual ao relógio são movidas para a lista de eventos atuais. –Cada entidade da lista de eventos atuais é movimentada pelo seu processo se as condições permitirem, até o ponto de terminar o processo ou serem bloqueadas novamente.
Iniciar Examinar lista eventos futuros Mover entre listas Examinar lista de eventos atuais Fim? Parar sim não
Exercícios: 2) Para o problema de modelagem das máquinas em uma linha de produção, construa, em pseudo-código, o programa de simulação e os processos.