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...
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...
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...
First-Come, First-Served (FCFS) Scheduling Shortest-Job-Next (SJN) Scheduling Priority Scheduling Shortest Remaining Time Round Robin(RR) Scheduling Multiple-Level...
First-Come, First-Served (FCFS) Scheduling Shortest-Job-Next (SJN) Scheduling Priority Scheduling Shortest Remaining Time Round Robin(RR) Scheduling Multiple-Level Queues Scheduling Provide a timing example of each of the algorithms above. List some processes (at least four) with the appropriate properties for creating a time diagram (such as Process ID, Arrival Time, Burst Time, and Execution Time). Walk through the timing diagram identifying the algorithm you’re using and state which process goes first, which process finishes first, etc.
For Round Robin (RR) Scheduling, What is the arrival time, completion time, burst time, turnaround time,...
For Round Robin (RR) Scheduling, What is the arrival time, completion time, burst time, turnaround time, and the waiting time? discuss these terms further as they pertain to the efficiency of the algorithm as well as properties such as starvation. Pros and Cons of RR
Describe how the Round Robin Scheduling algorithm works. Explain the differences of working procedure between preemptive...
Describe how the Round Robin Scheduling algorithm works. Explain the differences of working procedure between preemptive and non-preemptive version of this algorithm.
A round-robin tournament involving n plays is modeled with digraph D where, for every two distinct...
A round-robin tournament involving n plays is modeled with digraph D where, for every two distinct vertices (players) u and v, either (u,v) is an edge (player u defeats player v) or (v,u) is an edge (player v defeats play u). Prove that if D is acyclic, i.e., no directed cycles, then there always exists a player who has defeated everyone (out-degree is n – 1) and a player who has lost to everyone (in-degree is n – 1).
What is the waiting time and Turnaround time of each process for each of the scheduling...
What is the waiting time and Turnaround time of each process for each of the scheduling algorithms? [12 Marks] Job Arrival Time Burst(msec) Priority A 0 6 3 (Silver) B 1 2 1 (Diamond) C 3 5 3 (Silver) D 5 3 4 (Bronze) E 7 2 2 (Gold) (a) First-Come-First-Served (FCFS) scheduling [2 Marks] (b) Preemptive PRIORITY scheduling [2 Marks] (c) Highest Response Ratio Next (HRRN) scheduling [2 Marks] (d) Round Robin (RR) (quantum = 4) scheduling [2 Marks]...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT