CLOOK DISK SCHEDULING
#include <stdio.h>
#include <stdlib.h>
int main()
{
int queue[20], n, head, i, j, seek_time = 0, diff, max, min, temp, range;
float avg_seek_time;
printf("Enter the number of requests: ");
scanf("%d", &n);
printf("Enter the queue of disk requests: ");
for(i = 0; i < n; i++)
scanf("%d", &queue[i]);
printf("Enter the initial head position: ");
scanf("%d", &head);
queue[n] = head;
n++;
for(i = 0; i < n; i++)
{
for(j = i; j < n; j++)
{
if(queue[i] > queue[j])
{
temp = queue[i];
queue[i] = queue[j];
queue[j] = temp;
}
}
}
max = queue[n - 1];
min = queue[0];
range = max - min;
for(i = 0; i < n; i++)
{
if(queue[i] == head)
{
j = i;
break;
}
}
for(i = j; i >= 0; i--)
{
diff = abs(head - queue[i]);
seek_time += diff;
head = queue[i];
}
head = queue[j + 1];
for(i = j + 1; i < n; i++)
{
diff = abs(head - queue[i]);
seek_time += diff;
head = queue[i];
}
avg_seek_time = (float)seek_time / n;
printf("Total Seek Time: %d\n", seek_time);
printf("Average Seek Time: %f\n", avg_seek_time);
return 0;
}
#include <stdlib.h>
int main()
{
int queue[20], n, head, i, j, seek_time = 0, diff, max, min, temp, range;
float avg_seek_time;
printf("Enter the number of requests: ");
scanf("%d", &n);
printf("Enter the queue of disk requests: ");
for(i = 0; i < n; i++)
scanf("%d", &queue[i]);
printf("Enter the initial head position: ");
scanf("%d", &head);
queue[n] = head;
n++;
for(i = 0; i < n; i++)
{
for(j = i; j < n; j++)
{
if(queue[i] > queue[j])
{
temp = queue[i];
queue[i] = queue[j];
queue[j] = temp;
}
}
}
max = queue[n - 1];
min = queue[0];
range = max - min;
for(i = 0; i < n; i++)
{
if(queue[i] == head)
{
j = i;
break;
}
}
for(i = j; i >= 0; i--)
{
diff = abs(head - queue[i]);
seek_time += diff;
head = queue[i];
}
head = queue[j + 1];
for(i = j + 1; i < n; i++)
{
diff = abs(head - queue[i]);
seek_time += diff;
head = queue[i];
}
avg_seek_time = (float)seek_time / n;
printf("Total Seek Time: %d\n", seek_time);
printf("Average Seek Time: %f\n", avg_seek_time);
return 0;
}
Comments
Post a Comment