Operating-system scheduling is easier to understand when process movement through queues, dispatching, and CPU execution can be simulated.
Operating systems
Process Scheduling Simulator
A university systems project exploring CPU scheduling, queues, and concurrency.
The simulator modelled process control blocks, job and ready queues, a scheduler, dispatcher, CPU thread, process creator, and event log.
Overview
This project is included as evidence of core Computer Science work rather than as a public source-code showcase. It involved building a simulator around scheduling algorithms and process state.
The Problem
Scheduling algorithms are abstract until you can see how processes move between queues and how a scheduler chooses the next item of work.
The Approach
The system represented jobs with process control blocks and moved them through job and ready queues before dispatching them to a CPU thread.
Technical Implementation
The project used Java, Maven, multithreading, ProcessBuilder, synchronization, wait/notify, queues, a process creator, scheduler, dispatcher, and event log.
Algorithms
The implemented algorithms included First Come First Served, Round Robin, and non-preemptive priority scheduling.
What I Learned
It strengthened my understanding of concurrency, state transitions, queue-based design, debugging, and the practical behaviour behind operating-system scheduling concepts.
Public Sharing
I have kept the project source link off the portfolio because university assessment material should be handled carefully. The case study focuses on the concepts and engineering learning instead.