Beispiel #1
0
    def __init__(self, setupWindow, values):
        super(SimulatorWindow, self).__init__()
        self.setWindowTitle("Round-Robin simulator")

        self.setupWindow = setupWindow

        left = QVBoxLayout()
        self.waitingProcessesList = QListWidget()
        self.waitingLabel = QLabel('Waiting: 0')
        left.addWidget(self.waitingLabel)
        left.addWidget(self.waitingProcessesList)

        middle = QVBoxLayout()
        self.readyProcessesList = QListWidget()
        self.readyLabel = QLabel('Ready')
        middle.addWidget(self.readyLabel)
        middle.addWidget(self.readyProcessesList)

        right = QVBoxLayout()
        self.labels = []
        self.labels.append(QLabel('life time'))
        self.labels.append(QLabel('runs'))
        self.labels.append(QLabel('time to create'))
        self.labels.append(QLabel('finished'))

        right.addStretch(1)

        for label in self.labels:
            label.setFont(QFont('Lucida Console', 16))
            right.addWidget(label)

        right.addStretch(1)

        layout = QHBoxLayout()
        layout.addLayout(left)
        layout.addLayout(middle)
        layout.addLayout(right)
        self.setLayout(layout)

        self.processesHandler = ProcessesHandler(parent=self,
                                                 quantum=values[0],
                                                 maxLifeTime=values[1],
                                                 maxPerMinute=values[2],
                                                 chanceToBeIoBound=values[3],
                                                 cicleDuration=values[4] /
                                                 1000.0)

        self.processesHandler.runCompleted.connect(self.updateInfos)
        self.processesHandler.start()
    def __init__(self, setupWindow, values):
        super(SimulatorWindow, self).__init__()
        self.setWindowTitle("Round-Robin simulator")

        self.setupWindow = setupWindow

        left = QVBoxLayout()
        self.waitingProcessesList = QListWidget()
        self.waitingLabel = QLabel('Waiting: 0')
        left.addWidget(self.waitingLabel)
        left.addWidget(self.waitingProcessesList)

        middle = QVBoxLayout()
        self.readyProcessesList = QListWidget()
        self.readyLabel = QLabel('Ready')
        middle.addWidget(self.readyLabel)
        middle.addWidget(self.readyProcessesList)

        right = QVBoxLayout()
        self.labels = []
        self.labels.append(QLabel('life time'))
        self.labels.append(QLabel('runs'))
        self.labels.append(QLabel('time to create'))
        self.labels.append(QLabel('finished'))

        right.addStretch(1)

        for label in self.labels:
            label.setFont(QFont('Lucida Console', 16))
            right.addWidget(label)

        right.addStretch(1)


        layout = QHBoxLayout()
        layout.addLayout(left)
        layout.addLayout(middle)
        layout.addLayout(right)
        self.setLayout(layout)


        self.processesHandler = ProcessesHandler(parent=self,
                                                quantum=values[0],
                                                maxLifeTime=values[1],
                                                maxPerMinute=values[2],
                                                chanceToBeIoBound=values[3],
                                                cicleDuration=values[4]/1000.0)

        self.processesHandler.runCompleted.connect(self.updateInfos)
        self.processesHandler.start()
