Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

TURN INTO USER INPUT ,CPU SCHEDULING PRIORITY SCHEDULING JAVA PROGRAMMING import java.util.*; class Process { int pid; // Process ID int bt; // CPU Burst

TURN INTO USER INPUT ,CPU SCHEDULING PRIORITY SCHEDULING JAVA PROGRAMMING

import java.util.*;

class Process

{

int pid; // Process ID

int bt; // CPU Burst time required

int priority; // Priority of this process

Process(int pid, int bt, int priority)

{

this.pid = pid;

this.bt = bt;

this.priority = priority;

}

public int prior() {

return priority;

}

}

public class GFG

{

// Function to find the waiting time for all

// processes

public void findWaitingTime(Process proc[], int n,

int wt[])

{

// waiting time for first process is 0

wt[0] = 0;

// calculating waiting time

for (int i = 1; i < n ; i++ )

wt[i] = proc[i - 1].bt + wt[i - 1] ;

}

// Function to calculate turn around time

public void findTurnAroundTime( Process proc[], int n,

int wt[], int tat[])

{

// calculating turnaround time by adding

// bt[i] + wt[i]

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

tat[i] = proc[i].bt + wt[i];

}

// Function to calculate average time

public void findavgTime(Process proc[], int n)

{

int wt[] = new int[n], tat[] = new int[n], total_wt = 0, total_tat = 0;

// Function to find waiting time of all processes

findWaitingTime(proc, n, wt);

// Function to find turn around time for all processes

findTurnAroundTime(proc, n, wt, tat);

// Display processes along with all details

System.out.print(" Processes Burst time Waiting time Turn around time ");

// Calculate total waiting time and total turn

// around time

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

{

total_wt = total_wt + wt[i];

total_tat = total_tat + tat[i];

System.out.print(" " + proc[i].pid + "\t\t" + proc[i].bt + "\t " + wt[i] + "\t\t " + tat[i] + " ");

}

System.out.print(" Average waiting time = "

+(float)total_wt / (float)n);

System.out.print(" Average turn around time = "+(float)total_tat / (float)n);

}

public void priorityScheduling(Process proc[], int n)

{

// Sort processes by priority

Arrays.sort(proc, new Comparator() {

@Override

public int compare(Process a, Process b) {

return b.prior() - a.prior();

}

});

System.out.print("Order in which processes gets executed ");

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

System.out.print(proc[i].pid + " ") ;

findavgTime(proc, n);

}

// Driver code

public static void main(String[] args)

{

GFG ob=new GFG();

int n = 3;

Process proc[] = new Process[n];

proc[0] = new Process(1, 10, 2);

proc[1] = new Process(2, 5, 0);

proc[2] = new Process(3, 8, 1);

ob.priorityScheduling(proc, n);

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

How to find if any no. is divisble by 4 or not ?

Answered: 1 week ago