Uma das áreas onde filas têm muitas aplicações é simulação. Simulação é o processo de formar um modelo abstrato a partir de uma situação real para que possamos estudar o impacto de modificações e o efeito de introduzir diferentes estratégias na situação em questão. O principal objetivo de um programa para simulação é ajudar o usuário, freqüentemente especialistas em pesquisa operacional ou analistas de sistemas, a prever o que acontecerá a uma situação física sob algumas hipóteses simplificadoras. Simulação é uma ferramenta muito poderosa se aplicada corretamente.
A principal vantagem da simulação é permitir experimentação sem de fato modificar a situação. Áreas como operações militares estão mais seguras ao simular do que realmente testar.
Em uma simulação orientada-por-relógio (time-driven) temos um relógio principal que toma conta do ritmo da simulação. Permitimos que o relógio seja incrementado uma unidade por vez. Depois de cada incremento no tempo do relógio o programa deve examinar cada evento para decidir se ele deve ocorrer ou não.
Em uma simulação orientada-por-eventos (event-driven) o
programa examina todos os eventos do modelo e determina qual deve ser o
próximo a ocorrer. Para que façamos isto cada evento deve ter o seu
próprio relógio para obtermos a próxima vez que ele vai ocorrer. Depois
que o relógio principal é atualizado, a atividade associada com o evento
é executada. Este método é essencialmente discreto (i.e. não-contínuo).
[O que foi brevemente tratado nesta seção foi extraído do Capítulo 3 de [2].]