Add queueing example model
This commit is contained in:
parent
2ca0c68e31
commit
d4aa028d4f
9 changed files with 825 additions and 0 deletions
33
examples/queueing/system.py
Normal file
33
examples/queueing/system.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
from pypdevs.DEVS import CoupledDEVS
|
||||
|
||||
# Import all models to couple
|
||||
from generator import Generator
|
||||
from queue import Queue
|
||||
from processor import Processor
|
||||
from collector import Collector
|
||||
|
||||
class QueueSystem(CoupledDEVS):
|
||||
def __init__(self, mu, size, num, procs):
|
||||
CoupledDEVS.__init__(self, "QueueSystem")
|
||||
|
||||
# Define all atomic submodels of which there are only one
|
||||
generator = self.addSubModel(Generator(mu, size, num))
|
||||
queue = self.addSubModel(Queue(len(procs)))
|
||||
collector = self.addSubModel(Collector())
|
||||
|
||||
self.connectPorts(generator.out_event, queue.in_event)
|
||||
|
||||
# Instantiate desired number of processors and connect
|
||||
processors = []
|
||||
for i, param in enumerate(procs):
|
||||
processors.append(self.addSubModel(
|
||||
Processor(i, param)))
|
||||
self.connectPorts(queue.out_proc[i],
|
||||
processors[i].in_proc)
|
||||
self.connectPorts(processors[i].out_finished,
|
||||
queue.in_finish)
|
||||
self.connectPorts(processors[i].out_proc,
|
||||
collector.in_event)
|
||||
|
||||
# Make it accessible outside of our own scope
|
||||
self.collector = collector
|
||||
Loading…
Add table
Add a link
Reference in a new issue