Simulation des Systèmes MM1 en OMNeT++
Simulation des Systèmes MM1 en OMNeT++
Message scheduling and timing in the simulation are managed using the OMNeT++ framework's scheduling functions. Each module schedules messages either to be sent or to check for new tasks at specific times calculated using exponential distributions. For example, the 'gen' module schedules messages based on the arrival rate of 0.25, while the 'attente' module checks the queue based on 0.08. This creates a stochastic process that mimics real queue dynamics. These scheduling functions ensure a realistic representation of random message generative processes and queue management .
The simulation setup supports performance analysis by logging key timing information such as message creation, queue waiting time, and service completion time, allowing for empirical evaluation of system efficiency. Key metrics include average queue length, system throughput, message waiting time, and overall system response time. These metrics provide insights into the capacity and behavior under various loads, assisting in evaluating performance and scalability of the queue system .
Potential improvements for the MM1 simulation could include adding variability in message sizes and different priority levels in queue handling to simulate more complex traffic scenarios. Moreover, incorporating additional servers or different queuing strategies (e.g., priority or round-robin queues) could extend the network capabilities, reflecting more diverse system architectures. Introducing user-defined traffic patterns instead of purely stochastic would also allow for simulating targeted performance testing and scenario modeling .
The MM1 simulation architecture, using simple modules in OMNeT++, ensures modularity by defining distinct responsibilities in each module, such as message generation, queuing, and service processing. This separation allows for easy adjustments, replacements, or extensions of individual modules without affecting the whole system. Flexibility in extending the model is achieved through defined interfaces and parameters, enabling diverse configurations and enhancements like adding new behaviors or additional modules, thus adhering to a scalable architecture .
The network configuration embodies a classic MM1 queue system by comprising a single message generator ('gen'), a queue ('attente'), and a single server ('server'). Messages are generated following a Poisson process with exponential inter-arrival times controlled by the arrival rate 0.25 in the 'gen' module. These are buffered in the 'attente' queue and served individually by the 'server' utilizing exponential service times, consistent with MM1 queue models where arrivals and service times are memoryless .
The simulation uses predefined constant delays for message transmission between modules. For instance, in the MM1 network definition, connections between the generator, queue, and server modules inherently apply a delay of 100ms for message transfers. These fixed delays simulate transmission time and ensure synchronization between different stages of message processing in the network .
The 'attente' module manages incoming messages by checking their names. If a message labeled 'new' is received, it timestamps the message and inserts it into a queue. This process includes logging the queue's current length. For messages labeled 'sch', it attempts to pop a message from the queue, calculate the waiting time, and send the message onward, scheduling the next check at intervals derived from an exponential distribution with a mean rate of 0.08 .
The 'gen' module in the MM1 network simulation is designed to generate messages at regular intervals. It achieves this functionality by using the OMNeT++ framework to initialize a cMessage and schedule it to be sent at the current simulation time. Subsequently, it sends a new message and schedules another message to be sent at an interval determined by an exponential distribution with mean arrival rate of 0.25 messages per time unit .
In the MM1 network simulation, the 'server' module acts as the processing unit for the messages. It initializes by sending a delayed 'sch' message. Upon receiving a message, it records the creation and arrival times, computes the service time using an exponential distribution with a mean of 0.08, and reports the service and total time spent by the message in the system. The module concludes its process by deleting the message, thus simulating the completion of service .
Exponential functions are crucial in the simulation as they model real-world stochastic processes where events occur continuously and independently over time. The use of exponential functions for scheduling message creation and queue checking introduces variability that mimics randomness in network traffic, an essential aspect of queuing theory. This ensures a realistic simulation of arrival and service times, aiding in understanding performance under uncertainty and fluctuation .