Simulação de Sistemas
Prof. MSc Sofia Mara de SouzaAULA8
Abordagem por Processos
É o mais utilizado atualmente. Suportada pela linguagem SIMSCRIPT
II.5, SIMULA e GPSS. 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.
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 Teatrochegada
serviço
filarua
nada
telefonando
chamando
lugar espera
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.
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.
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 deeventos 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.
Recommended