# alimohammedabotaleb-hub/cpu-scheduling-simulation-ds architecture

> Architecture diagram of the GitHub repository alimohammedabotaleb-hub/cpu-scheduling-simulation-ds, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds
- Repository: https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds

## Overview

This is a command-line arithmetic-timing and CPU-scheduling simulator. A user enters arithmetic expressions (or selects demo mode); the program validates them, measures repeated evaluator calls, converts the averages into simulated CPU burst times, and presents scheduling results. The source excerpt supports the input, timing, data-structure, and reporting layers, and confirms simulated arrivals, priorities, and a round-robin quantum. The scheduling implementation and parts of main are omitted, so their internal algorithm wiring is not shown.

Main entry points: [`src/CPU_Scheduling_Simulator.cpp`](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp) (Read processes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_input["Input and validation"]
  node_main["CLI workflow"]
  node_input_read["Read processes"]
  node_validation["Parse input"]
end

subgraph group_timing["Arithmetic timing"]
  node_measure["Measure burst"]
  node_evaluator["Arithmetic evaluator"]
  node_clock["System clock"]
end

subgraph group_scheduling["Scheduling simulation"]
  node_process_list["Process list"]
  node_scheduler["Scheduling simulation"]
end

subgraph group_reporting["Results and reporting"]
  node_result["Schedule results"]
  node_report["Console reports"]
end

node_user(("User"))

node_user -->|"provides input"| node_main
node_main -->|"reads processes"| node_input_read
node_input_read -->|"parses values"| node_validation
node_input_read -->|"measures each"| node_measure
node_measure -->|"times calls"| node_evaluator
node_measure -->|"reads ticks"| node_clock
node_input_read -->|"orders processes"| node_process_list
node_main -->|"prints measurements"| node_report
node_scheduler -->|"produces schedule"| node_result
node_result -->|"formats results"| node_report

click node_main "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_input_read "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_validation "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_measure "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_evaluator "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_clock "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_process_list "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_scheduler "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_result "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"
click node_report "https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp"

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_main,node_input_read,node_validation,node_user toneBlue
class node_measure,node_evaluator,node_clock toneAmber
class node_process_list,node_scheduler toneMint
class node_result,node_report toneRose
```

## Components

### Input and validation

- [CLI workflow](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`
- [Read processes](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`
- [Parse input](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`

### Arithmetic timing

- [Measure burst](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`
- [Arithmetic evaluator](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`
- [System clock](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`

### Scheduling simulation

- [Process list](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`
- [Scheduling simulation](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`

### Results and reporting

- [Schedule results](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`
- [Console reports](https://github.com/alimohammedabotaleb-hub/cpu-scheduling-simulation-ds/blob/main/src/CPU_Scheduling_Simulator.cpp): `src/CPU_Scheduling_Simulator.cpp`

### Other components

- **User**

## Connections

- User → CLI workflow: provides input
- CLI workflow → Read processes: reads processes
- Read processes → Parse input: parses values
- Read processes → Measure burst: measures each
- Measure burst → Arithmetic evaluator: times calls
- Measure burst → System clock: reads ticks
- Read processes → Process list: orders processes
- CLI workflow → Console reports: prints measurements
- Scheduling simulation → Schedule results: produces schedule
- Schedule results → Console reports: formats results
