/// <summary> /// Resets the Scheduler to defaults /// </summary> public void Reset() { EventLogger.Clear(); //Clears algorithm storage (queue, etc.) selectedAlgorithm.Reset(); //Reset all process processList.ForEach(i => i.Reset()); //Forward the processes (again...) selectedAlgorithm.Initialize(processList); // Unset process in CPU if there's any set cpu.UnsetProcess(); worktime = 0; turn = 1; elapsed = 1; logCounter = 0; wasted = 0; //Initialize EventLogger and set headers EventLogger.Initialize(); EventLogger.AddEvent("Selected algorithm: " + selectedAlgorithm.GetType().Name); EventLogger.AddEvent("Process Count: " + processList.Count); EventLogger.AddEvent("Processes: "); processList.ForEach(x => EventLogger.AddEvent(x.Process.ToString())); LogCurrentState(); }
/// <summary> /// Constructor of the class /// </summary> /// <param name="list">List of the processes</param> /// <param name="alg">Instance of the chosen algorithm</param> public Scheduler(List <Process> list, SchedulingAlgorithm alg) { // Set PID default value counter = 0; processList = EncapsulateProcesses(list); selectedAlgorithm = alg; // Initialize algorithm with the list of processes selectedAlgorithm.Initialize(processList); cpu = new CPU(); worktime = 0; turn = 1; elapsed = 1; logCounter = 0; wasted = 0; //Initialize EventLogger and set headers EventLogger.Initialize(); EventLogger.AddEvent("Selected algorithm: " + selectedAlgorithm.GetType().Name); EventLogger.AddEvent("Process Count: " + processList.Count); EventLogger.AddEvent("Processes: "); processList.ForEach(x => EventLogger.AddEvent(x.Process.ToString())); LogCurrentState(); }