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.

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:
- Solidify their OS concepts that they have already learnt in CS604 course
- Appreciate the importance of CPU scheduling as a basis for multiprogramming
- 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
- Language: Java
- Database: MySQL Community edition
- IDE: NetBeans or intelliJ IDEA or Eclipse or
- Android Studio
- PHP MySQL or
- ASP. NET
List of all Final Year Project Ideas
List of all Final Year Project Ideas – Click Here