class CPU: def __init__(self, memory, pcb,interruptionManager=None): self.memory = memory self.pcb = pcb self.instructionManager = InstructionManager() def terminated(self): return self.pcb.getPc() == self.pcb.getNumberOfInstructions() def fetch_instruction(self): #instruction fetch return self.memory.get(self.pcb.pc + self.pcb.basedir) def incPc(self): self.getPcb().setPc(self.getPcb().getPc() + 1) def setPCB(self,pcb): self.pcb = pcb def execute(self): if(not self.pcb.terminated()): instruction = self.fetch_instruction() self.instructionManager.manage(instruction,self.pcb) self.incPc() else: #todo self.instructionManager.manage(Instruction(InstructionType.End),self.pcb) ############################ def getMemory(self): self.memory def getPcb(self): self.pcb
def __init__(self, memory, pcb,interruptionManager=None): self.memory = memory self.pcb = pcb self.instructionManager = InstructionManager()