# apurba-paul-03/cpu-scheduling-simulator architecture

> Architecture diagram of the GitHub repository apurba-paul-03/cpu-scheduling-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/apurba-paul-03/cpu-scheduling-simulator
- Repository: https://github.com/apurba-paul-03/cpu-scheduling-simulator

## Overview

This repository appears to be a JavaFX CPU scheduling simulator, with scheduling algorithms, chart rendering, persistence, and preset-network support represented in the source tree. The README is empty and the only sampled source is the module declaration, so the runtime wiring and detailed behavior cannot be verified; the graph shows the product components without guessing their call relationships.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User interface"]
  node_app["Application entry<br/>[App.java]"]
  node_main["Main entry<br/>[Main.java]"]
  node_view["Main view<br/>[MainView.fxml]"]
  node_controller["Main controller"]
end

subgraph group_scheduling["Scheduling"]
  node_scheduler["Scheduler interface<br/>[Scheduler.java]"]
  node_fcfs["FCFS<br/>[FCFSScheduler.java]"]
  node_sjf["SJF<br/>[SJFScheduler.java]"]
  node_srtf["SRTF<br/>[SRTFScheduler.java]"]
  node_priority["Priority schedulers"]
  node_preemptive["Preemptive priority"]
  node_roundrobin["Round robin"]
  node_process["Process model<br/>[Process.java]"]
  node_segment["Gantt segment<br/>[GanttSegment.java]"]
end

subgraph group_support["Data and integrations"]
  node_renderer["Chart renderer"]
  node_record["Simulation record"]
  node_dao["Simulation DAO<br/>[SimulationDao.java]"]
  node_database["Database manager"]
  node_presets["Preset network"]
end

node_user(("User"))

click node_app "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/App.java"
click node_main "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/Main.java"
click node_view "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/resources/com/example/cpuschedulingsimulator/MainView.fxml"
click node_controller "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/controller/MainController.java"
click node_scheduler "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/Scheduler.java"
click node_fcfs "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/FCFSScheduler.java"
click node_sjf "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/SJFScheduler.java"
click node_srtf "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/SRTFScheduler.java"
click node_priority "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/PriorityScheduler.java"
click node_preemptive "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/PreemptivePriorityScheduler.java"
click node_roundrobin "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/RoundRobinScheduler.java"
click node_process "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/model/Process.java"
click node_segment "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/model/GanttSegment.java"
click node_renderer "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/util/GanttChartRenderer.java"
click node_record "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/model/SimulationRecord.java"
click node_dao "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/db/SimulationDao.java"
click node_database "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/db/DatabaseManager.java"
click node_presets "https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/net/PresetNetworkManager.java"

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_app,node_main,node_view,node_controller,node_user toneBlue
class node_scheduler,node_fcfs,node_sjf,node_srtf,node_priority,node_preemptive,node_roundrobin,node_process,node_segment toneAmber
class node_renderer,node_record,node_dao,node_database,node_presets toneMint
```

## Components

### User interface

- [Application entry](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/App.java): `src/main/java/com/example/cpuschedulingsimulator/App.java`
- [Main entry](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/Main.java): `src/main/java/com/example/cpuschedulingsimulator/Main.java`
- [Main view](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/resources/com/example/cpuschedulingsimulator/MainView.fxml): `src/main/resources/com/example/cpuschedulingsimulator/MainView.fxml`
- [Main controller](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/controller/MainController.java): `src/main/java/com/example/cpuschedulingsimulator/controller/MainController.java`

### Scheduling

- [Scheduler interface](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/Scheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/Scheduler.java`
- [FCFS](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/FCFSScheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/FCFSScheduler.java`
- [SJF](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/SJFScheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/SJFScheduler.java`
- [SRTF](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/SRTFScheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/SRTFScheduler.java`
- [Priority schedulers](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/PriorityScheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/PriorityScheduler.java`
- [Preemptive priority](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/PreemptivePriorityScheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/PreemptivePriorityScheduler.java`
- [Round robin](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/scheduler/RoundRobinScheduler.java): `src/main/java/com/example/cpuschedulingsimulator/scheduler/RoundRobinScheduler.java`
- [Process model](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/model/Process.java): `src/main/java/com/example/cpuschedulingsimulator/model/Process.java`
- [Gantt segment](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/model/GanttSegment.java): `src/main/java/com/example/cpuschedulingsimulator/model/GanttSegment.java`

### Data and integrations

- [Chart renderer](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/util/GanttChartRenderer.java): `src/main/java/com/example/cpuschedulingsimulator/util/GanttChartRenderer.java`
- [Simulation record](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/model/SimulationRecord.java): `src/main/java/com/example/cpuschedulingsimulator/model/SimulationRecord.java`
- [Simulation DAO](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/db/SimulationDao.java): `src/main/java/com/example/cpuschedulingsimulator/db/SimulationDao.java`
- [Database manager](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/db/DatabaseManager.java): `src/main/java/com/example/cpuschedulingsimulator/db/DatabaseManager.java`
- [Preset network](https://github.com/apurba-paul-03/cpu-scheduling-simulator/blob/master/src/main/java/com/example/cpuschedulingsimulator/net/PresetNetworkManager.java): `src/main/java/com/example/cpuschedulingsimulator/net/PresetNetworkManager.java`

### Other components

- **User**
