8 - Disk - Scheduling - Algo (FCFS, SCAN, C-SCAN)
8 - Disk - Scheduling - Algo (FCFS, SCAN, C-SCAN)
FCFS
In [ ]: #include <bits/stdc++.h>
using namespace std;
int size = 8;
seek_count += distance;
head = cur_track;
}
int main()
{
int arr[size] = { 176, 79, 34, 60, 92, 11, 41, 114 };
int head = 50;
FCFS(arr, head);
return 0;
}
http://localhost:8888/nbconvert/html/Jupyter%20Notebooks/OS-…ing_Algo%20(FCFS%2C%20SCAN%2C%20C-SCAN).ipynb?download=false Page 1 of 6
Disk_Scheduling_Algo (FCFS, SCAN, C-SCAN) 17/04/20, 7:16 PM
OUTPUT:
Seek Sequence is 176, 79, 34, 60, 92, 11, 41, 114
SCAN
In [ ]: #include <bits/stdc++.h>
using namespace std;
int size = 8;
int disk_size = 200;
if (direction == "left")
left.push_back(0);
else if (direction == "right")
right.push_back(disk_size - 1);
std::sort(left.begin(), left.end());
std::sort(right.begin(), right.end());
int run = 2;
while (run--) {
if (direction == "left") {
for (int i = left.size() - 1; i >= 0; i--) {
cur_track = left[i];
seek_sequence.push_back(cur_track);
seek_count += distance;
http://localhost:8888/nbconvert/html/Jupyter%20Notebooks/OS-…ing_Algo%20(FCFS%2C%20SCAN%2C%20C-SCAN).ipynb?download=false Page 2 of 6
Disk_Scheduling_Algo (FCFS, SCAN, C-SCAN) 17/04/20, 7:16 PM
head = cur_track;
}
direction = "right";
}
else if (direction == "right") {
for (int i = 0; i < right.size(); i++) {
cur_track = right[i];
seek_sequence.push_back(cur_track);
seek_count += distance;
head = cur_track;
}
direction = "left";
}
}
cout << "Total number of seek operations = " << seek_count << e
ndl;
int main()
{
return 0;
}
Seek Sequence is 41, 34, 11, 0, 60, 79, 92, 114, 176
C-SCAN
include <bits/stdc++.h>
http://localhost:8888/nbconvert/html/Jupyter%20Notebooks/OS-…ing_Algo%20(FCFS%2C%20SCAN%2C%20C-SCAN).ipynb?download=false Page 3 of 6
Disk_Scheduling_Algo (FCFS, SCAN, C-SCAN) 17/04/20, 7:16 PM
include <bits/stdc++.h>
using namespace std;
void CSCAN(int arr[], int head) { int seek_count = 0; int distance, cur_track; vector left, right; vector
seek_sequence;
http://localhost:8888/nbconvert/html/Jupyter%20Notebooks/OS-…ing_Algo%20(FCFS%2C%20SCAN%2C%20C-SCAN).ipynb?download=false Page 4 of 6
Disk_Scheduling_Algo (FCFS, SCAN, C-SCAN) 17/04/20, 7:16 PM
left.push_back(0);
right.push_back(disk_size - 1);
std::sort(left.begin(), left.end());
std::sort(right.begin(), right.end());
seek_count += distance;
head = cur_track;
}
head = 0;
seek_sequence.push_back(cur_track);
seek_count += distance;
head = cur_track;
}
cout << "Total number of seek operations = " << seek_count << endl;
http://localhost:8888/nbconvert/html/Jupyter%20Notebooks/OS-…ing_Algo%20(FCFS%2C%20SCAN%2C%20C-SCAN).ipynb?download=false Page 5 of 6
Disk_Scheduling_Algo (FCFS, SCAN, C-SCAN) 17/04/20, 7:16 PM
int main() {
cout << "Initial position of head: " << head << endl;
CSCAN(arr, head);
return 0;
Output:
Seek Sequence is 60, 79, 92, 114, 176, 199, 0, 11, 34, 41
http://localhost:8888/nbconvert/html/Jupyter%20Notebooks/OS-…ing_Algo%20(FCFS%2C%20SCAN%2C%20C-SCAN).ipynb?download=false Page 6 of 6