Simulate the following disk scheduling algorithms SCAN

  #include<stdio.h> 

#include<conio.h> 
void main() 

 int size,n,q[20],visit[20],t,head,pos,seek=0,i,j; 
 printf("enter number of queue elements : "); 
 scanf("%d",&n); 
 printf("enter the work queue : "); 
 for(i=0;i<n;i++) 
 { 
 scanf("%d",&q[i]); 
 visit[i]=0; 
 } 
 printf("enter the disk head starting position : "); 
 scanf("%d",&head); 
 for(i=0;i<n;i++) 
 { 
 for(j=i+1;j<n;j++) 
 { 
 if(q[i]>q[j]) 
 { 
 t=q[i]; 
 q[i]=q[j]; 
 q[j]=t; 
 } 
 } 
 } 
 for(i=n;i>=1;i--) 
 { 
 if(q[i]<head) 
 { 
 seek=seek+abs(head-q[i]); 
 visit[i]=1; 
 head=q[i]; 
 } 
 } 
 for(i=0;i<n;i++) 
 { 
 if(visit[i]==0) 
 { 
 
 seek=seek+abs(head-0); 
 head=0; 
 break; 
 } 
 } 
 for(i=0;i<n;i++) 
 { 
 if(visit[i]==0) 
 { 
 seek=seek+abs(head-q[i]); 
 
 visit[i]=1; 
 head=q[i]; 
 } 
 } 
 printf("total seek time : %d\n",seek); 
 
}

Comments

Popular posts from this blog

CLOOK DISK SCHEDULING

LOOK Disk Scheduling