Learning About the CPU Scheduler

This page is dedicated to Saverio Perugini, my adviser and Operating Systems Professor.

This project was inspired by an assignment from CPS 356 Operating Systems taught by Professor Perugini. For this project, students were tasked with designing a CPU emulator that could simulate several of the fundamental concepts in operating systems:

  • Scheduling
  • Loading a process
  • Handling I/O
  • Supporting Semaphores
  • First-in-first-out “fair” wait queues
  • Round robin CPU scheduling
  • Quantum expiration
  • Process Termination

At the same time that I was taking this course, I was learning how to create a desktop application using javaFX. As you might imagine, I wanted to do something really cool that involved a desktop app. I decided to make one in conjunction with my operating systems project. The result was a way to visualize just how a CPU scheduler works and allowed me to quickly debug my project. I hope that my video will help you to understand  and visualize how an operating system handles process scheduling.

Video Coming Soon!

Live Demonstration Coming Soon!

In the future, I want to redesign my desktop application so that future students can test their CPU emulator projects with it. The CPU emulator was a challenging project for many students and I think that having this interface to visualize what is happening will dramatically improve a student’s understanding of the material and make it much easier to code.