Beispiel #3
0
class SimulatorWindow(QWidget):
    def __init__(self, setupWindow, values):
        super(SimulatorWindow, self).__init__()
        self.setWindowTitle("Round-Robin simulator")

        self.setupWindow = setupWindow

        left = QVBoxLayout()
        self.waitingProcessesList = QListWidget()
        self.waitingLabel = QLabel('Waiting: 0')
        left.addWidget(self.waitingLabel)
        left.addWidget(self.waitingProcessesList)

        middle = QVBoxLayout()
        self.readyProcessesList = QListWidget()
        self.readyLabel = QLabel('Ready')
        middle.addWidget(self.readyLabel)
        middle.addWidget(self.readyProcessesList)

        right = QVBoxLayout()
        self.labels = []
        self.labels.append(QLabel('life time'))
        self.labels.append(QLabel('runs'))
        self.labels.append(QLabel('time to create'))
        self.labels.append(QLabel('finished'))

        right.addStretch(1)

        for label in self.labels:
            label.setFont(QFont('Lucida Console', 16))
            right.addWidget(label)

        right.addStretch(1)

        layout = QHBoxLayout()
        layout.addLayout(left)
        layout.addLayout(middle)
        layout.addLayout(right)
        self.setLayout(layout)

        self.processesHandler = ProcessesHandler(parent=self,
                                                 quantum=values[0],
                                                 maxLifeTime=values[1],
                                                 maxPerMinute=values[2],
                                                 chanceToBeIoBound=values[3],
                                                 cicleDuration=values[4] /
                                                 1000.0)

        self.processesHandler.runCompleted.connect(self.updateInfos)
        self.processesHandler.start()

    def closeEvent(self, event):
        self.processesHandler.stop()
        self.setupWindow.simulatorIsOpened = False

    def updateInfos(self):
        self.updateLabels()
        self.updateLists()

    def updateLists(self):
        self.readyProcessesList.clear()
        items = [str(p) for p in self.processesHandler.ready]
        self.readyProcessesList.addItems(items)

        self.waitingProcessesList.clear()
        items = [str(p) for p in self.processesHandler.waiting]
        self.waitingProcessesList.addItems(items)

    def updateLabels(self):
        processesReady = len(self.processesHandler.ready)
        self.readyLabel.setText("Ready: %d" % processesReady)

        processesWaiting = len(self.processesHandler.waiting)
        self.waitingLabel.setText("Waiting: %d" % processesWaiting)

        try:
            lifeTime = str(self.processesHandler.currentProcess.lifeTime)
        except:
            lifeTime = ""
        self.labels[0].setText("Current process' life time: " + lifeTime)

        qnt = str(self.processesHandler.ciclesInCurrentProcess)
        self.labels[1].setText('Cicles in current process: ' + qnt)

        seconds = self.processesHandler.secondsSinceLastCreation
        self.labels[2].setText("Seconds since last creation:%7.2f" % seconds)

        finished = str(self.processesHandler.processesFinished)
        self.labels[3].setText('Processes finished: ' + finished)
Beispiel #4
0
class SimulatorWindow(QWidget):
    def __init__(self, setupWindow, values):
        super(SimulatorWindow, self).__init__()
        self.setWindowTitle("Round-Robin simulator")

        self.setupWindow = setupWindow

        left = QVBoxLayout()
        self.waitingProcessesList = QListWidget()
        left.addWidget(QLabel('Waiting'))
        left.addWidget(self.waitingProcessesList)

        right = QVBoxLayout()
        self.readyProcessesList = QListWidget()
        right.addWidget(QLabel('Ready'))
        right.addWidget(self.readyProcessesList)

        top = QHBoxLayout()
        top.addLayout(left)
        top.addLayout(right)

        bottom = QVBoxLayout()
        self.labels = []
        self.labels.append(QLabel('current process'))
        self.labels.append(QLabel('runs'))
        self.labels.append(QLabel('time to create'))
        self.labels.append(QLabel('finished'))
        for label in self.labels:
            label.setFont(QFont('Lucida Console', 20))
            bottom.addWidget(label)

        layout = QVBoxLayout()
        layout.addLayout(top)
        layout.addLayout(bottom)
        self.setLayout(layout)

        self.processesHandler = ProcessesHandler(parent=self,
                                                 quantum=values[0],
                                                 maxLifeTime=values[1],
                                                 maxPerMinute=values[2],
                                                 chanceToBeIoBound=values[3],
                                                 cicleDuration=values[4] /
                                                 1000.0)

        self.processesHandler.runCompleted.connect(self.updateInfos)
        self.processesHandler.start()

    def closeEvent(self, event):
        self.processesHandler.stop()
        self.setupWindow.simulatorIsOpened = False

    def updateInfos(self):
        self.readyProcessesList.clear()
        for p in self.processesHandler.ready:
            self.readyProcessesList.addItem(str(p))

        self.waitingProcessesList.clear()
        for p in self.processesHandler.waiting:
            self.waitingProcessesList.addItem(str(p))

        processName = str(self.processesHandler.currentProcess)
        self.labels[0].setText('Current process: ' + processName)

        number = str(self.processesHandler.howManyRunsInCurrentProcess)
        self.labels[1].setText('Runs in current process: ' + number)

        seconds = str(self.processesHandler.secondsSinceLastCreation)
        self.labels[2].setText('Seconds since last creation: ' + seconds)

        finished = str(self.processesHandler.processesFinished)
        self.labels[3].setText('Total processes finished: ' + finished)
