Question

In: Computer Science

There are n processes in a queue. Each process has namei and timei. The round-robin scheduling...

There are n processes in a queue. Each process has namei and timei. The round-robin scheduling handles the processes in order. A round-robin scheduler gives each process a quantum (a time slot) and interrupts the process if it is not completed by then. The process is resumed and moved to the end of the queue, then the scheduler handles the next process in the queue.

For example, we have the following queue with the quantum of 100ms.

A(150) - B(80) - C(200) - D(200)

First, process A is handled for 100ms, then the process is moved to the end of the queue with the remaining time (50ms).

B(80) - C(200) - D(200) - A(50)

Next, process B is handled for 80ms. The process is completed with the time stamp of 180ms and removed from the queue.

C(200) - D(200) - A(50)

Your task is to write a program which simulates the round-robin scheduling.

Input

n q
name1 time1
name2 time2
...
namen timen

In the first line the number of processes n and the quantum q are given separated by a single space.

In the following n lines, names and times for the n processes are given. namei and timei are separated by a single space.

Output

For each process, prints its name and the time the process finished in order.

Constraints

  • 1 ≤ n ≤ 100000
  • 1 ≤ q ≤ 1000
  • 1 ≤ timei ≤ 50000
  • 1 ≤ length of namei ≤ 10
  • 1 ≤ Sum of timei ≤ 1000000

Sample Input 1

5 100
p1 150
p2 80
p3 200
p4 350
p5 20

Sample Output 1

p2 180
p5 400
p1 450
p3 550
p4 800

USE JAVA

Solutions

Expert Solution

CODE IN JAVA:

RoundRobin.java file:

import java.util.Scanner;

public class RoundRobin {

   public static void main(String[] args) {

   // creating object to the scanner class
  
       Scanner sc = new Scanner(System.in);
      
       //taking input from the user
      
       System.out.print("Enter the number of processes and quantum:");
      
       int n = sc.nextInt();
      
       int q = sc.nextInt();
  
       int processTime[] = new int[n];
      
       String processName[] = new String[n];
      
       boolean status[] = new boolean[n];
      
       String str= sc.nextLine();
      
       System.out.print("Enter the process name and process time:");
      
       for(int i=0;i<n;i++) {
      
       processName[i]= sc.nextLine();
      
           processTime[i] = sc.nextInt();
          
           status[i] = false;
          
           str= sc.nextLine();
  
       }
  
       //applying round robin algorithm
      
       boolean flag = true;
      
       int totalTime = 0 ;
      
       for(int i=0;i<n;i++) {
      
       if(status[i]) {
      
           flag = true;
      
       }
      
       else {
      
           if(processTime[i]<=q) {
          
               totalTime += processTime[i];
              
               processTime[i] = 0 ;
              
               flag = false;
              
               status[i] = true;
              
               System.out.println(processName[i]+"\t"+totalTime);
          
           }
      
           else {
          
               processTime[i] -= q ;
              
               totalTime += q ;
              
               flag = false;
      
           }
      
       }
      
       if(i==n-1)
      
           i=-1;
      
       for(boolean b:status) {
      
           if(b==false)
      
               flag = false;
      
       }
      
       if(flag)
      
           break;
      
       }
  
   }

}

OUTPUT:


Related Solutions

