GitHunt

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

  1. Clone or download the repository.

  2. Open a terminal in the project directory.

  3. Compile the program using:

    gcc os_kernel_simulator.c -o os_kernel_simulator
    
  4. 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