class SimulatorWindow(QWidget):
    def __init__(self, setupWindow, values):
        super(SimulatorWindow, self).__init__()
        self.setWindowTitle("Round-Robin simulator")

        self.setupWindow = setupWindow

        left = QVBoxLayout()
        self.waitingProcessesList = QListWidget()
        left.addWidget(QLabel('Waiting'))
        left.addWidget(self.waitingProcessesList)

        right = QVBoxLayout()
        self.readyProcessesList = QListWidget()
        right.addWidget(QLabel('Ready'))
        right.addWidget(self.readyProcessesList)

        top = QHBoxLayout()
        top.addLayout(left)
        top.addLayout(right)

        bottom = QVBoxLayout()
        self.labels = []
        self.labels.append(QLabel('current process'))
        self.labels.append(QLabel('runs'))
        self.labels.append(QLabel('time to create'))
        self.labels.append(QLabel('finished'))
        for label in self.labels:
            label.setFont(QFont('Lucida Console', 20))
            bottom.addWidget(label)

        layout = QVBoxLayout()
        layout.addLayout(top)
        layout.addLayout(bottom)
        self.setLayout(layout)

        self.processesHandler = ProcessesHandler(parent=self,
                                                quantum=values[0],
                                                maxLifeTime=values[1],
                                                maxPerMinute=values[2],
                                                chanceToBeIoBound=values[3],
                                                cicleDuration=values[4]/1000.0)

        self.processesHandler.runCompleted.connect(self.updateInfos)
        self.processesHandler.start()

    def closeEvent(self, event):
        self.processesHandler.stop()
        self.setupWindow.simulatorIsOpened = False

    def updateInfos(self):
        self.readyProcessesList.clear()
        for p in self.processesHandler.ready:
            self.readyProcessesList.addItem(str(p))

        self.waitingProcessesList.clear()
        for p in self.processesHandler.waiting:
            self.waitingProcessesList.addItem(str(p))

        processName = str(self.processesHandler.currentProcess)
        self.labels[0].setText('Current process: ' + processName)

        number = str(self.processesHandler.howManyRunsInCurrentProcess)
        self.labels[1].setText('Runs in current process: ' + number)

        seconds = str(self.processesHandler.secondsSinceLastCreation)
        self.labels[2].setText('Seconds since last creation: ' + seconds)

        finished = str(self.processesHandler.processesFinished)
        self.labels[3].setText('Total processes finished: ' + finished)
class SimulatorWindow(QWidget):
    def __init__(self, setupWindow, values):
        super(SimulatorWindow, self).__init__()
        self.setWindowTitle("Round-Robin simulator")

        self.setupWindow = setupWindow

        left = QVBoxLayout()
        self.waitingProcessesList = QListWidget()
        self.waitingLabel = QLabel('Waiting: 0')
        left.addWidget(self.waitingLabel)
        left.addWidget(self.waitingProcessesList)

        middle = QVBoxLayout()
        self.readyProcessesList = QListWidget()
        self.readyLabel = QLabel('Ready')
        middle.addWidget(self.readyLabel)
        middle.addWidget(self.readyProcessesList)

        right = QVBoxLayout()
        self.labels = []
        self.labels.append(QLabel('life time'))
        self.labels.append(QLabel('runs'))
        self.labels.append(QLabel('time to create'))
        self.labels.append(QLabel('finished'))

        right.addStretch(1)

        for label in self.labels:
            label.setFont(QFont('Lucida Console', 16))
            right.addWidget(label)

        right.addStretch(1)


        layout = QHBoxLayout()
        layout.addLayout(left)
        layout.addLayout(middle)
        layout.addLayout(right)
        self.setLayout(layout)


        self.processesHandler = ProcessesHandler(parent=self,
                                                quantum=values[0],
                                                maxLifeTime=values[1],
                                                maxPerMinute=values[2],
                                                chanceToBeIoBound=values[3],
                                                cicleDuration=values[4]/1000.0)

        self.processesHandler.runCompleted.connect(self.updateInfos)
        self.processesHandler.start()

    def closeEvent(self, event):
        self.processesHandler.stop()
        self.setupWindow.simulatorIsOpened = False

    def updateInfos(self):
        self.updateLabels()
        self.updateLists()

    def updateLists(self):
        self.readyProcessesList.clear()
        items = [str(p) for p in self.processesHandler.ready]
        self.readyProcessesList.addItems(items)

        self.waitingProcessesList.clear()
        items = [str(p) for p in self.processesHandler.waiting]
        self.waitingProcessesList.addItems(items)

    def updateLabels(self):
        processesReady = len(self.processesHandler.ready)
        self.readyLabel.setText("Ready: %d" % processesReady)

        processesWaiting = len(self.processesHandler.waiting)
        self.waitingLabel.setText("Waiting: %d" % processesWaiting)

        try:
            lifeTime = str(self.processesHandler.currentProcess.lifeTime)
        except:
            lifeTime = ""
        self.labels[0].setText("Current process' life time: " + lifeTime)

        qnt = str(self.processesHandler.ciclesInCurrentProcess)
        self.labels[1].setText('Cicles in current process: ' + qnt)

        seconds = self.processesHandler.secondsSinceLastCreation
        self.labels[2].setText("Seconds since last creation:%7.2f" % seconds)

        finished = str(self.processesHandler.processesFinished)
        self.labels[3].setText('Processes finished: ' + finished)