CS 452 Lab Assignment – Process Scheduling


Introduction

Modern operating system employ scheduling algorithms that are based on the round-robin concept as described in class. The scheduling policy is also based on ranking processes according to their priority. Complicated algorithms are used to calculate the current priority of a process and scheduling decisions are based on the value of each process’s priority.

For this lab, you are to implement the Multi-level Feedback Queue Scheduler (MFQS)


Program Efficiency

Your program must be efficient, i.e., it must not take a long time to compute the result, especially during a stress test. The following is a breakdown of the grading of this project:





MFQS

You are to implement the scheduler described in class. Note that whenever a tie has to be resolved, the priority of the process is considered. Listed below are some of the parameters that must be considered in your simulation.

0   Number of queues:

variable, upper bound = 5 (ask user to input number)

1   Scheduling algorithms for each queue:

a. Round Robin for all except last queue (FCFS).

b. Time quantum: doubled for each subsequent queue below it.

2   Method used to determine when to demote a process:

Processes that used up their time quantum and still cannot complete are demoted.

3   Ageing: when a process waits in a queue for more than some specified ageing interval value (value is prompted), it is promoted to the next queue up. Apply this only to the last queue, i.e., only processes waiting in the last queue are permitted to age up, i.e., processes in any other queue do not ageup.


Statistics To Collect for All Algorithms

0. Process information for Gannt chart construction, e.g., start/end time spent in CPU,etc.

1. Average Waiting Time.

2. Average Turnaround Time (all these times must be calculated in the program)


Process Characteristics as Input Parameters

The following is an example of the information that will be provided to you in your project demonstration phase:



I will be providing you with a file that has the information described above during the demo (in that order). There is a test file in the /tmp directory of phoenix1.cs.uwec.edu of size 1MB for you to stress test your program.


Project Requirements

Your program should allow the user to allow users to enter interactively input values for process ID, burst times, and arrival times of each process.

To be eligible for extra credit, your program should draw the Gannt chart

What do I look for in the output?

1. A chronological set of statistics - in the absence of a Gannt chart - displaying the entire simulation run of the MFQS algorithm. Shown below is an example of the expected format of the output. Failure to follow the format will result in a deduction of 10points.