Skip to content
This repository has been archived by the owner on Feb 2, 2024. It is now read-only.
/ CPUScheduling Public archive

Implementation of CPU Scheduling Algorithms

Notifications You must be signed in to change notification settings

arlotfi79/CPUScheduling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPU Scheduling Algorithms

This project was designed by the TA team for the Operating Systems course (Fall 2021).

Description

The goal of this project is to implement the following scheduling algorithms:

  • FirstComeFirstServed (FCFS)

  • RoundRobin (RR), with time quantum: 5ms.

  • ShortestJobFirst (SJF)

  • MultiLevelFeedbackQueue (MLFQ)

    • First queue: RoundRobin time Quantum 8 ms.
    • Second queue: RoundRobin with time Quantum 16 ms.
    • Third queue: FirstComeFirstServed.

Each process has five attributes:

  • ID
  • Arrival Time
  • First Burst Time
  • IO Time
  • Second Burst Time

At the end, results should be analysed providing information such as waiting time, response time, turn around time, cpu utilization, etc.

Note: Test case are also provided in "process_inputs.csv" to check the results.

Implementation

The overall schema of a CPU scheduler is given below. Regarding this schema we have implemented all algorithms and have illustrated the results using a table.

Since there are five stages for CPU scheduling as shown below, we have used a Queue for each stage to mitigate dealing with changing the state of each process.

CPUSchedulerDiagram