mirror of
https://github.com/zach-sb/COMP2240-Assignment1.git
synced 2024-07-02 12:04:00 +10:00
SRT nearly working (Need to fix waiting)
This commit is contained in:
parent
0805a79ceb
commit
b0b108aed6
@ -13,6 +13,9 @@ public class Process {
|
|||||||
|
|
||||||
private int remainingTime;
|
private int remainingTime;
|
||||||
|
|
||||||
|
public int hold = -1;
|
||||||
|
public int unhold = -1;
|
||||||
|
|
||||||
|
|
||||||
//Constructors
|
//Constructors
|
||||||
public Process(){
|
public Process(){
|
||||||
|
|||||||
40
SRT.java
40
SRT.java
@ -64,53 +64,51 @@ public class SRT {
|
|||||||
System.out.println("SRT:");
|
System.out.println("SRT:");
|
||||||
int processesFinished = 0;
|
int processesFinished = 0;
|
||||||
boolean startNew = true;
|
boolean startNew = true;
|
||||||
|
int shortestProcess = -1;
|
||||||
|
int lastRunProcess = -1;
|
||||||
//timeStep++;
|
//timeStep++;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(startNew)
|
|
||||||
{
|
|
||||||
timeStep = timeStep+disp;
|
|
||||||
startNew = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
checkForArrivals();
|
checkForArrivals();
|
||||||
|
shortestProcess = findShortestProcess();
|
||||||
|
|
||||||
if(waitingQueue.size()>0)
|
if(waitingQueue.size()>0)
|
||||||
{
|
{
|
||||||
if(waitingQueue.getFirst().isDone())
|
if(lastRunProcess!=shortestProcess)
|
||||||
{
|
{
|
||||||
waitingQueue.removeFirst();
|
System.out.println("T"+timeStep+": "+waitingQueue.get(shortestProcess).getId());
|
||||||
|
timeStep = timeStep+disp;
|
||||||
|
}
|
||||||
|
|
||||||
|
runProcessTick(waitingQueue.get(shortestProcess));
|
||||||
|
|
||||||
|
if(waitingQueue.get(shortestProcess).isDone())
|
||||||
|
{
|
||||||
|
waitingQueue.remove(shortestProcess);
|
||||||
processesFinished++;
|
processesFinished++;
|
||||||
startNew = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
runShortestProcess();
|
|
||||||
}
|
}
|
||||||
|
lastRunProcess = shortestProcess;
|
||||||
}
|
}
|
||||||
|
|
||||||
}while(processesFinished!=processListFromFile.size());
|
}while(processesFinished!=processListFromFile.size());
|
||||||
|
|
||||||
//...
|
|
||||||
printResults();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runShortestProcess()
|
private int findShortestProcess()
|
||||||
{
|
{
|
||||||
int pos = 0;
|
int listPos = 0;
|
||||||
int remaining = waitingQueue.get(0).getRemainingTime();
|
int remaining = waitingQueue.get(0).getRemainingTime();
|
||||||
|
|
||||||
for(int i = 1; i<waitingQueue.size(); i++)
|
for(int i = 1; i<waitingQueue.size(); i++)
|
||||||
{
|
{
|
||||||
if(waitingQueue.get(i).getRemainingTime()<remaining)
|
if(waitingQueue.get(i).getRemainingTime()<remaining)
|
||||||
{
|
{
|
||||||
pos = i;
|
listPos = i;
|
||||||
remaining = waitingQueue.get(i).getRemainingTime();
|
remaining = waitingQueue.get(i).getRemainingTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
runProcessTick(waitingQueue.get(pos));
|
return listPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runProcessTick(Process input)
|
private void runProcessTick(Process input)
|
||||||
@ -133,7 +131,7 @@ public class SRT {
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < processListFromFile.size(); i++)
|
for (int i = 0; i < processListFromFile.size(); i++)
|
||||||
{
|
{
|
||||||
System.out.println("T"+processListFromFile.get(i).getStartTime()+": "+processListFromFile.get(i).getId());
|
//System.out.println("T"+processListFromFile.get(i).getStartTime()+": "+processListFromFile.get(i).getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("\nProcess \tTurnaround Time \tWaiting Time");
|
System.out.println("\nProcess \tTurnaround Time \tWaiting Time");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user