This repository contains the code I developed for our Operating Systems course.
-
Classic CPU Scheduling Algorithms
Implemented in C using linked lists for process management.- Each process is represented as a node.
- Processes are transferred between Ready Queue, Job Queue, and Termination Queue for realistic simulation.
- Each algorithm differs in how they prioritize, halt, and execute the processes.
-
Synchronization Problems (Dining Philosopher & Producer-Consumer)
Implemented in C using semaphores and multithreading.- Multithreading simulates multiple simultaneous processes in a computer.
- Semaphores simulate how processes "lock" and coordinate access to shared resources.
- Simulation of major CPU scheduling algorithms.
- Demonstration of concurrency issues and solutions.
- Practical use of linked lists, multithreading, and semaphores.