An open API service indexing awesome lists of open source software.

https://github.com/some0ne11/disk-scheduling-algorithm

This project implements First Come, First Serve (FCFS) and Shortest Seek Time First (SSTF) disk scheduling algorithms in C++.
https://github.com/some0ne11/disk-scheduling-algorithm

cpp fcfs-algorithm fcfs-scheduling ipynb sstf sstf-scheduling

Last synced: about 1 month ago
JSON representation

This project implements First Come, First Serve (FCFS) and Shortest Seek Time First (SSTF) disk scheduling algorithms in C++.

Awesome Lists containing this project

README

          

FCFS and SSTF Disk Scheduling Algorithms


Project Overview
  •  
Program's Code
  •  
Installation & Usage
  •  
Example
  •  
Future Enhancement
  •  
License
  •  
Team Members

This project implements First Come, First Serve (FCFS) and Shortest Seek Time First (SSTF) disk scheduling algorithms in C++.


🌐Visit this Project's Playground

📌 Project Overview

Disk scheduling algorithms determine the order in which disk I/O requests are processed to optimize seek time and overall performance. This project provides:
- A **C++ implementation** of both FCFS and SSTF.
- User input for disk parameters and request queues.
- Computation of total seek time for each algorithm.

📂 Program's Code

- `fcfs.cpp` - Implementation of the FCFS algorithm
- `sstf.cpp` - Implementation of the SSTF algorithm

🛠️ Installation & Usage

### 1️⃣ Cloning the repository
```bash
git clone https://github.com/Some0ne11/disk-scheduling-algorithm.git
cd disk-scheduling-algorithm
```

### 2️⃣ Compile the Code
You can compile both programs using g++:
```bash
g++ fcfs.cpp -o fcfs
g++ sstf.cpp -o sstf
```

### 3️⃣ Run the Executable
For FCFS:
```bash
./fcfs
```
For SSTF:
```bash
./sstf
```

📊 Example Output

### FCFS Example:

output

```
First Come, First Serve (FCFS) Disk Scheduling Algorithm:

1. Please enter the total number of cylinders on the disk: 200
2. Please enter the total number of I/O requests: 7
3. Please enter the initial/current head position of the disk (0 to 199): 50

4. Please enter the cylinder numbers in the Request Queue below:
I/O request 1: 82
I/O request 2: 170
I/O request 3: 43
I/O request 4: 140
I/O request 5: 24
I/O request 6: 16
I/O request 7: 190

5. Request sequence: {82, 170, 43, 140, 24, 16, 190}

6. Order of processing: 50 -> 82 -> 170 -> 43 -> 140 -> 24 -> 16 -> 190
7. Total Seek Time: 642
8. Average Seek Time: 91.7143

Summary Table:
Request No. Cylinder No. Seek Time
------------------------------------------
1 82 32
2 170 88
3 43 127
4 140 97
5 24 116
6 16 8
7 190 174
-------------------------------------------
642
```

### SSTF Example:

output

```
Shortest Seek Time First (SSTF) Disk Scheduling Algorithm:

1. Please enter the total number of cylinders on the disk: 200
2. Please enter the total number of I/O requests: 7
3. Please enter the initial/current head position of the disk (0 to 199): 50

4. Please enter the cylinder numbers in the Request Queue below:
I/O request 1: 82
I/O request 2: 170
I/O request 3: 43
I/O request 4: 140
I/O request 5: 24
I/O request 6: 16
I/O request 7: 190

5. Request sequence: {82, 170, 43, 140, 24, 16, 190}

6. Order of processing: 50 -> 43 -> 24 -> 16 -> 82 -> 140 -> 170 -> 190
7. Total Seek Time: 208
8. Average Seek Time: 29.7143

Summary Table:
Request No. Cylinder No. Seek Time
------------------------------------------
1 43 7
2 24 19
3 16 8
4 82 66
5 140 58
6 170 30
7 190 20
------------------------------------------
208
```

🏗️ Future Enhancements

- Add graphical visualization of the disk scheduling process.
- Implement additional scheduling algorithms such as SCAN and C-SCAN.

📜 License

This project is licensed under the MIT License.

📌 Team Members

Special thanks to all contributors of this project.


Profile Picture


Muhammad Ammar Danial Bin Abdullah


Profile Picture


Ashman Bin Mohd Fauzi


Profile Picture


Ng Xuan Hern


Profile Picture


Lim Wei Ling