Next: A Classe Simulacao
Up: Orientação a Objetos
Previous: A Classe FilaComPrioridade
Os diferentes tipos de eventos devem ser implementados por classes
derivadas (subclasses) de uma classe abstrata Evento. Além de
possuir um campo com o tempo simulado associado ao evento, essa classe
deve ter um método abstrato trata(), o qual deve ser definido
pelas subclasses concretas de Evento. Cada uma dessas
subclasses (ChegadaDeTarefa, por exemplo) deve definir um
método trata() com o tratamento específico para esse tipo de
evento. Uma subclasse de evento pode ter ainda campos adicionais, com
informações específicas para esse tipo de evento. (Exemplo: o campo
duracaoDaTarefa, na classe ChegadaDeTarefa.)
Note, ainda, que o tratamento de um evento depende também do algoritmo
de escalonamento de tarefas (FIFO, SJF, ou FIFO com preempção) do
sistema simulado. Assim, um mesmo tipo de evento (``final de execução de
tarefa'', por exemplo) poderá corresponder a várias classes, uma para
cada algoritmo de escalonamento (FinalDeTarefaFIFO,
FinalDeTarefaSJF, ...), pois o método trata()
varia conforme do algoritmo de escalonamento.
Francisco Reverbel
2004-06-08