Simulação de Sistemas
Prof. MSc Sofia Mara de Souza
AULA8
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 Teatro
chegada
fila
rua
serviço
nada
telefonando
lugar
espera
chamando

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 de
eventos atuais
Fim?
sim
Parar
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.
Download

aula8