Skip to main content

Write an OS program to implement FCFS Disk Scheduling algorithm.

 



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

int main()
{
    int queue[20],n,head,i,j,k,seek=0,max,diff;
    printf("\nEnter the max range of disk : ");
    scanf("%d",&max);
    printf("Enter the size of queue request : ");
    scanf("%d",&n);
    printf("Enter the queue of disk positions to be read : ");
    for (i=1;i<=n;i++)
        scanf("%d",&queue[i]);
    printf("Enter the initial head position : ");
    scanf("%d",&head);
    queue[0]=head;
    for (j=0;j<=n-1;j++)
    {
         diff = abs(queue[j+1]-queue[j]);
         seek+=diff;
         printf("\nDisk head moves from %d to %d with head movement of %d",queue[j],queue[j+1],diff);
    }
    printf("\n\nTotal Head Movement is %d\n",seek);
    return 0;
}

/**
ty56@pc16:~/ty56/ty_OS2_56/Assignment 3$ cc fcfs.c
ty56@pc16:~/ty56/ty_OS2_56/Assignment 3$ ./a.out

Enter the max range of disk : 200
Enter the size of queue request : 8
Enter the queue of disk positions to be read : 98
183
41
122
14
124
65
67
Enter the initial head position : 53

Disk head moves from 53 to 98 with head movement of 45
Disk head moves from 98 to 183 with head movement of 85
Disk head moves from 183 to 41 with head movement of 142
Disk head moves from 41 to 122 with head movement of 81
Disk head moves from 122 to 14 with head movement of 108
Disk head moves from 14 to 124 with head movement of 110
Disk head moves from 124 to 65 with head movement of 59
Disk head moves from 65 to 67 with head movement of 2

Total Head Movement is 632


**/

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...