def __init__(self, n): self.mutex = Mutex() self.servings = 0 self.full_pot = Semaphore(0) self.empty_pot = Semaphore(0) self.barrier1 = SimpleBarrier(n) self.barrier2 = SimpleBarrier(n)
def __init__(self, n, n_savages): self.servings = n self.mutex = Mutex() self.empty_pot = Semaphore(0) self.full_pot = Semaphore(0) self.barrier1 = SimpleBarrier(n_savages) self.barrier2 = SimpleBarrier(n_savages)
def __init__(self): self.oxygen = 0 self.hydrogen = 0 self.mutex = Mutex() self.oxyQueue = Semaphore(0) self.hydroQueue = Semaphore(0) self.barrier = Barrier(3)
def __init__(self): self.mutex = Mutex() self.dealersQ = Semaphore() self.officersQ = Semaphore() self.officerCounter = 0 self.dealerCounter = 0 self.barrier = SimpleBarrier(4)
def __init__(self, capacity): self.free_space = Semaphore(capacity) self.items = Semaphore(0) self.mutex = Mutex() self.produced = 0 self.consumed = 0 self.closed = False
def __init__(self): self.hackers = 0 self.serfs = 0 self.mutex = Mutex() self.hackers_queue = Semaphore(0) self.serfs_queue = Semaphore(0) self.barrier = SimpleBarrier(4)
def __init__(self): self.mutex = Semaphore(1) self.oxygenCount = 0 self.hydrogenCount = 0 self.oxyQueue = Semaphore(1) self.hydroQueue = Semaphore(2) self.barrier = Barrier(3)
def __init__(self): self.mutex = Mutex() self.mutex2 = Mutex() self.servings = 0 self.full_pot = Semaphore(0) self.empty_pot = Semaphore(0) self.barrier1 = SimpleBarrier(number_of_savages) self.barrier2 = SimpleBarrier(number_of_savages)
def __init__(self): # binarny semafor self.mutex = Semaphore(1) self.oxygenQueue = Semaphore(0) self.hydrogenQueue = Semaphore(0) self.oxygen = 0 self.hydrogen = 0 self.barrier = Barrier(3)
def __init__(self, n): self.mutex = Mutex() self.free_chairs = n self.queue = [] self.customer = Semaphore(0) self.barber = Semaphore(0) self.customerDone = Semaphore(0) self.barberDone = Semaphore(0)
def __init__(self, N): self.N = N self.customers = 0 self.queue = [] self.mutex = Mutex() self.customer = Semaphore(0) self.customerDone = Semaphore(0) self.barberDone = Semaphore(0)
def __init__(self, c, m): self.c = c self.m = m self.board_queue = Semaphore(0) self.unboard_queue = Semaphore(0) self.barrier = SimpleBarrier(c) self.changed = Semaphore(0) self.loading_area = [Semaphore(0) for i in range(m)] self.unloading_area = [Semaphore(0) for i in range(m)]
def __init__(self, customer_capacity): self.N = customer_capacity self.customers = 0 self.mutex = Mutex() self.barber = Semaphore(0) self.customer = Semaphore(0) self.barber_done = Semaphore(0) self.customer_done = Semaphore(0)
def __init__(self, n, c): self.mutex = Mutex() self.chef_mutex = Mutex() self.servings = 0 self.num_of_chefs = c self.full_pot = Semaphore(0) self.empty_pot = Semaphore(0) self.barrier1 = SimpleBarrier(n) self.barrier2 = SimpleBarrier(n) self.chef_barrier2 = SimpleBarrier(c) self.chef_barrier = SimpleBarrier(c + 1)
def init(): accessData = Semaphore(1) turniket = Semaphore(1) ls_monitor = Lightswitch() ls_cidlo = Lightswitch() validData = Event() for monitor_id in range(2): Thread(monitor, monitor_id, turniket, validData, ls_monitor, accessData) for cidlo_id in range(11): Thread(cidlo, cidlo_id, turniket, validData, ls_cidlo, accessData)
def __init__(self): self.mutex = Mutex() self.cooking = Mutex() self.refill = Mutex() self.servings = 0 self.active_cooks = 0 self.cooks_done = 0 self.full_pot = Semaphore(0) self.empty_pot = Semaphore(0) self.barrier1 = SimpleBarrier(N) self.barrier2 = SimpleBarrier(N) self.pot_ready = Semaphore(0)
def __init__(self, n_savages=5, n_cooks=3): self.servings = 0 self.mutex = Mutex() self.SERVINGS_NEEDED = n_savages self.full_pot = Semaphore(0) self.empty_pot = Semaphore(0) self.barrier1 = SimpleBarrier(n_savages) self.barrier2 = SimpleBarrier(n_savages) self.cookLS = CookLS() self.cookBarrier1 = SimpleBarrier(n_cooks) self.cookBarrier2 = SimpleBarrier(n_cooks)
def __init__(self): self.lightswitch_sensors = Lightswitch() self.lightswitch_operators = Lightswitch() self.written_data_by_sensors = Event() self.without_operators = Semaphore(1) self.without_sensors = Semaphore(1) self.simple_barrier = SimpleBarrier(3) self.operator = Operator(self.lightswitch_operators, self.without_operators, self.without_sensors, self.simple_barrier) self.sensor = Sensor(self.lightswitch_sensors, self.written_data_by_sensors, self.without_sensors, self.without_operators, self.simple_barrier)
def customer(shared, cid): barber = Semaphore(0) while True: sleep(randint(9, 10) / 100) shared.mutex.lock() if shared.customers == shared.N: balk(cid) shared.mutex.unlock() continue print(f"customer {cid} wait for...") shared.queue.append(barber) shared.customers += 1 shared.mutex.unlock() shared.customer.signal() barber.wait() getHairCut(cid) shared.customerDone.signal() shared.barberDone.wait() shared.mutex.lock() shared.customers -= 1 shared.mutex.unlock()
def __init__(self, numberOfThreads): self.numberOfThreads = numberOfThreads self.actualPosition = 1 self.fibannociList = [0, 1] self.semaphoreList = [] for _ in range(numberOfThreads): self.semaphoreList.append(Semaphore(0)) self.semaphoreList[0].signal()
def __init__(self, resources, smokers): self.agentSem = Semaphore(1) self.res = { resources[i]: { 'sem': Semaphore(0), 'val': 0, } for i in range(len(resources)) } self.res['mutex'] = Mutex() self.smo = { k: { 'sem': Semaphore(0), 'need': v, } for k, v in smokers.items() }
def __init__(self, n): self.N = n self.counter = 0 self.fibonacci = [0, 1] + [0] * n self.threads = [0] * (n + 1) self.mutex = Mutex() self.event = Event() self.event.signal() for j in range(n + 1): self.threads[j] = Semaphore(0) self.threads[0].signal(1)
def init(x): accessData = Semaphore(1) turniket = Semaphore(1) ls_monitor = Lightswitch() ls_cidlo = Lightswitch() validData = Event() barrier_1 = Barrier(x) barrier_2 = Barrier(x) for monitor_id in range(x): Thread(monitor, monitor_id, turniket, validData, ls_monitor, accessData, barrier_1, barrier_2) for cidlo_id in range(2): # Cidla P a T Thread(cidlo, cidlo_id, turniket, validData, ls_cidlo, accessData, [10, 20]) # Cidlo H Thread(cidlo, 2, turniket, validData, ls_cidlo, accessData, [20, 25])
def __init__(self, size, adt): self.adt = adt self.size = size self.counter = 0 self.fibonacci = list() self.fibonacci.append(0) self.fibonacci.append(1) if adt == "semaphore": self.semaphore = Semaphore(1) elif adt == "event": self.event = Event()
def __init__(self, count): self.n = count self.mutex = Mutex() self.events = [0] * count for j in range(count): self.events[j] = Event() self.events[0].signal() self.array = [0, 1] + [0] * count self.sem = [0] * count for j in range(count): self.sem[j] = Semaphore(0) self.sem[0].signal()
def main(): forks = [Semaphore(1) for _ in range(PHIL_NUM)] footman = Semaphore(PHIL_NUM - 1) # phils = [Thread(phil, forks, footman, id) for id in range(PHIL_NUM)] lefties = randint(1, PHIL_NUM - 1) phil_type = [0] * lefties + [1] * (PHIL_NUM - lefties) phils = list() for phil_id in range(PHIL_NUM): if phil_type[phil_id]: phils.append( Thread(phil, forks, phil_id, phil_id, ((phil_id + 1) % PHIL_NUM))) else: phils.append( Thread(phil, forks, phil_id, ((phil_id + 1) % PHIL_NUM), phil_id)) for p in phils: p.join()
def __init__(self, n): self.N = n self.counter = 0 self.mutex = Mutex() self.turnstile = Semaphore(0)
def __init__(self, N): self.N = N self.C = 0 self.M = Mutex() self.T = Semaphore(0)
def __init__(self, N): self.mutex = Mutex() self.capacity = N self.counter = 0 self.sem = Semaphore()
def __init__(self): self.tobacco = Semaphore(0) self.paper = Semaphore(0) self.match = Semaphore(0) self.agentSem = Semaphore(1)