当前位置: 首页>>代码示例>>Python>>正文


Python Timer.initializeThread方法代码示例

本文整理汇总了Python中Timer.initializeThread方法的典型用法代码示例。如果您正苦于以下问题:Python Timer.initializeThread方法的具体用法?Python Timer.initializeThread怎么用?Python Timer.initializeThread使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Timer的用法示例。


在下文中一共展示了Timer.initializeThread方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: import Timer [as 别名]
# 或者: from Timer import initializeThread [as 别名]
class CPU:

    def __init__(self, aKernel):
        self.kernel = aKernel
        self.pc = 0
        self.pcbCurrent = None
        self.timer = Timer(self.kernel)
        
    def initializeThread(self):
        self.timer.initializeThread()
        
    def fetchInstruction(self,): #lo hace en modo usuario VERIFICAR
        if self.hayPCB():
            if self.pcbCurrent.isProgramInMemory():
                self.runInstruccion()              
            else:
                self.kernel.mmu.saveInMemory(self.pcbCurrent)#carga el programa en memoria
                self.runInstruccion()
        else:
            self.kernel.manageIRQ.nilInterrupt()
            
    def hayPCB(self):
        return self.pcbCurrent != None          


    def runInstruccion(self):
        if not self.isLastInstruccion():
            nextInstruccion = self.readInstruccion()
            if self.nextIsIO(nextInstruccion): # Validar (si es una instruccion de I/O) para hacer una IRQ
                self.iOInterrupt(self.pcbCurrent, nextInstruccion) #EL PC LO INCREMENTA LUEGO DE EL HANDLER IO EJECUTE LA INSTRUCCION
            else:
                self.runCPUInstrucction(nextInstruccion)

    def runCPUInstrucction(self, nextInstruccion):
        self.pcbCurrent.changeStatus(State.RUNNING)
        nextInstruccion.execute()
        self.pcbCurrent.increasePc()
        self.pcbCurrent.changeStatus(State.READY) #Analizar si es necesario
    
    def readInstruccion(self):
        instruccion=self.kernel.mmu.read(self.pcbCurrent.nextDirInstruccion())
        return instruccion

    def nextIsIO(self, instruccion):
        return instruccion.isIO()

    def isLastInstruccion(self):
        if  self.pcbCurrent.isLastInstruccion():
            self.killInterrupt()
            return True
        else: return False
                   
    def iOInterrupt(self, aPCB , nextInstruccion):
        self.kernel.manageIRQ.iOInterrupt(aPCB, nextInstruccion)

    def killInterrupt(self):
        self.kernel.manageIRQ.killInterrupt()
    
    def setPCB(self , aPCB):
        self.pcbCurrent = aPCB
        
    def getPCB(self):
        return self.pcbCurrent
开发者ID:loiaconopablo,项目名称:so-proyecto,代码行数:65,代码来源:CPU.py


注:本文中的Timer.initializeThread方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。