本文整理汇总了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