# tanay473/microkernel-memory-simulator architecture

> Architecture diagram of the GitHub repository tanay473/microkernel-memory-simulator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tanay473/microkernel-memory-simulator
- Repository: https://github.com/tanay473/microkernel-memory-simulator

## Overview

This is an interactive Tkinter simulator for microkernel memory and process behavior. The main workflow is launching the enhanced UI, then creating or selecting processes, allocating code/heap/stack frames, and inspecting live memory and process state; the automated simulator can generate similar events. The README documents the UI, simulator, process manager, and memory manager relationships. UI internals and some display wiring are only partially sampled, so the map keeps those connections broad rather than inferring detailed call sequences.

Main entry points: [`ui/enhanced_ui.py`](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py) (Enhanced UI), [`core/memory_manager.py`](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py) (Memory Manager), [`core/process.py`](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py) (Process Manager), [`core/simulator.py`](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/simulator.py) (Event Simulator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User Interface"]
  node_entry["Application Entry<br/>[main.py]"]
  node_ui["Enhanced UI<br/>[enhanced_ui.py]"]
  node_memory_map["Memory Map<br/>[enhanced_ui.py]"]
  node_process_monitor["Process Monitor<br/>[enhanced_ui.py]"]
  node_inspector["Page Table Inspector<br/>[enhanced_ui.py]"]
  node_statistics["Statistics and Graphs<br/>[enhanced_ui.py]"]
  node_event_log["Event Log<br/>[enhanced_ui.py]"]
end

subgraph group_events["Simulation Events"]
  node_simulator["Event Simulator<br/>[simulator.py]"]
end

subgraph group_processes["Process Lifecycle"]
  node_process_manager["Process Manager<br/>[process.py]"]
  node_process["Process Lifecycle<br/>[process.py]"]
  node_segments["Segment Allocation<br/>[process.py]"]
end

subgraph group_memory["Memory Management"]
  node_memory_manager["Memory Manager<br/>[memory_manager.py]"]
  node_frames["Frame Allocation<br/>[memory_manager.py]"]
  node_page_tables["Page Tables<br/>[memory_manager.py]"]
end

node_user(("User"))

node_user -->|"launches"| node_entry
node_entry -->|"starts"| node_ui
node_user -->|"operates"| node_ui
node_ui -->|"controls"| node_simulator
node_ui -->|"requests processes"| node_process_manager
node_simulator -->|"generates requests"| node_process_manager
node_simulator -->|"updates and logs"| node_ui
node_process_manager -->|"creates and terminates"| node_process
node_process_manager -->|"routes requests"| node_segments
node_process -->|"allocates and frees"| node_memory_manager
node_segments -->|"requests frames"| node_memory_manager
node_memory_manager -->|"manages"| node_frames
node_memory_manager -->|"records mappings"| node_page_tables
node_ui -->|"renders memory"| node_memory_map
node_ui -->|"updates process view"| node_process_monitor
node_ui -->|"opens mapping view"| node_inspector
node_ui -->|"updates metrics"| node_statistics
node_ui -->|"records events"| node_event_log
node_memory_map -->|"reads frame state"| node_memory_manager
node_process_monitor -->|"reads active processes"| node_process_manager
node_inspector -->|"reads page mappings"| node_process
node_statistics -->|"reads memory state"| node_memory_manager

click node_entry "https://github.com/tanay473/microkernel-memory-simulator/blob/main/main.py"
click node_ui "https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py"
click node_memory_map "https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py"
click node_process_monitor "https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py"
click node_inspector "https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py"
click node_statistics "https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py"
click node_event_log "https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py"
click node_simulator "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/simulator.py"
click node_process_manager "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py"
click node_process "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py"
click node_segments "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py"
click node_memory_manager "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py"
click node_frames "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py"
click node_page_tables "https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_ui,node_memory_map,node_process_monitor,node_inspector,node_statistics,node_event_log,node_user toneBlue
class node_simulator toneAmber
class node_process_manager,node_process,node_segments toneMint
class node_memory_manager,node_frames,node_page_tables toneRose
```

## Components

### User Interface

- [Application Entry](https://github.com/tanay473/microkernel-memory-simulator/blob/main/main.py): `main.py`
- [Enhanced UI](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py): `ui/enhanced_ui.py`
- [Memory Map](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py): `ui/enhanced_ui.py`
- [Process Monitor](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py): `ui/enhanced_ui.py`
- [Page Table Inspector](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py): `ui/enhanced_ui.py`
- [Statistics and Graphs](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py): `ui/enhanced_ui.py`
- [Event Log](https://github.com/tanay473/microkernel-memory-simulator/blob/main/ui/enhanced_ui.py): `ui/enhanced_ui.py`

### Simulation Events

- [Event Simulator](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/simulator.py): `core/simulator.py`

### Process Lifecycle

- [Process Manager](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py): `core/process.py`
- [Process Lifecycle](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py): `core/process.py`
- [Segment Allocation](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/process.py): `core/process.py`

### Memory Management

- [Memory Manager](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py): `core/memory_manager.py`
- [Frame Allocation](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py): `core/memory_manager.py`
- [Page Tables](https://github.com/tanay473/microkernel-memory-simulator/blob/main/core/memory_manager.py): `core/memory_manager.py`

### Other components

- **User**

## Connections

- User → Application Entry: launches
- Application Entry → Enhanced UI: starts
- User → Enhanced UI: operates
- Enhanced UI → Event Simulator: controls
- Enhanced UI → Process Manager: requests processes
- Event Simulator → Process Manager: generates requests
- Event Simulator → Enhanced UI: updates and logs
- Process Manager → Process Lifecycle: creates and terminates
- Process Manager → Segment Allocation: routes requests
- Process Lifecycle → Memory Manager: allocates and frees
- Segment Allocation → Memory Manager: requests frames
- Memory Manager → Frame Allocation: manages
- Memory Manager → Page Tables: records mappings
- Enhanced UI → Memory Map: renders memory
- Enhanced UI → Process Monitor: updates process view
- Enhanced UI → Page Table Inspector: opens mapping view
- Enhanced UI → Statistics and Graphs: updates metrics
- Enhanced UI → Event Log: records events
- Memory Map → Memory Manager: reads frame state
- Process Monitor → Process Manager: reads active processes
- Page Table Inspector → Process Lifecycle: reads page mappings
- Statistics and Graphs → Memory Manager: reads memory state
