Skip to content

Yobil-Job/FIFO-scheduler-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FIFO Scheduling Simulator

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.


Table of Contents


Features

  • 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.

Screenshots

Main Window dashboard Calculator Java_simulator Go simulator


Project Structure

.
├── 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

Getting Started

JavaFX GUI

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • JavaFX 17 (managed by Maven)

Build & Run

  1. Clone the repository:

    git clone <repo-url>
    cd <repo-directory>
  2. Build the project:

    mvn clean install
  3. Run the application:

    mvn javafx:run

The main window will open, allowing you to explore FIFO scheduling visually.


Go FIFO Demo

Prerequisites

  • Go 1.18 or higher

Build & Run

  1. Navigate to the Go demo:

    cd fifi-demo-with-go
  2. Run the program:

    go run main.go

This will simulate FIFO scheduling in the terminal and print job progress per tick.


Usage

  • 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.

Contributors

  • Eyob Weldetensay
  • Naol Birhanu

License

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.


Acknowledgements

  • JavaFX for GUI components
  • Go for the CLI FIFO demo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published