# kinndel30/diskflow-disk-scheduling-simulator architecture

> Architecture diagram of the GitHub repository kinndel30/diskflow-disk-scheduling-simulator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kinndel30/diskflow-disk-scheduling-simulator
- Repository: https://github.com/kinndel30/diskflow-disk-scheduling-simulator

## Overview

DiskFlow is a Tkinter disk-scheduling simulator. The user enters a head position, request queue, disk range, and SCAN direction, then runs one algorithm or compares all three; the app presents movement totals, per-step results, and algorithm explanations. The GUI’s validation call and FCFS/SSTF dispatch are shown in the excerpts. SCAN dispatch and result formatting are important documented capabilities, but their calls are not visible in the sampled GUI lines, so those links are marked unverified.

Main entry points: [`gui.py`](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/gui.py) (Simulator GUI), [`main.py`](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/main.py) (App Entry), [`utils/validation.py`](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/utils/validation.py) (Input Validation), [`algorithms/fcfs.py`](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/fcfs.py) (FCFS)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_entry["App Entry<br/>[main.py]"]
  node_gui["Simulator GUI<br/>[gui.py]"]
end

subgraph group_input["Input Handling"]
  node_validation["Input Validation<br/>[validation.py]"]
end

subgraph group_scheduling["Scheduling Algorithms"]
  node_fcfs["FCFS<br/>[fcfs.py]"]
  node_sstf["SSTF<br/>[sstf.py]"]
  node_scan["SCAN<br/>[scan.py]"]
end

subgraph group_results["Results"]
  node_formatter["Result Formatter<br/>[formatter.py]"]
end

node_user(("User"))

node_user -->|"launches"| node_entry
node_entry -->|"starts"| node_gui
node_gui -->|"validates inputs"| node_validation
node_gui -->|"runs"| node_fcfs
node_gui -->|"runs"| node_sstf
node_gui -.->|"runs"| node_scan
node_gui -.->|"formats results"| node_formatter

click node_entry "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/main.py"
click node_gui "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/gui.py"
click node_validation "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/utils/validation.py"
click node_fcfs "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/fcfs.py"
click node_sstf "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/sstf.py"
click node_scan "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/scan.py"
click node_formatter "https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/results/formatter.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_gui,node_user toneBlue
class node_validation toneAmber
class node_fcfs,node_sstf,node_scan toneMint
class node_formatter toneRose
```

## Components

### Application

- [App Entry](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/main.py): `main.py`
- [Simulator GUI](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/gui.py): `gui.py`

### Input Handling

- [Input Validation](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/utils/validation.py): `utils/validation.py`

### Scheduling Algorithms

- [FCFS](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/fcfs.py): `algorithms/fcfs.py`
- [SSTF](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/sstf.py): `algorithms/sstf.py`
- [SCAN](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/algorithms/scan.py): `algorithms/scan.py`

### Results

- [Result Formatter](https://github.com/kinndel30/diskflow-disk-scheduling-simulator/blob/main/results/formatter.py): `results/formatter.py`

### Other components

- **User**

## Connections

- User → App Entry: launches (evidence: `README.md`)
- App Entry → Simulator GUI: starts (evidence: `main.py`)
- Simulator GUI → Input Validation: validates inputs (evidence: `gui.py`)
- Simulator GUI → FCFS: runs (evidence: `gui.py`)
- Simulator GUI → SSTF: runs (evidence: `gui.py`)
- Simulator GUI → SCAN: runs (evidence: `gui.py`)
- Simulator GUI → Result Formatter: formats results (evidence: `gui.py`)
