This project extends the functionality of the OS Scheduler to include advanced CPU scheduling algorithms and dynamic memory allocation, providing a comprehensive simulation of an operating system. The implementation showcases strong proficiency in C programming, emphasizing intricate algorithmic design and effective data structure utilization for both CPU and memory management.
- Non-preemptive Highest Priority First (HPF)
- Shortest Remaining Time Next (SRTN)
- Round Robin (RR)
- First Fit
- Buddy Memory Allocation
These algorithms collectively ensure effective utilization of the total memory space, dynamically allocating and deallocating memory for arriving and departing processes.
- Process Generator: Simulates process creation, reads input files, and initiates scheduler and clock processes.
- Clock Module: Emulates an integer time clock.
- Scheduler: Core component managing processes, states, and execution based on scheduling algorithms.
- Process: Represents CPU-bound processes and notifies the scheduler upon termination.