當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。