Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

package operatingSystems;

import java.util.Scanner;

class Fifo{

public void wait(int person[],int n) {


int waiting[]=new int[n],sum=0;
float average=0;
System.out.println("the waiting time of first in first out is :");
for (int i = 0; i < person.length; i++) {
waiting[i]=sum;
sum+=person[i];
System.out.printf(person[i]+":"+waiting[i]+"\t");
average += waiting[i];

}
System.out.println("Average waiting time is for first in first out
is :"+average);
average = (average/n);
System.out.println(average);
}

public void turnAround(int person[],int n) {


int turn[]=new int[n],sum=0;
float average=0;
System.out.println("the turn time of first in first out is :");
for (int i = 0; i < person.length; i++) {
sum+=person[i];
turn[i]=sum;
System.out.printf("\t"+turn[i]);
average += turn[i];
}
System.out.println("Average turn around time is for first in first out
is :"+sum);
average = average/n;
System.out.println(average);

}
class Priority extends Fifo{

public void sort(int persons[],int n) {


int priorites[]=new int[n],temp;
Scanner input = new Scanner(System.in);
System.out.println("Enter the priorites of the");
for (int i = 0; i < priorites.length; i++) {
System.out.println("persons "+i+":");
priorites[i]=input.nextInt();
}
for (int i = 0; i < priorites.length; i++) {
for (int j = 0; j < priorites.length; j++) {
if(priorites[i]<priorites[j]) {
temp = priorites[i];
priorites[i]=priorites[j];
priorites[j]=temp;
temp = persons[i];
persons[i]=persons[j];
persons[j]=temp;
}
}
}
}
}
class ShortestTask extends Fifo{

public void sort(int persons[],int n) {


int temp;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(persons[i]<persons[j]) {
temp = persons[i];
persons[i]=persons[j];
persons[j]=temp;
}
}
}
}
}
class RoundRobin {
int slicing,sum,x1,x2;
Scanner input = new Scanner(System.in);

void read(int persons[],int n) {


float average1=0,average2=0;
System.out.println("enter the slicing time:");
slicing =input.nextInt();
int wait[]= new int[n];
int turn[]= new int[n];
System.out.println("the waiting time int round robin is ");

for (int i = 0; i < n; i++) {


sum=0;
if (persons[i] % slicing== 0) {
x1 = persons[i] / slicing;
x2 = persons[i] - slicing;
} else {
x1 = (persons[i] / slicing) + 1;
x2 = persons[i]- persons[i] % slicing;
}
for (int j = 0; j < n; j++) {
if (i > j&&i!=j) {
if (persons[j] <= x1 * slicing) {
sum += persons[j];
}
else {
sum += x1 * slicing;
}

} else {
if(i!=j) {
if (persons[j] >= x2 )
sum += x2 ;

else
sum += persons[j];
}
}
}
wait[i]=sum;
turn[i]=sum+persons[i];
average1+=wait[i];
average2+=turn[i];

System.out.println(wait[i]);
}
System.out.println("the turn around time in round roin is :");
for (int i = 0; i < turn.length; i++) {

System.out.println(turn[i]);
}
System.out.println("the average waiting time in round robin
is :"+average1/n);
System.out.println("the average turn time in round robin is :"+average2/n);
}
}

public class First {

public static void main(String[] args) {


Fifo f = new Fifo();
Priority p = new Priority();
ShortestTask s = new ShortestTask();
RoundRobin r = new RoundRobin();
Scanner input = new Scanner(System.in);
int noPersons ;
System.out.println("Enter the no of persons:");
noPersons= input.nextInt();
System.out.println("Enter the persons time");
int persons[]=new int[noPersons];
for (int i = 0; i < persons.length; i++) {
persons[i]=input.nextInt();
}
System.out.println("1.fifo\t2.periority\t3.shoetest task first");

int choice ;
while(true) {
System.out.println("Enter u r choice:");
choice = input.nextInt();
switch(choice){
case 1:f.wait(persons, noPersons);
f.turnAround(persons, noPersons);
break;
case 2:p.sort(persons, noPersons);
p.wait(persons, noPersons);
p.turnAround(persons, noPersons);
break;
case 3:s.sort(persons,noPersons);
s.wait(persons,noPersons);
s.turnAround(persons, noPersons);
break;
case 4:r.read(persons, noPersons);

}
}

You might also like