Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can someone please answer this Java question? I only need the answer for questio

ID: 3859481 • Letter: C

Question

Can someone please answer this Java question?

I only need the answer for question number 5.

thank you.

objectQueue Class // objectQueue. java public class ObjectQueue private Object t item; private int front; private int rear; private int count; public ObjectQueue) f item new Object[l]; front = 0; rear-1i count 0; public boolean isEmpty) t return count : 0; public boolean isFull) f return countitem.length; public void clear) f item new Object [1]: front 0; rear = -1 ; count 0; public void insert (Object o) if (isFull)) resize (2 item. length); (rear+1) % item . length; rear- item[rear]oi ++counti

Explanation / Answer

import java.util.Vector;

import java.util.concurrent.LinkedBlockingQueue;

public class MultilevelFeedbackQueue extends SchedulingQueue {

private volatile LinkedBlockingQueue<Process> queue_RR1;

private volatile LinkedBlockingQueue<Process> queue_RR2;

private volatile LinkedBlockingQueue<Process> queue_FIFO;

private volatile Vector<LinkedBlockingQueue<Process>> _level;

public MultilevelFeedbackQueue(int count_cpu, int qty) {

super(count_cpu, qty);

queue_RR1 = new LinkedBlockingQueue<Process>();

queue_RR2 = new LinkedBlockingQueue<Process>();

queue_FIFO = new LinkedBlockingQueue<Process>();

_level = new Vector<LinkedBlockingQueue<Process>>();

_level.add(queue_FIFO);

_level.add(queue_RR2);

_level.add(queue_RR1);

is_run = true;

}

public void add_process(Process p) {

_level.elementAt(0).add(p);

}

public void remove_process(Process p) {

}

public void run() {

while(true) {

if(is_run) {

_step();

}

}

}

private void _step() {

int _quantum = this._quantum;

int already_used;

Process _proc;

for(int i = _level.size() - 1; i >= 0; i--) {

// retrieving first item

_proc = _level.get(i).peek();

// check process is not there

if(_proc == null) {

continue;

}

already_used = _quantum < _proc.get_burst_time() ? _quantum : _proc.get_burst_time();

_proc.changeBurstTime(-1 * already_used);

if(i == _level.size() - 1) {

//remove process it it is finished

if(_proc.get_burst_time() == 0) {

_level.get(_level.size() - 1).poll();

}

}

else {

_level.get(i).poll();

_level.get(i + 1).offer(_proc);

}

for(Process p : _level.get(i)) {

if(p != _proc) {

p.addWaitTime(already_used);

}

}

}

}

}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

import java.util.Vector;

public abstract class SchedulingQueue implements Runnable {

protected int _quantum;

protected volatile Vector<Process> process_queue;

private Thread[] _processors;

protected boolean is_run;

public abstract void add_process(Process p);

public abstract void remove_process(Process p);

public SchedulingQueue(int count_cpu, int qty) {

is_run = false;

_processors = new Thread[count_cpu];

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

_processors[i] = new Thread(this);

_processors[i].start();

}

process_queue = new Vector<Process>();

_quantum = qty;

}

// calculate total wait time..

public int getTotalWaitTime() {

int totalWaitTime = 0;

for(Process p : process_queue) {

totalWaitTime += p.getWaitTime();

}

return totalWaitTime;

}

public int getTotalTurnaroundTime() {

int totalTurnaround = 0;

for(Process p : process_queue) {

totalTurnaround += p.getTurnaroundTime();

}

return totalTurnaround;

}

public int getProcessCount() {

return process_queue.size();

}

}