Professional Documents
Culture Documents
AGENDA
INTRODUCCIN
ELEMENTOS DEL SIMULADOR
INSTALACIN
LENGUAJE NED
MDULOS SIMPLES
EJEMPLOS
INTRODUCCION
Existen tres tcnicas para evaluar el
desempeo de sistemas y redes:
Anlisis
Matemtico
Medidas
Simulacin
computacional
Introduccin
Se
Principios de la Simulacin de
Eventos Discretos
La idea de un simulador de eventos discretos es saltar desde un evento al
siguiente, por lo cual la ocurrencia de un evento puede desencadenar
cambios en el estado del sistema asi como la generacion de nuevos estados,
denominados event notices.
Los eventos son registrados como event notices en la FEL (Future Event
List), la cual es una estructura apropiada de datos para administrar todos los
eventos en este tipo de simulaciones.
t1
t2
ti
ti+1
ti+2
Principios de la Simulacin de
Eventos Discretos
Todo simulador de eventos discretos comparten los siguientes
componentes:
Estado
Reloj:
Lista
Contadores
Rutina
Rutina Evento 1
No
Rutina Evento 2
Termina?
Si
Datos de Salida
FIN
Rutina Evento k
Se
Tiene
Por
Por
OMNeT++
OMNeT++ (Objective Modular Network Testbed in C++)
kernel
GUI:
del simulador
Simulation
Class library
OMNeT++
Modelado de Protocolos
Modelado de Colas
Modelado de multiprocesos, sistemas distribuidos.
La Simulacin IDE
Una importante parte de OMNeT++ es la Simulacin basada en
Eclipse (IDE).
La Simulacin IDE
Los siguientes grandes frameworks han sido
desarrollados para OMNeT++:
Editor NED
El editor NED puede editar archivos en modo grafico o en
modo texto.
Configuracin de la Simulacin
Instalacin
OMNeT++ es soportado en los siguientes
sistemas operativos:
Windows
Mac
7, 8 y XP
OS X 10.7 y 10.8
Distribuciones
Instalacin
La simulacin IDE puede usarse en las
siguientes plataformas:
Linux
x86 32/64-bit
Windows
Mac
7, 8 y XP
OS X 10.7 y 10.8
Instalacin Ubuntus
Se instalar Ubuntus 12.04, para lo cual se utilizar el
programa wubi.exe para realizar la instalacin desde
windows.
Instalacin Ubuntus
ls Lista los ficheros de un directorio.
Instalacin Ubuntus
Los comandos que se usan para actualizar paquetes
en Ubuntu:
Instalar un paquete
sudo apt-get install
Instalacin en Ubuntus
Antes de iniciar la instalacin, es necesario refrescar la
base de datos de paquetes disponible, para lo cual en
el terminal se ingresa la linea de comando:
Instalacin en Ubuntus
omnetpp-4.3-src.tgz.
Es necesario copiar el archivo en el directorio donde
se desea realizar la instalacin (/home/<you>)
Es necesario abrir un terminal, y extraer el archivo
usando el siguiente comando:
$ cd omnetpp-4.3
$ . setenv
$ gedit ~/.bashrc
Al
$ cd samples/dyna
$ ./dyna
Conceptos de Modelado
Un modelo OMNeT++ consiste de mdulos que se comunican
enviando mensajes:
Creacin de Programas de
Simulacin
Un modelo OMNeT++ contiene las siguientes
partes:
Descripcin
.msg.
Implementacin
omnetpp/
bin/
OMNeT++ executables
include/
lib/
library files
images/
doc/
migrate/
src/
OMNeT++ sources
test/
ide/
en el
Simulation IDE
features/
plugins/
IDE plugins (extensions to the IDE can be
dropped here)
...
samples/
aloha/
cqn/
Lenguaje NED
El simulador utiliza el lenguaje de programacin NED,
basado en C++, como herramienta para modelar
topologas de red.
Lenguaje NED
Bsicamente, con el lenguaje NED se definen
tres tipos de mdulos:
Mdulos simples
Mdulos compuestos
Mdulos de redes.
En los mdulos de red se encuentran los
componentes y especificaciones de la
descripcin de una red de comunicaciones.
Lenguaje NED
La estructura de un archivo NED puede contener
los siguientes componentes:
Directivas import
Permiten importar declaraciones de otros archivos ned.
Funciona como una sentencia include en C++.
Ejemplo:
import "ethernet"; // imports ethernet.ned
Lenguaje NED
Definiciones de canales:
Especifica una conexin con caractersticas dadas. Su
sintaxis es:
channel ChannelName
//...
endchannel
Lenguaje NED
Lenguaje NED
Definiciones de Mdulos simples
Los parmetros son variables que pertenecen a un
modulo. Puede requerir y usar algoritmos de mdulos
simples.
Por ejemplo, un modulo llamado TrafficGen puede tener
un parmetro denominado numOfMessages que
determina cuantos mensajes se deberan generar.
Son declarados haciendo una lista de sus nombres:
seccin de descripcin de un modulo.
Lenguaje NED
Definiciones de Mdulos simples
Ejemplo:
simple TrafficGen
Parameters:
InterarrivalTime,
numOfMessages : const,
address : string;
Gates: //...
endsimple
Lenguaje NED
Definiciones de Mdulos Compuestos
Poseen los campos de un mdulo simple, pueden agregar
submdulos, y poseen conexiones entre ellos. La sintaxis es:
Module CompoundModule
parameters:
//...
gates:
//...
submodules:
//...
connections:
//...
endmodule
Lenguaje NED
Lenguaje NED
Definiciones de Red
La definicin de red declara a la simulacin como una instancia
de un modelo previo, lo cual permite finalmente que se
Lenguaje C++
Para crear un mdulo simple en C++ se debe utilizar la
clase cSimpleModule.
void initialize()
void handleMessage(cMessage *msg)
void activity()
void finish()
Lenguaje C++
La funcin initialize() es llamada en el paso de inicializacin,
cuando OMNET++ construye la red, creando los mdulos
simples y complejos necesarios y conectndolos de acuerdo a
las definiciones del archivo NED.
Lenguaje C++
La funcin finish, es llamada cuando la funcin termina de forma
satisfactoria. Generalmente es usada para guardar las
estadsticas vectoriales y escalares reunidas durante el proceso
de simulacin.
Ficheros INI
Estos ficheros son fundamentales para realizar la simulacin. En
ellos se describen:
Ficheros INI
*.channelControl.carrierFrequency = 2.4GHz
**.HostServidor.wlan.mac.address = "10:00:00:00:00:00"
ocurre
se
denomina
simple computer
{
gates:
input in;
output out;
}
Demo INET
INET
Es necesario descargar el archivo inet-2.1.0src.tgz.
INET
INET
MiXiM
Es necesario descargar el paquete mixim2.3.tar.gz.
MiXiM
Desde OMNeT++ IDE se debe importar a
MiXiM.
MiXiM
EJEMPLO DEMO
Ejemplo Demo
Se crea un nuevo proyecto: file New OMNeT++
Project
Ejemplo Demo
Ejemplo Demo
Ejemplo Demo
Ejemplo Demo
En las propiedades del proyecto, se pone
como referencia lo importado de queue
Ejemplo Demo
En las propiedades del proyecto, se pone
como referencia lo importado de queue
Ejemplo Demo
Ejemplo Demo
Ejemplo Demo
El modelo que se va a implementar es una
fuente con tres colas conectadas en cadena.
Ejemplo Demo
El modelo que se va a implementar es una
fuente con tres colas conectadas en cadena.
Ejemplo Demo
El modelo que se va a implementar es un
modelo de tres colas conectadas entre si a las
cuales se las alimenta con una fuente
Ejemplo Demo
Se puede ingresar tambin las conexiones en el
cdigo fuente.
Ejemplo Demo
Ejemplo Demo
Ejemplo Demo
Ejemplo Demo
Ejemplo Demo
Se desea que en el modulo se corran 2 configuraciones,
una con 30 trabajos y otra con 60 trabajos.
La sintaxis es ${job=30,60}
Ejemplo Demo
Se desea configurar el tiempo de servicio para todas
las colas del sistema.
Ejemplo Demo
Se quiere tratar el modelo con diferentes tiempos de
servicio de colas, tal como: distribucin exponencial.
Ejemplo Demo
Ejemplo Demo
Una vez terminada la simulacin se han generado
archivos .vec y .sca donde se almacenan las
estadsticas de la simulacin, as como archivos .log
que contienen la informacin enviada durante la misma.
Ejemplo Demo
Ejemplo Demo
Primero se aade todos los archivos de resultados
generados para el anlisis. Se debera especificar el
nombre de los archivos, lo cual es mas simple con la
opcin wilcard.
Ejemplo Demo
Primero se aade todos los archivos de resultados
generados para el anlisis.