The program will need to simulate the arrival of jobs to a queue for the scheduler to send for execution. The method of simulation needs to be designed. The information kept about each job must be considered, as the scheduler is not necessarily a first in first out scheduler. Factors that may be considered are the length of time the job will run, the arrival time and the resources it will use.
The job details are the input to this program. The job details could be read in from a data file or randomly generated within the program. In either case, the simulation of the jobs arriving MUST include a time aspect. In other words as the program executes time must increase, within the program.
The output from the program will be screen based and will show the contents of the ready queue at any given time and the job that is currently executing. As new jobs arrive, the queue will be updated and redisplayed. When a job is sent for execution, the queue should be redisplayed.
Remember that this is a simulation only. Therefore the jobs themselves do not exist, only the fictitious details of these jobs. The program does not have to execute the jobs, simply display a message that a job has control of the CPU at a particular time.
With the exception of (perhaps) a few initial settings by the user, there is to be no keyboard input and no menus of any kind are to be used.
The screen display will need to be designed in such a way that the user can determine what is happening and no interaction should be necessary. The one exception is that it is permissible to press at the end of each unit of time.