Disk Scheduling Algorithms-converted
Disk Scheduling Algorithms-converted
PROGRAM
#include<stdio.h>
void main(){
int ioq[20],i,n,ihead,tot;
float seek=0,avgs;
avgs = seek/(n);
OUTPUT 2
Enter the number of requests :5
Enter the initial head position :100
Enter the I/O queue requests
23
89
132
42
187
PROGRAM
#include<stdio.h>
void main()
{
int ioq[20],i,n,j,ihead,temp,scan,tot; float seek=0,avgs;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
temp = ioq[j];
ioq[j] = ioq[j+1];
ioq[j+1] = temp;
}
}
ioq[n]=ioq[n-1];
for(i=0;i<n;i++){
if(ihead == ioq[i])
{ scan = i;
break;
tot =ioq[i]-ioq[i-1];
if(i==0)
tot=ioq[i]-ioq[scan+1];
if(tot < 0)
tot=tot*-1;
printf("%d\t%d\n",ioq[i],tot);
}
for(i=scan+1;i<n;i++)
{
tot = ioq[i+1] - ioq[i];
if(tot < 0)
tot = tot * -1;
printf("%d\t%d\n",ioq[i],tot);
}
seek = ihead + ioq[n-1];
avgs = seek/(n-2);
printf("\n\nTotal Seek time\t\t: %.2f",seek);
printf("\nAverage seek time\t: %.2f\n\n",avgs);
}
OUTPUT
53 16
37 23
14 14
0 65
65 2
67 31
98 24
122 2
124 59
183 0
CSCAN
PROGRAM
#include<stdio.h>
void main()
{
int ioq[20],i,n,j,ihead,itail,temp,scan,tot=0;
float seek=0,avgs;
for(i=0;i<n-1;i++){
for(j=0;j<n-1;j++)
{
temp = ioq[j];
ioq[j] = ioq[j+1];
ioq[j+1] = temp;
}
}
for(i=0;i<n+1;i++){
if(ihead == ioq[i]){
scan = i;
break;
i = scan;
temp = n;
while(i != temp){
if(tot < 0)
tot = tot * -1;
seek += tot;
}
printf("%d --> ",ioq[i]);
// printf("%d\t%d\n",ioq[i],tot);
i++;
if(i == n){
i = 0;
temp = scan;
seek += itail;
avgs = seek/(n-3);
OUTPUT
50 --> 65 --> 68 --> 90 --> 120 --> 122 --> 128 --> 200 --> 0 --> 35 --> 38 -->