Exemplo n.º 1
0
class PCBTest(unittest.TestCase):

    #Arrange
    def setUp(self):
        self.hdd = HDD(10)
        self.fs = self.hdd.generate_file_system()
        self.instruction1 = InstructionIO()
        self.instruction2 = InstructionCPU()
        self.instructionList1 = [self.instruction1, self.instruction2]
        self.program1 = Program(self.instructionList1, "AProgram")
        self.fs.add_file("AProgram", self.program1)
        self.file1 = self.fs.get_program("AProgram")
        self.pcb = PCB(0, 2, BlockHolder(self.file1))
        self.mm = MemoryManager()
        self.mm.set_as_ca(FirstFit())
        self.mm.write(self.pcb)

    def test_whenIHaveAPCBAndItsIncremented_thenIHaveAPCBWithOneMoreInstructionIndex(self):
        self.pcb.increment()
        self.assertEqual(self.pcb.get_pc(), 3)

    def test_whenIHaveAPCBAndItsPriorityItsChanged_thenItsDifferent(self):
        self.pcb.set_priority(PCBPriorities().getPriorities().LOW)
        self.pcb.increase_priority()
        self.assertEqual(self.pcb._priority, PCBPriorities().getPriorities().MEDIUM)
Exemplo n.º 2
0
class PCBTest(unittest.TestCase):

    #Arrange
    def setUp(self):
        self.hdd = HDD(10)
        self.fs = self.hdd.generate_file_system()
        self.instruction1 = InstructionIO()
        self.instruction2 = InstructionCPU()
        self.instructionList1 = [self.instruction1, self.instruction2]
        self.program1 = Program(self.instructionList1, "AProgram")
        self.fs.add_file("AProgram", self.program1)
        self.file1 = self.fs.get_program("AProgram")
        self.pcb = PCB(0, 2, BlockHolder(self.file1))
        self.mm = MemoryManager()
        self.mm.set_as_ca(FirstFit())
        self.mm.write(self.pcb)

    def test_whenIHaveAPCBAndItsIncremented_thenIHaveAPCBWithOneMoreInstructionIndex(
            self):
        self.pcb.increment()
        self.assertEqual(self.pcb.get_pc(), 3)

    def test_whenIHaveAPCBAndItsPriorityItsChanged_thenItsDifferent(self):
        self.pcb.set_priority(PCBPriorities().getPriorities().LOW)
        self.pcb.increase_priority()
        self.assertEqual(self.pcb._priority,
                         PCBPriorities().getPriorities().MEDIUM)
Exemplo n.º 3
0
class TestScheduler(unittest.TestCase):
    # Arrange
    def setUp(self):
        self.pcb1 = PCB(3, 5, 10)
        self.pcb2 = PCB(2, 5, 10)
        self.pcb3 = PCB(1, 5, 10)
        self.scheduler = Scheduler()

    def test_whenISetTheSchedulerPolicyAsFifo_thenIThePCBsAsThePriorityStates(
            self):
        self.scheduler.set_as_fifo()
        self.scheduler.add(self.pcb1)
        self.scheduler.add(self.pcb2)
        self.scheduler.add(self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb1)
        self.assertEquals(self.scheduler.next(), self.pcb2)
        self.assertEquals(self.scheduler.next(), self.pcb3)

    def test_whenISetTheSchedulerPolicyAsPriority_thenIThePCBsAsThePriorityStates(
            self):
        self.scheduler.set_as_pq()
        self.pcb1.set_priority(PCBPriorities().getPriorities().LOW)
        self.pcb2.set_priority(PCBPriorities().getPriorities().MEDIUM)
        self.pcb3.set_priority(PCBPriorities().getPriorities().HIGH)
        self.scheduler.add(self.pcb1)
        self.scheduler.add(self.pcb2)
        self.scheduler.add(self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb2)
        self.assertEquals(self.scheduler.next(), self.pcb1)

    def test_whenISetTheSchedulerPolicyAsRR_thenIThePCBsAsThePriorityStates(
            self):
        self.scheduler.set_as_rr(5)
        self.scheduler.add(self.pcb1)
        self.scheduler.add(self.pcb2)
        self.scheduler.add(self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb1)
        self.assertEquals(self.scheduler.next(), self.pcb2)
        self.assertEquals(self.scheduler.next(), self.pcb3)
Exemplo n.º 4
0
class TestScheduler(unittest.TestCase):
    # Arrange
    def setUp(self):
        self.pcb1 = PCB(3, 5, 10)
        self.pcb2 = PCB(2, 5, 10)
        self.pcb3 = PCB(1, 5, 10)
        self.scheduler = Scheduler()

    def test_whenISetTheSchedulerPolicyAsFifo_thenIThePCBsAsThePriorityStates(self):
        self.scheduler.set_as_fifo()
        self.scheduler.add(self.pcb1)
        self.scheduler.add(self.pcb2)
        self.scheduler.add(self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb1)
        self.assertEquals(self.scheduler.next(), self.pcb2)
        self.assertEquals(self.scheduler.next(), self.pcb3)

    def test_whenISetTheSchedulerPolicyAsPriority_thenIThePCBsAsThePriorityStates(self):
        self.scheduler.set_as_pq()
        self.pcb1.set_priority(PCBPriorities().getPriorities().LOW)
        self.pcb2.set_priority(PCBPriorities().getPriorities().MEDIUM)
        self.pcb3.set_priority(PCBPriorities().getPriorities().HIGH)
        self.scheduler.add(self.pcb1)
        self.scheduler.add(self.pcb2)
        self.scheduler.add(self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb2)
        self.assertEquals(self.scheduler.next(), self.pcb1)

    def test_whenISetTheSchedulerPolicyAsRR_thenIThePCBsAsThePriorityStates(self):
        self.scheduler.set_as_rr(5)
        self.scheduler.add(self.pcb1)
        self.scheduler.add(self.pcb2)
        self.scheduler.add(self.pcb3)
        self.assertEquals(self.scheduler.next(), self.pcb1)
        self.assertEquals(self.scheduler.next(), self.pcb2)
        self.assertEquals(self.scheduler.next(), self.pcb3)