def __init__(self): Process.__init__(self) self._signals = { 'kill' : SimEvent('kill'), 'finish' : SimEvent('finish'), } self._finished = False
def __init__(self, name, sim, task): Process.__init__(self, name=name, sim=sim) # number of the action self.q = 0 # corresonding pycpa task self.task = task # the signal used to wake up the activation event self.signal_event = SimEvent(sim=sim) # workload left to consume self.workload = task.wcet # active segments of the execution of the form: [(0,1), (3,9)] self.exec_windows = list() # last recent start of a execution segment self.recent_window_start = None # actual response time self.response_time = 0 # start time self.start_time = 0 # finishing time self.finish_time = 0
def __init__(self, cnode, index, configs): StorageNode.__init__(self, cnode, index, configs) #txns that are not yet granted locks, in FCFS order self.lockingQueue = [] self.waitingSet = set([]) self.nextEvent = SimEvent() self.ts = 0
def block(self, thread, state): """Block a thread for this object.""" assert thread not in self.blockedThreads, \ '%s, %s, (%s)' %(self.ID, thread.ID, ','.join( [str(t.ID) for t in self.blockedThreads])) event = SimEvent() self.blockQueue.append(thread) self.blockedThreads[thread] = (state, event) return event
def run(self, aseed): """ PEM """ seed(aseed) self.dooropen = SimEvent("Door Open", sim=self) self.counter = Resource(1, name="Clerk", sim=self) doorman = Doorman(sim=self) self.activate(doorman, doorman.openthedoor()) source = Source(sim=self) self.activate(source, source.generate(number=5, rate=0.1), at=0.0) self.simulate(until=maxTime)
def getWaitMsgEvents(self, tags): events = [] if not (isinstance(tags, list) or isinstance(tags, tuple)): tags = (tags, ) for tag in tags: if tag not in self.rtiNotifiers: event = SimEvent() self.rtiNotifiers[tag] = event event = self.rtiNotifiers[tag] events.append(event) return events
def __init__(self, sim, name="SPP", tasks=list()): assert sim != None Process.__init__(self, name=name, sim=sim) self.tasks = tasks self.pending = list() # list of simtasks self.simtasks = list() self.arrival_event = SimEvent('Arrival Event', sim=sim)
def __init__(self, cnode, ID, configs): IDable.__init__(self, '%s/sn%s' % (cnode.ID.split('/')[0], ID)) Thread.__init__(self) RTI.__init__(self, self.ID) self.logger = logging.getLogger(self.__class__.__name__) self.system = cnode.system self.configs = configs self.cnode = cnode self.maxNumTxns = configs.get('max.num.txns.per.storage.node', 1024) self.pool = Resource(self.maxNumTxns, name='pool', unitName='thread') self.groups = {} #{gid : group} self.newTxns = [] self.txnsRunning = set([]) self.shouldClose = False self.monitor = Profiler.getMonitor(self.ID) self.M_POOL_WAIT_PREFIX = '%s.pool.wait' % self.ID self.M_TXN_RUN_PREFIX = '%s.txn.run' % self.ID self.M_NUM_TXNS_RUN_KEY = '%s.num.txns' % self.ID self.runningThreads = set([]) self.closeEvent = SimEvent() self.newTxnEvent = SimEvent()
def __init__(self, system, ID, configs): IDable.__init__(self, 'zone%s/cn' % ID) Thread.__init__(self) RTI.__init__(self, self.ID) self.logger = logging.getLogger(self.__class__.__name__) self.system = system self.snodes = [] self.configs = configs self.groupLocations = {} self.txnsRunning = set([]) self.shouldClose = False self.closeEvent = SimEvent() #paxos entities self.paxosPRunner = None self.paxosAcceptor = None self.paxosLearner = None
def __init__(self, sim, name="SPNP", tasks=list()): assert sim != None Process.__init__(self, name=name, sim=sim) # list of pending activations self.pending = list() # list of blocker activations (usually one lower priority activation) self.blockers = list() # list of simtasks self.simtasks = list() # signals a new activation self.arrival_event = SimEvent('Arrival Event', sim=sim)
def __init__(self, interval, name=None, until=infinite, drift=('fixed', 0)): Process.__init__(self) self.interval = interval if name is not None: eventname = name else: eventname = "a_SimEvent" self.event = SimEvent(eventname) self.until = until try: key, mean, cfg = drift except ValueError: key, mean = drift cfg = {} lb = cfg.get('lb', 0); ub = cfg.get('ub', interval) if lb < 0: raise ValueError('drift lb = %s >= 0' %lb) if ub > interval: raise ValueError('drift ub = %s < %s = interval' %interval) cfg['lb'] = lb; cfg['ub'] = ub self.rgen = RandInterval.get(key, mean, cfg)
def __init__(self, name): Process.__init__(self, name=name) self.doneSignal = SimEvent()