Skip to content
mohd-nasir

Explore. Experiment. Understand.

I built these interactive experiments to make operating systems and algorithms easier to understand. Try different inputs, follow each step and see how each algorithm works and how its results change.

live experiments
6live experiments
algorithms to compare
34algorithms to compare
runs in your browser
100%runs in your browser

Pick an experiment

Operating Systems

Learn how an operating system manages memory and shares CPU time between processes.

Experiment 02Live

CPU Scheduling

Explore seven ways an operating system decides which process gets CPU time.

  • FCFS
  • SJF
  • SRTF
  • Round Robin
  • NPP
  • PP
  • HRRN
Experiment 03Live

Memory Allocation

See how memory blocks are assigned and compare different ways of choosing free space.

  • First Fit
  • Best Fit
  • Worst Fit

Algorithms

Learn how common algorithms work by following their decisions one step at a time.

Experiment 06Live

Graph Algorithms

Explore how algorithms work with nodes, connections, paths and networks.

  • BFS
  • DFS
  • Dijkstra
  • Bellman-Ford
  • Floyd-Warshall
  • Prim's
  • Kruskal's
  • Topological sort

How to use these experiments

  • 01

    Everything runs in your browser

    All calculations happen on your device. Nothing you enter is sent anywhere, so you can try different inputs freely.

  • 02

    These are simplified learning examples

    Each experiment focuses on explaining one idea clearly. Real-world systems are more complex, so these examples are meant for learning, not production use.

  • 03

    Every important step is explained

    Whenever an algorithm makes a decision, you'll see a simple explanation of what happened and why.

How the experiments are built

All experiments follow the same structure. The algorithm logic is kept separate from the user interface. Each decision is saved as a step with an explanation, and automated tests help check that the results are correct.

Select any part of the diagram to learn what it does and why it is designed this way.

The simulation logic and explanations are also checked through automated tests.

Simulation engine

What it does
The engine uses plain TypeScript functions. It does not depend on the screen, random values or the system clock. This means the same input always produces the same result. Rules for handling ties (for example, choosing the process that arrived first and then following input order) are documented in the code.
Where it lives
src/lib/pageReplacement.ts, scheduling.ts, allocator.ts
Why it is built this way
Keeping the algorithm separate from the user interface makes it easier to test, understand and maintain.

$ book --call