Skip to content

"πŸ–₯️ Multiprogramming OS 🌐 | Phase 1: CPU & Machine Simulation βš™οΈ, Supervisor Calls via Interrupts 🚨. Phase 2: Paging πŸ—‚οΈ, Error Handling ❌, Interrupt Generation & Servicing πŸ”„, PCB Data Structure πŸ“Š. Great for learning OS concepts & hands-on simulation πŸ’»βš‘."

Notifications You must be signed in to change notification settings

ShaikhNomaan-png/Multiprogramming-Operating-System-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ Multiprogramming Operating System Simulator

Welcome to the Multiprogramming OS Simulator!
This project is a hands-on technological journey into fundamental concepts of operating systems, featuring interactive CPU, memory, and process management simulations.
Dive into the world of multiprogramming and discover how real operating systems manage resources, schedule processes, and handle interruptsβ€”all in a safe, educational environment.


πŸ—οΈ System Architecture

The simulator is built on a modular architecture, mimicking the core components of a real OS:

  • CPU Module: Emulates instruction execution and context switching.
  • Memory Module: Simulates RAM, paging, and address translation.
  • Process Manager: Maintains PCB data, manages process states and scheduling.
  • Interrupt Handler: Coordinates supervisor calls, errors, and asynchronous events.

πŸš€ Tech Highlights

Phase 1:

  • CPU & Machine Simulation βš™οΈ
    • Simulates instruction cycles, registers, and basic I/O.
    • Provides hooks for supervisor calls and privilege checks.
  • Supervisor Calls via Interrupts 🚨
    • Implements SVCs for process management, memory allocation, and I/O.

Phase 2:

  • Paging Implementation πŸ—‚οΈ
    • Virtual memory management using page tables.
    • Supports page faults and dynamic allocation.
  • Robust Error Handling ❌
    • Detects illegal memory access, invalid instructions, and resource exhaustion.
  • Interrupt Generation & Servicing πŸ”„
    • Hardware and software interrupts, nested interrupt support, priority handling.
  • Process Control Block (PCB) Structure πŸ“Š
    • Tracks process ID, state, registers, memory maps, and scheduling information.

Planned Extensions:

  • Multi-level Scheduling
  • Device Driver Simulation
  • File System Layer (future release)
  • User/Kernel Mode Switching

🌐 Why Use This Simulator?

  • Learn OS Fundamentals:
    Grasp core concepts like multiprogramming, interrupt handling, memory management, and process control in a hands-on way.

  • Tech-Driven Design:
    Modern code structure, clear separation of responsibilities, and focus on real-world scenarios.

  • Interactive & Educational:
    Ideal for students, educators, and curious developers ready to dive into OS inner workingsβ€”without needing real hardware.

    • Trace & Debug:
      Step-by-step simulation with trace logs for every process, interrupt, and memory operation.
  • Extensible & Customizable:
    Easily add new instructions, memory models, or scheduling algorithms for experiments and assignments.


πŸ’‘ Features

  • Simulates multi-process CPU scheduling and execution (FCFS, Round Robin, Priority)
  • Handles supervisor calls and interrupts dynamically (customizable interrupt vector table)
  • Implements paging for efficient memory management (with page fault simulation and swapping)
  • Manages process information via PCB data structures (full lifecycle: creation, ready, running, blocked, terminated)
  • Integrates error detection and handling for robust simulation (invalid opcode, out-of-memory, deadlock detection)
  • Visualizes process and memory state (optional: CLI or GUI output, configurable logging)
  • Supports batch and interactive modes for running workloads

πŸ”§ Getting Started

  1. Clone the repo:
    git clone https://github.com/ShaikhNomaan-png/Multiprogramming-Operating-System-.git
  2. Navigate to the src directory:
    cd Multiprogramming-Operating-System-/src
  3. Run the simulation:
    (Instructions for building/running your code, e.g., using make, gcc, or a specific script.)

πŸ“š Learn More

  • Wiki β€” In-depth documentation & tutorials
  • Issues β€” Report bugs or suggest features

⚑ Tech Stack

  • C / C++ / Assembly (adapt as appropriate)
  • Modular structure for extensibility
  • Designed for clarity, accuracy, and learning

Contributions welcome!
Level up your OS knowledge and join the simulation revolution! πŸ’»βš‘

About

"πŸ–₯️ Multiprogramming OS 🌐 | Phase 1: CPU & Machine Simulation βš™οΈ, Supervisor Calls via Interrupts 🚨. Phase 2: Paging πŸ—‚οΈ, Error Handling ❌, Interrupt Generation & Servicing πŸ”„, PCB Data Structure πŸ“Š. Great for learning OS concepts & hands-on simulation πŸ’»βš‘."

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages