本文整理匯總了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