MOSS Scheduling Simulator

Lab Work 1

  1. Create a configuration file in which all processes run an average of 2000 milliseconds with a standard deviation of zero, and which are blocked for input or output every 500 milliseconds. Run the simulation for 10000 milliseconds with 2 processes. Examine the two output files. Try again for 5 processes. Try again for 10 processes. Explain what's happening.

  2. Consider changing the configuration parameter "meandev" to "run_time_average". The word "dev" doesn't belong here. It would be nice if this were the average amount of time a process runs before blocking for input or output instead of the total runtime.

  3. Consider changing the configuration parameter "standdev" to "run_time_stddev". It would be nice if this were the number of standard deviations from the average time a process runs before blocking for input or output instead of the total runtime.

  4. Consider renaming the "Run()" method in SchedulingAlgorithm to "run()". By convention in java, method names begin with a lowercase letter. Also, add some internal documentation to SchedulingAlgorithm to facilitate understanding by students and instructors, and add external documentation regarding the implementation of new scheduling algorithms to this user guide.

  5. Consider adding a configuration parameter for "block_time_average" which would be the average amount of time in milliseconds that a process remains blocked for input or output before resuming execution. This would help eliminate the need for the "process" directive.

  6. Consider adding a configuration parameter for "block_time_stddev" which would be the number of standard deviations from the average time a process remains blocked for input out output before resuming execution. This would help eliminate the need for the "process" directive.

  7. Consider adding a configuration parameter for "quantum" which specifies the number of milliseconds that a process is allowed to execute before being re-considered by the scheduling algorithm.