Ejemplo n.º 1
0
Archivo: CPU.py Proyecto: guidopj/TP_SO
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
Ejemplo n.º 2
0
Archivo: CPU.py Proyecto: guidopj/TP_SO
 def __init__(self, memory, pcb,interruptionManager=None):
     self.memory = memory
     self.pcb = pcb
     self.instructionManager = InstructionManager()