CPU Scheduling Simulator (CSS) Project in C# PHP or Android

CPU Scheduling Simulator (CSS) Project in C# PHP or Android

Project Domain / Category

Desktop Programming

Abstract/Introduction

Operating System (OS) is the most important software that runs on the computer. It not only manages hardware, memory, and other resources but it’s also responsible for optimizing computer performance. It interacts with I/O devices and user’s programs and applications. You cannot expect to use a computer without an operating system.

CPU Scheduling Simulator (CSS) Project in C# PHP or Android
Figure: CPU Scheduling Simulator (CSS) Project in C# PHP or Android

One of the key concepts in OS design is CPU scheduling (or processor scheduling). CPU scheduling dramatically affects performance of the system because it determines which processes will wait and which will progress. Because OS also acts as a resource manager, it must make the best use of CPU. This project – CPU Scheduling Simulator (CSS) – focusses on CPU scheduling. CSS will simulate following scheduling algorithms:

  • First Come First Serve Scheduling
  • Shortest Job First Scheduling (SJF)
  • Shortest Remaining Time First Scheduling (SRTF) – preemptive version of SJF
  • Priority Scheduling
  • Round Robin Scheduling

CSS will accept workload from user and then calculate following for each scheduling algorithm:

  • Waiting time of each process
  • Turnaround time of each process
  • Average waiting time of given workload
  • Average turnaround time of given workload
  • Gantt chart indicating schedule of each process

Benefits

This project will help students to:

  1. Solidify their OS concepts that they have already learnt in CS604 course
  2. Appreciate the importance of CPU scheduling as a basis for multiprogramming
  3. Enhances their data structures & algorithms implementation skills

Functional Requirements

  • The system will prompt the user to either enter workload manually or load from a file.
  • In case of manual entry, system will prompt the user to enter total number of processes, arrival time, burst time, priority, and time quantum
  • In case of file loading, these parameters will be in a simple, comma separated text file
  • User must have the option to either run algorithms individually or all at the same time for comparison purposes
  • System should display waiting time and turnaround time of each processes, and their averages.
  • User should be able to view Gantt chart of scheduled processes

Tools & Technologies

  1. Language: Java
  2. Database: MySQL Community edition
  3. IDE: NetBeans or intelliJ IDEA or Eclipse or
  4. Android Studio
  5. PHP MySQL or
  6. ASP. NET

List of all Final Year Project Ideas

List of all Final Year Project Ideas – Click Here