Thursday, 13 October 2016

FCFS Disk Sheduling

import java.util.*;
public class Diskfcfs
{
  public static void main(String args[]){
Scanner s=new Scanner(System.in);
int n,tot=0;
System.out.print("Enter no of processes :");
n=s.nextInt();
int []arr=new int[n];
for(int i=0;i<n;i++){
arr[i]=s.nextInt();
}
System.out.print("Enter Head Position :");
int head=s.nextInt();
for(int i=0;i<arr.length;i++){
System.out.println("Head From="+head+"  To="+arr[i]+" Differnce ="+(Math.abs(head-arr[i])));
tot+=Math.abs(head-arr[i]);
head=arr[i];
}
System.out.println("Total movement="+tot);
}
}

Tuesday, 11 October 2016

Shortest Seek Time First (SSTF) in java

import java.util.*;
class sstf{
public static int FindSmallest (int [] arr1){

       int index = 0;
       int min = arr1[index];
       for (int i=1; i<arr1.length; i++){
     
           if (arr1[i] < min && arr1[i]!=-1){
               min = arr1[i];
               index = i;
           }else if(min==-1){
              min=arr1[i];
              index=i;
}
     
}

       return index ;

}
public static void main(String args[]){
Scanner se=new Scanner(System.in);
System.out.print("Enter number of elements=");
int n=se.nextInt();
int arr[]=new int[n];
int diff[]=new int[n];
int copy[]=new int[n];
for(int i=0;i<n;i++){
arr[i]=se.nextInt();
copy[i]=arr[i];
}
System.out.print("Enter Head=");
int head=se.nextInt();
System.out.println();
for(int i=0;i<arr.length;i++){
for(int j=0;j<copy.length;j++){
if(diff[j]==-1){
diff[j]=-1;
}else{
diff[j]=Math.abs(head-copy[j]);
}
}
int ind=FindSmallest(diff);
System.out.println("Head Traveresed from="+head+"to="+copy[ind]+"    Difference="+(Math.abs(head-copy[ind])));
head=copy[ind];
diff[ind]=-1;
}
}
}



Monday, 5 September 2016

Round Robin Algorithm in java

import java.util.*;

public class roundrobin
{
  public static void main(String args[]){
Scanner s=new Scanner(System.in);
int wait=0,n,cp=0;
float avgt=0f,avgw=0f;
int inc=0,time,counter=0,temp;
System.out.println("Enter no of processes :");
n=s.nextInt();
int data[]=new int[n];
datacontainer[] p=new datacontainer[n];
for(int i=0;i<n;i++)
{
   p[i]=new datacontainer();
}
for(int i=0;i<n;i++){
System.out.println("Burst TIME :"+(i+1));
p[i].btime=s.nextInt();
data[i]=p[i].btime;
}
System.out.print("Enter Time Q=");
time=s.nextInt();
System.out.println("\n"+"   "+"id"+"       "+"bt"+" "+"wt"+"       "+"tr");
for(int turn=0;turn<n;turn++){
wait=0;
inc=0;

for(int c=0;c<n;c++){
p[c].btime=data[c];
}
while(p[turn].btime!=0){
if(turn==n-1){
temp=p[turn].btime;
while(temp!=0){
if(temp<time){
temp=0;
}else{
temp=temp-time;
}
counter+=1;
}
for(int val=0;val<n-1;val++){
for(int cl=1;cl<=counter;cl++){
if(p[val].btime!=0){
if(p[val].btime==time || p[val].btime<time){
wait+=p[val].btime;
p[val].btime=0;
}else{
p[val].btime=p[val].btime-time;
wait+=time;
}
}
}
}
p[turn].wtime=wait;
for(int c=0;c<n;c++){
p[c].btime=data[c];
}
System.out.println("    "+ (turn+1)+ "       "+p[turn].btime+"  "+p[turn].wtime+"       "+(p[turn].wtime+p[turn].btime));
for(int i=0;i<n;i++){
avgw+=p[i].wtime;
avgt+=p[i].wtime+p[i].btime;
}
System.out.println("\n\nAverage Turn around time="+(avgt/n));
System.out.println("Average waiting time="+(avgw/n));
System.exit(0);
}
else{
if(inc==turn){
if(p[turn].btime<time){
p[turn].btime=0;
}else{
p[turn].btime=p[turn].btime-time;
}
inc=inc+1;
if(inc==n){
inc=0;
}
}else{
if(p[inc].btime<time && p[inc].btime!=0){
wait+=p[inc].btime;
p[inc].btime=0;
inc=inc+1;
}else{
if(p[inc].btime!=0){
cp=1;
wait+=time;
}
if(cp==1){
p[inc].btime=p[inc].btime-time;
cp=p[inc].btime;
}
inc=inc+1;
}
}
if(inc==n){
inc=0;
}
}
}
p[turn].wtime=wait;
for(int c=0;c<n;c++){
p[c].btime=data[c];
}
System.out.println("    "+ (turn+1)+ "       "+p[turn].btime+"  "+p[turn].wtime+"       "+(p[turn].wtime+p[turn].btime));
}

}
}
class datacontainer {
  int id,btime,atime,wtime,ttime;
}