Overview

The purpose of this project is to gain experience working with CPU scheduling policies. This project requires you to implement/simulate five different scheduling policies given a process workload.

Learning Objectives

  1. Apply your understanding of the First-In, First-Out (FIFO) CPU scheduling policy.
  2. Apply your understanding of the Shortest Job First (SJF) CPU scheduling policy.
  3. Apply your understanding of the Shortest Time to Completion First (STCF) CPU scheduling policy.
  4. Apply your understanding of the Round Robin (RR) CPU scheduling policy.
  5. Apply your understanding of the Multi-Level Feedback Queue (MLFQ) CPU scheduling policy.

Important Information Regarding MLFQ

As stated, MLFQ is a new component of this project. Because of that, some parts may be confusing. We will keep this thread open for any important announcements or clarifications related to the project.


Date: Feb. 25

Since tick_interval is a float, it can cause issues in computations due to floating point precision errors.`

To prevent this, you must compute the time slice as follows:

float slice = min(tick_interval, p.duration);

Use this slice value when updating the following:`