Polymorphic scheduler

Automaticly polymorphic scheduler. It will automatically adapt to your scheduling requests, though at a slight overhead due to the indirection and statistics gathering. If you know what is your optimal scheduler, please choose this one. If the access pattern varies throughout the simulation, this scheduler is perfect for you. It will choose between the HeapSet and Minimal List scheduler.

Warning

Barely tested, certainly not with distribution and relocation!!! Use with caution!!!*

class schedulers.schedulerAuto.SchedulerAuto(models, epsilon, total_models)[source]

The polymorphic scheduler class

__init__(models, epsilon, total_models)[source]

Constructor

Parameters:
  • models – the models to schedule
  • epsilon – the allowed deviation
getImminent(time)[source]

Returns the imminent models for the provided time

Parameters:time – time to check for
massReschedule(reschedule_set)[source]

Reschedule all models

Parameters:reschedule_set – the set of models to reschedule
readFirst()[source]

Fetch the time of the first model

Returns:(time, age) – time of the first scheduled model
schedule(model)[source]

Schedule a model

Parameters:model – the model to schedule
swapSchedulerTo(scheduler)[source]

Swap the current subscheduler to the provided one. If the scheduler is already in use, no change happens.

Parameters:scheduler – the class to switch to
unschedule(model)[source]

Unschedule a model

Parameters:model – the mode to unschedule