Simulation is the process of making an abstract model of a real world situation in order to be aware of the effect of modifications and alterations and the effect of introducing number of strategies on the situation. The simulation program must necessity schedule the events in the simulation so the activities occur in the correct time sequence. Take an example, suppose a person visit an outlet at time 't1' to deposit the bill of his cell phone. The transaction can be expected to take a certain period of the time 't2' to complete. If any of the service window is free or not busy, then the person can immediately deposit the bill in time (t1+t2) spending the exact time required to deposit the bill. If none of the service window is free and there is long queue waiting at each window. Then the person joins the smallest queue and waits until all previous people deposits their bills and leaves the line. In such case, the time spends by person in the bill office in t2+time spends in waiting. These kinds of problem are solved by writing a program to simulate the actions of the persons. The various service windows can be represented by different queues and each person waiting in that line is represented by the node in that particular queue. The node at the front of the queue represents the person currently taking service at the window. We can define various events related with the process like arrival of a person and departure of a person etc.
When a departure node is removed from the event list when the person leaves, the amount of time spent by the departing person is computed and added to a total and the node representing the person is separated from the front of the queue. After a node has been removed from the front of the queue, the next person in the queue becomes the first to be service window and a departure node is added to the event list. At the end of simulation, when the event list gets empty, the total sum will be divided by the number of persons to obtain the average time spent by a person.