Back to projects

Operating systems

Process Scheduling Simulator

A university systems project exploring CPU scheduling, queues, and concurrency.

JavaPythonMavenMultithreadingProcessBuilderSynchronizationwait/notifyQueues
Problem

Operating-system scheduling is easier to understand when process movement through queues, dispatching, and CPU execution can be simulated.

Solution

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.