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()
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)
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)