A cross-platform educational tool for visualizing and analyzing the First-In-First-Out (FIFO) CPU scheduling algorithm. This project features a modern JavaFX GUI, a Java-based FIFO simulation, and a Go-based FIFO demo for comparative study.
- Interactive JavaFX GUI: Intuitive interface for simulating FIFO scheduling.
- Process Calculator: Input processes, calculate finish, turnaround, and waiting times.
- Theory Section: Learn about FIFO scheduling and its applications.
- Dual Implementation: Compare FIFO scheduling in both Java and Go.
- Modern Design: Clean, responsive UI with custom styles.
.
├── src/
│ └── main/
│ ├── java/com/fifosimulator/ # Java source code (controllers, models)
│ └── resources/com/fifosimulator/ # FXML layouts, CSS
├── fifi-demo-with-go/ # Go FIFO demo implementation
├── fifo-demo -with-java/ # (If applicable: Java CLI FIFO demo)
├── pom.xml # Maven build file
└── Main.java # JavaFX application entry point
- Java 17 or higher
- Maven 3.6+
- JavaFX 17 (managed by Maven)
-
Clone the repository:
git clone <repo-url> cd <repo-directory>
-
Build the project:
mvn clean install
-
Run the application:
mvn javafx:run
The main window will open, allowing you to explore FIFO scheduling visually.
- Go 1.18 or higher
-
Navigate to the Go demo:
cd fifi-demo-with-go -
Run the program:
go run main.go
This will simulate FIFO scheduling in the terminal and print job progress per tick.
- Home: View course and developer info.
- Dashboard: Navigate to Java/Go simulations, theory, or the process calculator.
- Calculator: Enter the number of processes, their arrival and burst times, and calculate scheduling metrics.
- Theory: Read about FIFO scheduling concepts and applications.
- Java/Go Simulation: Run and compare FIFO scheduling in Java and Go.
- Eyob Weldetensay
- Naol Birhanu
This project is for educational purposes.
This project was created as part of an academic submission for the Operating Systems course at Arbaminch University.
No license is granted for commercial or public reuse of this project. It is intended for educational and demonstrational purposes only.
- JavaFX for GUI components
- Go for the CLI FIFO demo




