def main(): thread = threading.Thread(target=recv_package) thread.start() ### Leer cuantos sensores hay conectados para poder realizar el handshake(malloc mágico) ### Crear barrera con contador = cuantos sensores hay ### Crear cola para cada thread ### Crear semaforo para cada cola de rocolectores ### Crear threads recolectores (se envía de parámetro su cola y su identificador respectivo) #abre el archivo csv en modo lectura interface_queue = queue.Queue(queue_size) collectors = Collectors() collectors_info = collectors.initializer(interface_queue) memoryManager = MemoryManager() plotter = Plotter() #Por cuestiones de comodidad se inicializa acá pero no se usa posteriormente. interface = Interface() #plotter.initializer(interface) interface.initializer(interface_queue, collectors_info, memoryManager, plotter) while True: with open('identificadores.csv', 'r') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') next(csv_reader) next(csv_reader) semaphore.acquire() #cierra el mutex, saca el paquete respectivo de la cola, y lo vuelve a abrir lock.acquire package = packet_queue.get() lock.release #Si hubo un timeout, el servidor termina su ejecución; si no, imprime el paquete. timeout = package[5] if (timeout == 0): #Multiplexor: Envia el paquete a su cola correspondiente #print(package) for line in collectors_info: plot_data = [package[0], package[4]] #print(plot_data) """print(line[0], package[1]) print(line[1], package[2]) print(line[2], package[3])""" if (line[0] == package[1] and line[2] == package[2] and line[1] == package[3]): #print("entre") line[4].acquire() line[3].put(plot_data) line[4].notify() line[4].release() else: print("cliente caido") break
def setUp(self): self.hdd = HDD(10) self.fs = self.hdd.generate_file_system() self.instruction1 = InstructionIO() self.instruction2 = InstructionCPU() self.instruction3 = InstructionIO() self.instructionList1 = [self.instruction1, self.instruction2] self.instructionList2 = [ self.instruction1, self.instruction2, self.instruction3 ] self.program1 = Program(self.instructionList1, "AProgram") self.program2 = Program(self.instructionList2, "BProgram") self.fs.add_file("AProgram", self.program1) self.fs.add_file("BProgram", self.program2) self.file1 = self.fs.get_program("AProgram") self.file2 = self.fs.get_program("BProgram") self.pcb1 = PCB(0, 2, BlockHolder(self.file1)) self.pcb2 = PCB(0, 3, BlockHolder(self.file2)) self.memoryManager = MemoryManager() self.memoryManager.set_as_ca(FirstFit())
def requestMemory(self, functionName): neccesaryMemory = self.memoryMap[functionName] self.tempMemory = MemoryManager( int(neccesaryMemory[3]), int(neccesaryMemory[4]), int(neccesaryMemory[5]), int(neccesaryMemory[0]), int(neccesaryMemory[1]), int(neccesaryMemory[2]), self.counter.tempInt, self.counter.tempDouble, self.counter.tempBoolean, self.counter.localInt, self.counter.localDouble, self.counter.localBoolean) #memory added to counter self.counter.tempInt += int(neccesaryMemory[3]) self.counter.tempDouble += int(neccesaryMemory[4]) self.counter.tempBoolean += int(neccesaryMemory[5]) self.counter.localInt += int(neccesaryMemory[0]) self.counter.localDouble += int(neccesaryMemory[1]) self.counter.localBoolean += int(neccesaryMemory[2])
def __init__(self): self.variables = {} self.shadowed = {} self.Memory = MemoryManager() self.error = False
import ply.yacc as yacc from config import CONST_PREFIX, DYNAMIC_PREFIX, ITERATOR_PREFIX, STATIC_PREFIX from generator.assign import assign from generator.condition import (con_eq, con_ge, con_geq, con_le, con_leq, con_neq) from generator.conditional import if_then, if_then_else from generator.expression import div, minus, mod, plus, times, value from generator.io import read, write from generator.loop import do_while, for_downto, for_to, while_do from lexer import tokens # noqa: F401 from memory import MemoryManager memory_manager = MemoryManager() def p_program_declarations_commands(p): '''program : DECLARE declarations BEGIN commands END''' p[0] = p[4] + ['HALT'] def p_program_commands(p): '''program : BEGIN commands END''' p[0] = p[2] + ['HALT'] def p_declarations_declarations_id(p): '''declarations : declarations COMMA ID''' memory_manager.add_variable(p[3], p.lexer.lineno)