mirror of
https://github.com/zach-sb/COMP2240-Assignment1.git
synced 2024-07-02 12:04:00 +10:00
Begin LTR
This commit is contained in:
parent
0f36bb2440
commit
dfd34ddb2c
123
Scheduler.java
123
Scheduler.java
@ -3,11 +3,11 @@ import java.io.*;
|
|||||||
|
|
||||||
public class Scheduler {
|
public class Scheduler {
|
||||||
//Address of File name relative to code. Replace with request for filename?
|
//Address of File name relative to code. Replace with request for filename?
|
||||||
String fileName = "datafiles/datafile2.txt";
|
String fileName = "datafiles/datafile1.txt";
|
||||||
|
|
||||||
LinkedList<Process> processList = new LinkedList<Process>();
|
LinkedList<Process> processList = new LinkedList<Process>();
|
||||||
LinkedList<Integer> randomNum = new LinkedList<>();
|
LinkedList<Integer> randomNum = new LinkedList<>();
|
||||||
|
int randomNumConsumed = -1; //Counter to track which "random numbers" have been used thus far.
|
||||||
|
|
||||||
//Initialise Dispatcher time variable
|
//Initialise Dispatcher time variable
|
||||||
int disp;
|
int disp;
|
||||||
@ -49,6 +49,34 @@ public class Scheduler {
|
|||||||
}
|
}
|
||||||
System.out.println("End Random.");
|
System.out.println("End Random.");
|
||||||
|
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
|
algorithmLTR();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -155,4 +183,95 @@ public class Scheduler {
|
|||||||
//e.printStackTrace(); //Optional, shows more data.
|
//e.printStackTrace(); //Optional, shows more data.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void algorithmFCFS()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void algorithmSRT()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void algorithmFBV()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void algorithmLTR()
|
||||||
|
{
|
||||||
|
// counter: used to track if we’ve found the winner yet
|
||||||
|
int counter = 0;
|
||||||
|
int totalTickets = 0;
|
||||||
|
int winner = -1;
|
||||||
|
|
||||||
|
//count the total number of tickets in play
|
||||||
|
for (int i = 0; i < processList.size() ; i++)
|
||||||
|
{
|
||||||
|
totalTickets += processList.get(i).getTickets();
|
||||||
|
}
|
||||||
|
|
||||||
|
// winner: use some call to a random number generator to
|
||||||
|
// get a value, between 0 and the total # of tickets
|
||||||
|
int winnerValue = returnRandomNum(totalTickets);
|
||||||
|
|
||||||
|
for (int i = 0; i < processList.size(); i++)
|
||||||
|
{
|
||||||
|
counter = processList.get(i).getTickets();
|
||||||
|
|
||||||
|
if(counter > winnerValue)
|
||||||
|
{
|
||||||
|
winner = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(winner == -1)
|
||||||
|
{
|
||||||
|
System.out.println("No winner");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
System.out.println("Winner: " + processList.get(winner).getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// current: use this to walk through the list of jobs
|
||||||
|
|
||||||
|
//node_t *current = head;
|
||||||
|
/*
|
||||||
|
while (current)
|
||||||
|
{
|
||||||
|
counter = counter + current->tickets;
|
||||||
|
if (counter > winner)
|
||||||
|
{
|
||||||
|
break; // found the winner
|
||||||
|
}
|
||||||
|
|
||||||
|
current = current->next;
|
||||||
|
// 'current' is the winner: schedule it...
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
public int returnRandomNum(int totalTickets)
|
||||||
|
{
|
||||||
|
int randomValue = 0;
|
||||||
|
|
||||||
|
|
||||||
|
//Loop back to begining. Probably could remove each consumed random number from the linked list.... but I don't want to right now.
|
||||||
|
if((randomNumConsumed+1) >= randomNum.size())
|
||||||
|
{
|
||||||
|
randomNumConsumed = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
randomNumConsumed += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
randomValue = randomNum.get(randomNumConsumed) % totalTickets;
|
||||||
|
|
||||||
|
return randomValue;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user