introducción a omnet++ - tlm.unavarra.es€¦ · introducción simulador de eventos discretos...

28
Introducción a OMNeT++ Javier Armendáriz Silva viernes 6 de marzo de 2009

Upload: doduong

Post on 08-May-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Introducción a OMNeT++Javier Armendáriz Silva

viernes 6 de marzo de 2009

Índice

Introducción a OMNeT++CaracterísticasInstalación (UNIX)Desarrollo de un simuladorEjemplosOMNeT++ 4.0

viernes 6 de marzo de 2009

Introducción

Simulador de eventos discretosEnfocado a las redes

Compuesto por: kernel del simuladorGUI: Gráfico (tkenv) o texto (cmdenv)Simulation Class library

viernes 6 de marzo de 2009

Características

Basado en C++Al compilar una simulación creas un ejecutable “standalone”Incluye un compilador de dOxygen

opp_neddoc

viernes 6 de marzo de 2009

Instalación

Puede ser compilado tanto para sistemas UNIX-like (Linux,MacOS X) como para Windows

viernes 6 de marzo de 2009

Instalación

Dependencias:tcl/tk (GUI)BLTdOxygen,GNUPlotImageMagick, giftransMPI,Akaroa

viernes 6 de marzo de 2009

Instalación

Añadir variables de entorno:

Editar configure.user Compilar

export PATH=$PATH:~/omnetpp/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/omnetpp/lib

./configure make

viernes 6 de marzo de 2009

Desarrollo de un simulador

viernes 6 de marzo de 2009

Elementos del simulador

viernes 6 de marzo de 2009

Descripción de la red (.ned)

Define los módulos simples y complejosParámetrosPuertos de entrada/salida

viernes 6 de marzo de 2009

Definición de mensajes (.msg)

Define los campos del mensaje y el tipo de dato asociado

Al convertirlo a C++ se crean los getters/setters correspondientes.

viernes 6 de marzo de 2009

Implementación de los módulos simples

Lenguaje: C++Las clases heredan de cSimpleModuleRequiere implementar:

initialize()finish()handleMessage(cMessage *msg)

viernes 6 de marzo de 2009

activity()Comparable a un proceso en un SO o un hiloAcaba activity(), se elimina el módulo

Máquinas de estados: FSM API

Implementación de los módulos simples

viernes 6 de marzo de 2009

Compilación

Una vez creado el makefile (con opp_makemake) basta con hacer un ‘make’

Convierte los .msg a C++Compila todos los módulos simplesCrea el ejecutable

viernes 6 de marzo de 2009

Fichero de configuración

omnetpp.iniIndica la red (módulo complejo) que ejecutará el simuladorInicializa los parámetrosPueden definirse varias ejecuciones (run)

viernes 6 de marzo de 2009

Tratamiento de la salida

Tipo de ficheros de salida:Escalares (omnetpp.sca)Vectoriales (omnetpp.vec)

UtilidadesIncluidas en OMNeT: Plove, Scalars, splitvecOtros: GNUPlot, grep...

viernes 6 de marzo de 2009

Ejemplos

viernes 6 de marzo de 2009

Ejemplo 1: tic-toc

viernes 6 de marzo de 2009

Ejemplo 2: OBSModules

viernes 6 de marzo de 2009

OMNeT++ 4.0

viernes 6 de marzo de 2009

OMNeT++ 4.0

Última versión de OMNeT++Estado: release candidate 2 (publicado el 01/03/2009)

viernes 6 de marzo de 2009

OMNeT++ 4: Changelog

Integración con eclipse:

viernes 6 de marzo de 2009

viernes 6 de marzo de 2009

viernes 6 de marzo de 2009

OMNeT++ 4: Changelog

Novedades:opp_makemake soporta compilación recursivaAñade puertas bidireccionales (inout)Cambios en la sintaxis de los ficheros .ned, .msg y en omnetpp.iniCambios en la API C++

viernes 6 de marzo de 2009

Tantos cambios tiene sus inconvenientes...

viernes 6 de marzo de 2009

OMNeT++ 4: Changelog

Incompatible hacia atrásHace falta reescribir/adaptar casi todos los ficheros

MigraciónScripts: migratened, migrateini,migratemsg,migratecppPost procesamiento manual

viernes 6 de marzo de 2009

OMNeT++ 4.0

Compatibilidad con otros proyectosMobility Framework: Ha sido portado recientementeINET: Funciona tras ejecutar los scripts de migración

viernes 6 de marzo de 2009