コード例 #1
0
ファイル: Kernel.py プロジェクト: Ramshell/soRepo
class Kernel(object):
    '''
    @summary: the abstraction of the operative system
    '''


    def __init__(self, clock,programLoader,imanager,delivery,devices=[]):
        self.clock = clock
        self.programLoader = programLoader
        self.delivery = delivery
        self.imanager = imanager
        self.devices = devices
        
    def startUp(self):
        self.clock.start()
        for device in self.devices:
            device.start()
        
    def run(self,programName,priority=0,args=[]):
        self.pid = self.programLoader.loadProcess(programName,priority,args)
        return self.pid
    
    def ps(self):
        return self.programLoader.getPcbTable().getPS()
    
    def kill(self,pid):
        self.imanager.kill(pid)
    
    def installNewDevice(self,deviceName,deviceLogger):
        self.device = Device(deviceName,self.imanager)
        self.device.setLogger(deviceLogger)
        self.delivery.newDevice(self.device)
        self.devices.append(self.device)
        
    def manual(self,programName):
        return self.programLoader.manual(programName)
        
    def in_disk(self, programName):
        return self.programLoader.in_disk(programName)
        

        

        
        
コード例 #2
0
class Test(unittest.TestCase):


    def setUp(self):
        self.pcb1 = Mock()
        self.pcb2 = Mock()
        self.interruptor = Mock()
        self.logger = Mock()
        self.printLine1 = InstIO("Impresion 1", 0)
        self.printLine2 = InstIO("Impresion 2", 0)
        self.queue = Queue()
        self.device = Device("Printer", self.interruptor, self.queue)  # 0 equals to the device cod printer
        self.device.setLogger(self.logger)
        
    def test_when_process_is_called_the_instruccion_runs_and_ioDone_is_sent(self):
        self.packageOne = [self.pcb1, self.printLine1]
        self.device.proccess(self.packageOne)  # arrange
        
        verify(self.interruptor).ioDone(self.pcb1)  # assert
コード例 #3
0
class Kernel(object):
    '''
    @summary: the abstraction of the operative system
    '''
    def __init__(self, clock, programLoader, imanager, delivery, devices=[]):
        self.clock = clock
        self.programLoader = programLoader
        self.delivery = delivery
        self.imanager = imanager
        self.devices = devices

    def startUp(self):
        self.clock.start()
        for device in self.devices:
            device.start()

    def run(self, programName, priority=0, args=[]):
        self.pid = self.programLoader.loadProcess(programName, priority, args)
        return self.pid

    def ps(self):
        return self.programLoader.getPcbTable().getPS()

    def kill(self, pid):
        self.imanager.kill(pid)

    def installNewDevice(self, deviceName, deviceLogger):
        self.device = Device(deviceName, self.imanager)
        self.device.setLogger(deviceLogger)
        self.delivery.newDevice(self.device)
        self.devices.append(self.device)

    def manual(self, programName):
        return self.programLoader.manual(programName)

    def in_disk(self, programName):
        return self.programLoader.in_disk(programName)