There are n processes in a queue. Each process has namei and timei. The round-robin scheduling...
There are n processes in a queue. Each process has namei and timei. The round-robin scheduling handles the processes in order. A round-robin scheduler gives each process a quantum (a time slot) and interrupts the process if it is not completed by then. The process is resumed and moved to the end of the queue, then the scheduler handles the next process in the queue. For example, we have the following queue with the quantum of 100ms. A(150) - B(80)...
The following processes are being scheduled using a preemptive, priority-based, round-robin scheduling algorithm. Each process is...
The following processes are being scheduled using a preemptive, priority-based, round-robin scheduling algorithm. Each process is assigned a numerical priority,with a higher number indicating a higher relative priority. The scheduler will execute the highest-priority process. For processes with the same priority, a round-robin scheduler will be used with a time quantum of 10 units. If a process is preempted by a higher-priority process, the preempted process is placed at the end of the queue. Process            Burst Time Arrival Time...
Java round robin scheduling algorithm: 10 processes arrive at the same time and the time that...
Java round robin scheduling algorithm: 10 processes arrive at the same time and the time that each requires is random. Show that the output of the original list and list as it changes all the way until nothing is left in the array. Using only main method and not any additional static methods and Only using scanner, arrays, and for looper while/do while loops. No array lists or other methods in java.
Question 5 The following processes are being scheduled using a preemptive, priority-based, round-robin scheduling algorithm. Each...
Question 5 The following processes are being scheduled using a preemptive, priority-based, round-robin scheduling algorithm. Each process is assigned a numerical priority,with a higher number indicating a higher relative priority. The scheduler will execute the highest-priority process. For processes with the same priority, a round-robin scheduler will be used with a time quantum of 10 units. If a process is preempted by a higher-priority process, the preempted process is placed at the end of the queue. Process          Burst Time      Arrival Time   Priority P1                15            0            8...
A variation of the round-robin scheduler is the regressive round-robin scheduler. This scheduler assigns each process...
A variation of the round-robin scheduler is the regressive round-robin scheduler. This scheduler assigns each process a time quantum and a priority. The initial value of a time quantum is 50 milliseconds. However, every time a process has been allocated the CPU and uses its entire time quantum (does not block for I/O), 10 milliseconds is added to its time quantum, and its priority level is boosted. (The time quantum for a process can be increased to a maximum of...
Solve the the process scheduling problem using the round robin FCFS algorithm studied in assignment 7....
Solve the the process scheduling problem using the round robin FCFS algorithm studied in assignment 7. The program will show the order of execution of the processing and will provide the average waiting time for the following scenarios: a) Time quantum =1 b) Time Quantum=3 Use the table below to draw the Gantt Chart (Spread sheet or by hand). Process ID Arrival Time Burst Time 1 0 4 2 1 5 3 2 2 4 3 1 5 4 6...
Compare First Come First Served Scheduling, and Round Robin Scheduling. In your comparison, include discussions of...
Compare First Come First Served Scheduling, and Round Robin Scheduling. In your comparison, include discussions of their potential advantages and disadvantages, and which scheduling scheme performs better under what job load conditions. (You need to give proper reasons.)
In C, write a program that will simulate the operations of the following Round-Robin Interactive scheduling...
In C, write a program that will simulate the operations of the following Round-Robin Interactive scheduling algorithm. It should implement threads for the algorithm plus the main thread using a linked list to represent the list of jobs available to run. Each node will represent a Job with the following information: int ProcessID int time time needed to finish executing The thread representing the scheduler algorithm should continue running until all jobs end. This is simulated using the time variable...
An operating system uses the Round Robin (RR) without priority CPU scheduling algorithm, with a quantum...
An operating system uses the Round Robin (RR) without priority CPU scheduling algorithm, with a quantum = 4. Consider the following set of processes in this OS, with the length of the CPU burst time given in milliseconds, and the shown priority. The processes are assumed to have arrived in the order P1, P2, P3, P4, P5, all at time 0. Process Burst Time Priority P1 5 2 P2 10 5 P3 4 1 P4 6 4 P5 9 3...
An operating system uses the Round Robin (RR) without priority CPU scheduling algorithm, with a quantum...
An operating system uses the Round Robin (RR) without priority CPU scheduling algorithm, with a quantum = 4. Consider the following set of processes in this OS, with the length of the CPU burst time given in milliseconds, and the shown priority. The processes are assumed to have arrived in the order P1, P2, P3, P4, P5, all at time 0. Process Burst Time Priority P1 5 2 P2 10 5 P3 4 1 P4 6 4 P5 9 3...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT