public RR(double lambda, List <double> t, List <int> k, int n, double quantum, int clusterNum, double a, double b, List <double> percent, double tetta, double eps, double crit) { queue = new ListQueue <Task>(); ListQueue <Task> listQueue = new ListQueue <Task>(); Random random = new Random(); int id = 0; for (int i = 0; i < t.Count; i++) { double time = 0; double timeDeadline = k.ElementAt(i) * t.ElementAt(i); for (int j = 0; j < n; j++) { time += generateEvent(lambda); double timeTaskInit = time; double trust = random.NextDouble(); listQueue.Enqueue(new Task(timeTaskInit, timeDeadline, t.ElementAt(i), id, trust)); id++; } } // Надо добавить идентификаторы что бы потом удобно переносить while (listQueue.Count != 0) { double initTime = double.MaxValue; int ptr = 0; for (int i = 0; i < listQueue.Count; i++) { if (listQueue.ElementAt(i).getTimeInit() < initTime) { ptr = i; initTime = listQueue.ElementAt(i).getTimeInit(); } } queue.Enqueue(listQueue.ElementAt(ptr)); listQueue.RemoveAt(ptr); } listQ = new ListQueue <Task>(); ready = new ListQueue <Task>(); //overdue = new ListQueue<Task>(); this.quantum = quantum; cluster = new Cluster(clusterNum, percent, tetta, eps, crit); this.a = a; this.b = b; }
public RR(ListQueue <Task> queue) { this.queue = queue; }
public EDF(ListQueue <Task> queue) { this.queue = queue; }