Skip to content

YousafNaeem88/operating-system-simulator-cpp

Repository files navigation

⚙️ Operating System Simulator

A comprehensive Operating System simulation project developed in C++ that demonstrates key OS concepts including process synchronization, CPU scheduling, and memory management.

This project combines three major operating system components into a single application:

  1. Elevator Simulation (Multithreading & Synchronization)
  2. CPU Scheduling Simulator (FCFS & SJF)
  3. Memory Allocation Simulator (Last Fit Algorithm)

Features

🚪 Elevator Simulation

  • Multi-threaded passenger simulation
  • Mutex synchronization
  • Condition Variables
  • Elevator capacity control
  • Thread-safe passenger management
  • Broadcast signaling for waiting passengers

🖥 CPU Scheduling

  • First Come First Serve (FCFS)
  • Shortest Job First (SJF)
  • Two-phase scheduling system
  • Waiting Time calculation
  • Turnaround Time calculation
  • Completion Time analysis

💾 Memory Allocation

  • Last Fit memory allocation algorithm
  • Dynamic memory management
  • Memory utilization tracking
  • Internal fragmentation analysis
  • Process allocation visualization

Technologies Used

  • C++
  • POSIX Threads (Pthreads)
  • Mutex Locks
  • Condition Variables
  • Dynamic Memory Allocation

Learning Outcomes

  • Process Synchronization
  • Multithreading
  • Thread Safety
  • CPU Scheduling Algorithms
  • Memory Management
  • Operating System Design Concepts
  • Concurrent Programming

Algorithms Implemented

Scheduling

  • FCFS (First Come First Serve)
  • SJF (Shortest Job First)

Memory Management

  • Last Fit Allocation

Synchronization

  • Mutex Locks
  • Condition Variables
  • Thread Coordination

Future Improvements

  • Round Robin Scheduling
  • Priority Scheduling
  • Best Fit & Worst Fit Allocation
  • Banker’s Algorithm
  • Deadlock Detection
  • GUI-Based Visualization

About

A C++ Operating System Simulator implementing Elevator Synchronization using Threads, CPU Scheduling Algorithms (FCFS & SJF), and Memory Allocation using the Last Fit algorithm.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages