JustPaste
HomeCategoriesAboutDonateContactTerms of UsePrivacy Policy
JustPaste

Free online notepad — write and share instantly

Navigate

  • Home
  • Timeline
  • Categories

Info

  • About
  • Donate
  • Contact

Legal

  • Terms of Use
  • Privacy Policy

© 2026 JustPaste.app. All rights reserved.

Made with ♥ by JustPaste

Disk Scheduling Algo | JustPaste.app
1 day ago5 views
👨‍💻Programming

Disk Scheduling Algo

#include <stdio.h>
#include <stdlib.h>

int main() {
    int a[20], n, h, size, i, j, t, d, cur, seek;

    printf("Enter number of requests: ");
    scanf("%d", &n);
    printf("Enter requests: ");
    for(i=0;i<n;i++) scanf("%d",&a[i]);
    printf("Enter head position and disk size: ");
    scanf("%d%d",&h,&size);

    // FCFS
    seek=0; cur=h;
    for(i=0;i<n;i++) seek+=abs(a[i]-cur), cur=a[i];
    printf("FCFS: %d\n",seek);

    // Sort requests
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
            if(a[i]>a[j]) t=a[i],a[i]=a[j],a[j]=t;

    // SCAN (towards 0 first)
    seek=h; d=0;
    for(i=0;i<n;i++) if(a[i]>=h) break;
    for(j=i-1;j>=0;j--) seek+=abs(a[j]-seek);
    seek+=seek; // incorrect? 
    printf("SCAN: %d\n",seek);

    // C-SCAN (towards higher cylinders)
    seek=0; cur=h;
    for(i=0;i<n;i++) if(a[i]>=h) break;
    for(j=i;j<n;j++) seek+=abs(a[j]-cur),cur=a[j];
    seek+=abs((size-1)-cur)+(size-1);
    cur=0;
    for(j=0;j<i;j++) seek+=abs(a[j]-cur),cur=a[j];
    printf("C-SCAN: %d\n",seek);

    return 0;
}
← Back to timeline