Skip to main content

Write an OS program to implement SCAN Disk Scheduling algorithm.


 #include<stdio.h>

#include<stdlib.h>

int main()
{
      int RQ[100],i,j,n,TotalHeadMoment=0,initial,size,move;
     
      printf("Enter the number of requests: ");
      scanf("%d",&n);
     
      printf("Enter the request sequence: ");
      for(i=0;i<n;i++)
        scanf("%d",&RQ[i]);
     
      printf("Enter initial head position: ");
      scanf("%d",&initial);
     
      printf("Enter total disk size: ");
      scanf("%d",&size);
     
      printf("Enter the head movement direction for high 1 and for low 0: ");
      scanf("%d",&move);
     
      for (i=0;i<n;i++)
      {
          for (j=0;j<n-i-1;j++)
          {
              if (RQ[j]>RQ[j+1])
              {
                 int temp;
                 temp=RQ[j];
                 RQ[j]=RQ[j+1];
                 RQ[j+1]=temp;
              }
          }
      }
     
      int index;
      for (i=0;i<n;i++)
      {
          if (initial<RQ[i])
          {
             index=i;
             break;
          }
      }
     
      if (move==1)
      {
          for (i=index;i<n;i++)
          {
               printf("Serving Request: %d\n",RQ[i]);
               TotalHeadMoment=TotalHeadMoment+abs(RQ[i]-initial);
               initial=RQ[i];
          }
         
          TotalHeadMoment=TotalHeadMoment+abs(size-RQ[i-1]-1);
          initial=size-1;  
          for (i=index-1;i>=0;i--)
          {
              printf("Serving Request: %d\n",RQ[i]);
              TotalHeadMoment=TotalHeadMoment+abs(RQ[i]-initial);
              initial=RQ[i];
          }
      }
     
      else
      {
          for (i=index-1;i>=0;i--)
          {
               printf("Serving Request: %d\n",RQ[i]);
               TotalHeadMoment=TotalHeadMoment+abs(RQ[i]-initial);
               initial=RQ[i];
          }
       
          TotalHeadMoment=TotalHeadMoment+abs(RQ[i+1]-0);
          initial=0;
          for (i=index;i<n;i++)
          {
              printf("Serving Request: %d\n",RQ[i]);
              TotalHeadMoment=TotalHeadMoment+abs(RQ[i]-initial);
              initial=RQ[i];
          }
      }
     
      printf("Total head movement is %d",TotalHeadMoment);
      return 0;
}    
                         
       
/*



           OUTPUT
Enter the number of requests: 8
Enter the request sequence: 98    
183
41
122
14
124
65
67
Enter initial head position: 53
Enter total disk size: 200
Enter the head movement direction for high 1 and for low 0: 1
Serving Request: 65
Serving Request: 67
Serving Request: 98
Serving Request: 122
Serving Request: 124
Serving Request: 183
Serving Request: 41
Serving Request: 14
Total head movement is 331      

*/  

Comments

Popular posts from this blog

Write a program to read book information (bookid, bookname, bookprice, bookqty) in file “book.dat”. Write a menu driven program to perform the following operations using Random access file: i. Search for a specific book by name. ii. Display all book and total cost

  import java . io .*; import java . util .*; class Book {       String name , id ;       int qty ;       double price , total ;       Book ( String i , String n , String p , String q )      {               name = n ;               id = i ;               qty = Integer . parseInt ( q );               price = Double . parseDouble ( p );               total = qty * price ;      }       public String toString ()      {               System . out . println ( "name\t id\t qty\t price\t total" );               String s = name + "\t" + id + "\t" + qty + "\t" + price + "\t" + total ;           ...

Define a class MyDate (day, month, year) with methods to accept and display a MyDate object. Accept date as dd, mm, yyyy. Throw user defined exception “InvalidDateException” if the date is invalid. Examples of invalid dates : 03 15 2019, 31 6 2000, 29 2 2021

  import java . io .*; import java . util .*; class InvalidDateException extends Exception {       InvalidDateException ()       {               System . out . println ( "Invalid Date" );       } } class MyDate {       int day , mon , yr ;       void accept ( int d , int m , int y )       {             day = d ;             mon = m ;             yr = y ;       }       void display ()       {             System . out . println ( "Date is valid : " + day + "/" + mon + "/" + yr );       } } class Date {       public static void main ( String args []) throws Exception       {             Scanner sc = new Sca...

Write a Java program to design a screen using Awt that will take a user name and password. If the user name and password are not same, raise an Exception with appropriate message. User can have 3 login chances only. Use clear button to clear the TextFields.

  import java . awt .*; import java . awt . event .*; import javax . swing .*; class InvalidPasswordException extends Exception {       InvalidPasswordException ()       {             System . out . println ( "Username and password is not same" );       } } public class Password extends Frame implements ActionListener {       Label uname , upass ;       TextField nametext ;       TextField passtext , msg ;       Button login , Clear ;       Panel p ;       int attempt = 0 ;       char c = '*' ;             public void login ()       {             p = new Panel ();             uname = new Label ( "Username : " , Label . CENTER );             upass = n...