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++.
- Host: GitHub
- URL: https://github.com/some0ne11/disk-scheduling-algorithm
- Owner: Some0ne11
- License: mit
- Created: 2025-03-12T12:15:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-13T04:20:13.000Z (11 months ago)
- Last Synced: 2025-08-13T06:23:13.708Z (11 months ago)
- Topics: cpp, fcfs-algorithm, fcfs-scheduling, ipynb, sstf, sstf-scheduling
- Language: Jupyter Notebook
- Homepage: https://tinyurl.com/CST232-A2-PYNB
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.