def setUp(self): self.delivery = IODelivery() self.device1 = Mock() self.device2 = Mock() self.device3 = Mock() self.delivery.newDevice(self.device1) # Impresora self.delivery.newDevice(self.device2) # Pantalla print(self.delivery.numberOfDevices())
def setUp(self): # miscellaneous self.semaphore = Condition() self.disk = HardDisk() self.comparator = lambda pcb1, pcb2: pcb1.getPriority() > pcb2.getPriority() # the greater, the better self.readyQueue = OwnHeap(self.semaphore, self.comparator) # hardware self.memory = RAM(1000) self.mmu = MMU(1,self.memory) self.ioDelivery = IODelivery() self.progLoader = ProgramLoader(self.memory, self.disk, self.readyQueue,self.mmu) self.imanager = InterruptorManager() self.cpu = CPU(self.memory, self.imanager, self.semaphore,self.mmu) self.scheduler = Scheduler(self.cpu, self.readyQueue , 5, self.semaphore) # devices self.spooler = Device('printer', self.imanager) self.screen = Device('screen', self.imanager) self.ioDelivery.newDevice(self.spooler) self.ioDelivery.newDevice(self.screen) # im self.imanager.setScheduler(self.scheduler) self.imanager.setDisk(self.disk) self.imanager.setMmu(self.mmu) self.imanager.setIODelivery(self.ioDelivery) # loading programs self.ioInstruction = InstIO('directory', 0) self.cpuInstruction = InstCPU('1+1') self.prog1 = Program('ls') self.prog2 = Program('pwd') self.prog1.addInstruction(self.cpuInstruction) self.prog2.addInstruction(self.ioInstruction) self.disk.setProgram(self.prog1) self.disk.setProgram(self.prog2)
def __build(self, queue, scheduler): # miscellaneous self.ioDelivery = IODelivery() #hardware self.progLoader = ProgramLoader(self.ram, self.disk, queue, self.mmu) # InterruptorManager self.imanager.setScheduler(scheduler) self.imanager.setDisk(self.disk) self.imanager.setMmu(self.mmu) self.imanager.setIODelivery(self.ioDelivery) self.imanager.setSemaphore(self.condition) self.imanager.setPcbTable(self.progLoader.getPcbTable()) self.imanager.setProgramLoader(self.progLoader) self.loggerCpu = CpuFileLogger("../log/cpu_log", self.console) self.cpu.setLogger(self.loggerCpu) self.clock = Clock(self.cpu) return Kernel(self.clock, self.progLoader, self.imanager, self.ioDelivery)