/// <summary> /// Constructor for OS Core that takes flags which control OS behaviour /// </summary> /// <param name="flags"> the flags to be passed to this operating system</param> public OSCore(OSFlags flags) { schedulingPolicy = flags.schedulingPolicy; RR_Time_Slice = flags.RR_Time_Slice; RR_Time_Slice_Unit = flags.RR_Time_Slice_Unit; priorityPolicy = flags.priorityPolicy; roundRobinType = flags.roundRobinType; useDefaultScheduler = flags.useDefaultScheduler; useSingleCPU = flags.useSingleCPU; allowCPUAffinity = flags.allowCPUAffinity; runWithNoProcesses = flags.runWithNoprocesses; CPUClockSpeed = flags.CPUClockSpeed; suspendOnStateChange_Ready = flags.suspendOnStateChange_Ready; suspendOnPreEmption = flags.suspendOnPreEmption; suspendOnStateChange_Running = flags.suspendOnStateChange_Running; suspendOnStateChange_Waiting = flags.suspendOnStateChange_Waiting; forceKill = flags.forceKill; faultKill = flags.faultKill; osState = flags.osState; scheduler = flags.scheduler; readyQueue = new Queue <SimulatorProcess>(); waitingQueue = new Queue <SimulatorProcess>(); CollectionChanged += OnCollectionChanged; }