MU
Muzamil-663/OS-Kernel-Scheduler-Simulator
OS kernel simulation implementing CPU scheduling algorithms in C
Operating System Kernel Simulator (C-Based)
Project Description
This project is a C-based Operating System Kernel Simulator that demonstrates core concepts of operating system design, including process management, CPU scheduling, and memory allocation. The simulator provides a menu-driven interface to create processes, manage their states, and analyze different scheduling algorithms in a controlled environment.
The project is designed for academic purposes to strengthen understanding of how an operating system kernel manages processes and system resources at a fundamental level.
Key Features
- Simulation of multiple CPU scheduling algorithms
- Process Control Block (PCB) implementation
- Process state management (NEW, READY, RUNNING, WAITING, TERMINATED)
- First-Come First-Serve (FCFS) scheduling
- Shortest Job First (SJF) scheduling
- Priority-based scheduling
- Round Robin scheduling with configurable time quantum
- Contiguous memory allocation and memory map visualization
- Menu-driven user interaction
Technologies Used
- Programming Language: C
- Compiler: GCC
- Operating System: Linux (Ubuntu) / Windows
- Development Tools: Git, GitHub
How to Compile and Run
-
Clone or download the repository.
-
Open a terminal in the project directory.
-
Compile the program using:
gcc os_kernel_simulator.c -o os_kernel_simulator -
Run the executable:
./os_kernel_simulator
Project Structure
os_kernel_simulator.c
README.md
Learning Outcomes
- Practical understanding of CPU scheduling algorithms
- Hands-on experience with Process Control Blocks (PCB)
- Insight into memory management techniques
- Improved proficiency in C programming
- Exposure to operating system kernel concepts
Future Enhancements
- Add preemptive scheduling algorithms
- Implement dynamic memory allocation strategies
- Improve error handling and input validation
- Add graphical visualization for scheduling and memory
Author
Muzamil Rahman