Example #1
0
 /// <summary>
 /// Constructor for process Scheduler
 /// </summary>
 /// <param name="flags"> the flags to use to create this scheduler</param>
 public Scheduler(SchedulerFlags flags)
 {
     readyQueue             = flags.readyQueue ?? new Queue <SimulatorProcess>();
     waitingQueue           = flags.waitingQueue ?? new Queue <SimulatorProcess>();
     runningProcess         = flags.runningProcess;
     schedulingPolicy       = flags.schedulingPolicies;
     RR_TimeSlice           = flags.RR_TimeSlice;
     timeSliceUnit          = flags.TimeSliceUnit;
     defaultScheduler       = flags.defaultScheduler;
     RR_Priority_Policy     = flags.RR_Priority_Policy;
     RR_Type                = flags.RR_Type;
     usingSingleCPU         = flags.usingSingleCPU;
     allowCPUAffinity       = flags.allowCPUAffinity;
     runningWithNoProcesses = flags.runningWithNoProcesses;
     cpuClockSpeed          = flags.cpuClockSpeed;
     suspended              = false;
     issuedLotteryTickets   = flags.issuedLotteryTickets;
     drawnLotteryTickets    = flags.drawnLotteryTickets;
     core = flags.core;
     CollectionChanged += OnCollectionChanged;
     CreateBackgroundWorker();
     //BindingOperations.EnableCollectionSynchronization(readyQueue,thisLock);
 }
Example #2
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;
 }