next up previous
Next: Dados de Entrada da Up: Simulação a Eventos Discretos Previous: A Fila de Eventos

O Laço de Eventos

O tempo simulado começa a correr quando o simulador entra no seu laço principal, também conhecido como laço de eventos (event loop). Enquanto existirem elementos na fila de eventos, esse laço faz o seguinte:

  1. Retira o ítem mais prioritário da fila de eventos. O ítem mais prioritário é o evento associado ao menor tempo simulado. Esse evento é o evento atual.
  2. Atribui à variável tempoAtual o valor do tempo simulado associado ao evento atual.
  3. Trata o evento atual. Esse tratamento pode adicionar novos eventos à fila de eventos.

Note que o tratamento de um evento depende do tipo desse evento. Exemplos de tipos de eventos: ``chegada de tarefa com duração X'', ``início da execução de tarefa com duração X'', e ``fim da execução de tarefa''. Note também que só o primeiro desses tipos de eventos corresponde a eventos iniciais. Os outros dois tipos são gerados durante a simulação. Exemplo: Nos esquemas FIFO e SJF, o tratamento do primeiro evento do tipo ``chegada de tarefa com duração X'' gera um evento ``fim da execução de tarefa'' associado ao tempo simulado tempoAtual + X. (Isso não é necessariamente verdade no esquema FIFO com preempção, pois a duração da tarefa pode ser maior que a fatia de tempo.)


next up previous
Next: Dados de Entrada da Up: Simulação a Eventos Discretos Previous: A Fila de Eventos
Francisco Reverbel
2004-06-08