예제 #1
0
 /// <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;
 }