ADS29009-2020-1

De MediaWiki do Campus São José
Revisão de 10h32min de 9 de setembro de 2020 por Eraldo (discussão | contribs) (→‎Proposta 4)
Ir para navegação Ir para pesquisar

AULA 1 - Dia 30/07/2019

Objetivos

  • Apresentação da Disciplina (SIGA A)
  • Plano de Ensino (SIGA A)
  • Avaliação (SIGA A)

Introdução a ADS

Questões Iniciais:

  • Que projeto estou fazendo?
  • Como procedo para fazer uma ADS?

Tarefa A1.1

  • Pesquisar um artigo sobre ADS em uma área de seu interesse. Analisar um arquivo a luz das etapas e conceitos discutidos nesta semana.

Fazer slides que devem ser postados na data anterior da apresentação. O slide deve apresentar:

  • Objetivo da ADS no artigo
  • Métricas
  • Parâmetros
  • Fatores
  • Workload
  • Técnicas usadas
  • Resumo de como são apresentados os dados
  • Conclusão Pessoal

APRESENTAÇÃO: Dia 20/02/2020

Material de Referência

AULA 2 - 19/02/2020

Objetivos

  • Conceitos básicos de ADS
  • Tarefa em SAla

TAREFA

Considere o texto em: http://ieeexplore.ieee.org/document/997208/

Responda (em grupo) as seguintes questões:

0) Qual o objetivo principal do experimento?
1) Quais fatores estão sendo considerados no experimento? Explique cada um deles.
2) Quais os níveis que estão sendo utilizados para cada fator?
3) Quais as métricas que estão sendo avaliadas? Explique cada uma delas.
4) Quais parâmetros/características do cenário foram fixados? Liste pelo menos 5.
5) Na sua visão a carga de trabalho está sendo definida em que parâmetro?
6) No experimento, todos os nodos transmitem e recebem informação?
7) Quantas repetições foram previstas para cada simulação.
8) O experimento testa exaustivamente todas as possibilidades de variação de nível entre os parâmetros?
9) Qual o modelo de mobilidade escolhido? Explique sucintamente o funcionamento.
10) Sintetize as conclusões do trabalho.
11) Qual o significado de "main effect of a factor" no contexto do trabalho?

AULA 3 - 20/02/2020

Objetivos

  • Conceitos básicos de ADS
  • Apresentação da tarefa A1.1
  • Introdução a projetos fatoriais


AULA 4 - 04/03/2020

Objetivos

  • Introdução a Cadeias de Markov Discretas

Material de Referência

https://www.dropbox.com/s/ynnb16ytldd1pbx/CadeiasDeMarkovDiscretas_Parte1.pdf?dl=0

AULA 5 Dia 5/03/2020

Objetivos

  • Introdução a DTMC
  • DTMC: Holding Time, Média de primeira transição
  • Simulação de DTMC
  • Tarefa

Slides Aula

Programa Simulação Cadeia Markov

TAREFA 8 - Simulação de Caddeia de Markov.


Segundo discutido em sala e exercício do slide

https://www.dropbox.com/s/hvgk42nhhcsyjlt/SimMarkovAlunos.m

  P = [ 
          0.2    0    0.8    0    0    0    0    0    0    0;
          0    0.2    0.3  0.3  0.2  0    0    0    0    0;
          0    0    0.1    0    0    0.9  0    0    0    0;
          0    0    0    0    0    0    1.0  0    0    0;
          0    0    0    0    0    0.3  0.7  0    0    0;
          0    0    0    0    0    0    0    0.2  0    0.8;
          0    0    0    0    0    0    0    0    0.8  0.2;
          1.0  0    0    0    0    0    0    0    0    0;
          0    1.0  0    0    0    0    0    0    0    0;
          0.2 0.6  0    0    0    0    0    0    0    0.2;
         ];

AULA 6 Dia 11/03/2020

Objetivos

  • Aplicações de DTMC

Slides Aula

https://www.dropbox.com/s/0zxzg8dx5qe2b2e/AplicacoesCadeiasDeMarkovDiscretas.pdf?dl=0


AULA VIRTUAL 7 Dia 1/04/2020

Objetivos

  • Revisão Distribuição Exponencial e Propriedade Sem Memória
  • Cadeia de Markov em tempo Contínuo.

Slides Aula

https://www.dropbox.com/s/vs8yifvdulsqdwd/CadeiasDeMarkovContinuas_Parte1.pdf?dl=0

Material Auxiliar


AULA VIRTUAL 8 Dia 2/04/2020

Objetivos

  • Instruções para instalação do Omnet
  • Cadeia de Markov em tempo Contínuo (Continuação)


Slides Aula

https://www.dropbox.com/s/vs8yifvdulsqdwd/CadeiasDeMarkovContinuas_Parte1.pdf?dl=0

Fazer a instalação do omnet e do inet.

Material Auxiliar

Omnet

AULA VIRTUAL 9 Dia 16/04/2020

Objetivos

  • Introdução a Teoria de Filas (continuação)
  • Fila MM1
  • Desempenho da Fila MM1

Slides Aula

AULA VIRTUAL 10 Dia 22/04/2020

Objetivos

  • Discussão da lista de Exercícios
  • Filas MM1k
  • Filas MMn

Slides Aula

AULA VIRTUAL 11 Dia 29/04/2020

Objetivos

  • Discussão da lista de Exercícios
  • Filas MM1k (Revisão)
    • Desempenho da Fila MM1k
  • Filas MMn
    • Desempenho da Fila MMn

Slides Aula

Reunião/AULA VIRTUAL 12 Dia 20/05/2020

Objetivos

  • discussão sobre o desenvolvimento das ANPS;
    • entregar A1.5 até 27/05 - não vale nota. Anotar pontos que tem dificuldade
    • dia 27/05 - aula síncrona - correção dos exercícios -
    • dia 27/05 - postagem de nova lista - valendo nota
    • dia 28/05 - aula síncrona - Filas MMn e Redes de Filas

AULA VIRTUAL Dia 27/05/2020

Objetivos

  • Resolução da Lista de Exercícios sobre CTMC e Introdução a Teoria de Filas

Lista Resolvida

AULA VIRTUAL Dia 28/05/2020

Objetivos

  • Filas MM1k (Nova Revisão)
    • Desempenho da Fila MM1k
  • Filas MMn
    • Desempenho da Fila MMn

Slides Aula

AULA VIRTUAL Dia 3/06/2020

Objetivos

  • Lista de Exercícios A1.5 - Comentários
  • Introdução a Rede de Filas

Slides Aula

AULA VIRTUAL Dia 10/06/2020

Objetivos

  • Introdução a Simulação em ADS

Slides Aula

AULA VIRTUAL Dia 17/06/2020

Objetivos

  • Introdução a Simulação em ADS
  • Proposição de Exercício: Fila MM1 modificada com Simulador baseado no site do Apache.

Slides Aula


Adaptar o código de tratamento de uma fila MM1 simples, conforme colocado no slide para um formato de um simulador de eventos discretos com filas. Use o código abaixo como apoio.

//Basead em http://stdcxx.apache.org/doc/stdlibug/2-2.html#225

#include <queue>
#include <iostream>
#include <cstdlib>

//==================================================================
// classes evento e simulação - base para o desenvolvimento da simulação
//==================================================================

class event {
public:
  // Construct sets time of event.
  event (double t) : time (t)
    { }

  // Execute event by invoking this method.
  virtual void processEvent () = 0;

  const double time;
};


class simulation {
public:
  simulation () : simtime (0), eventQueue () 
    {}
  void run ();
  void  scheduleEvent (event * newEvent) {
    eventQueue.push (newEvent);
  }
  double simtime;
protected:
  class eventComparator {
    public:
    bool operator() (const event * left, const event * right) const {
      return left->time > right->time;
    }
  };
  std::priority_queue<event*,
                      std::vector<event *, std::allocator<event*> >,
                      eventComparator> eventQueue;  //fila de eventos 
};

void simulation::run () {

  while (! eventQueue.empty ()) { //enquanto exisitr eventos na fila de eventos

    event * nextEvent = eventQueue.top (); //captura evento no topo da fila
    eventQueue.pop ();  //retira evento da fila
    simtime = nextEvent->time;  //ajusta tempo de simulação
    nextEvent->processEvent ();  //processa evento
    delete nextEvent;  //remove evento
  }
}

//===================================================================
//Customização dos eventos e do simulador
//===================================================================

class standardArrival : public event {
public:
  standardArrival (double t)
    : event (t)
    { }
  virtual void processEvent ();
};

void standardArrival::processEvent () {
  std::cout << "processando evento no tempo " << time  << '\n';
}

class simuladorFilas : public simulation {
public:
  simuladorFilas ()
    { }
 
} oSimulador;

// from https://stackoverflow.com/questions/2704521/generate-random-double-numbers-in-c

double fRand(double fMin, double fMax)
{
    double f = (double)rand() / RAND_MAX;
    return fMin + f * (fMax - fMin);
}

int main () {

  // Inicializar aqui a fila de eventos
  double t;

  oSimulador.scheduleEvent (new standardArrival (t=fRand(1.0,10.0)));
  oSimulador.scheduleEvent (new standardArrival (t=t+fRand(1.0,10.0)));
  oSimulador.scheduleEvent (new standardArrival (t=t+fRand(1.0,10.0)));

  // Executar simulador
  oSimulador.run ();


  return 0;
}

AULA VIRTUAL Dia 24/06/2020

Objetivos

  • Construção do Simulador DES para Fila MM1 baseado no código do site Apache

Slides Aula


AULA VIRTUAL Dia 24/06/2020

Objetivos

  • Geração de Números Randômicos para Simulação
    • Método Linear Congruente
    • Método da Inversa para geração de números de uma distribuição qualquer

Slides da Aula

https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0

Código de Exemplo Octave

%parâmetros
a=7^5;
c=0;
x0=1;
m=2^31-1;
% zerar xn
xn=zeros(20000,1);
%gerar numeros
for i=1:10000
  xn(i)=mod(a*x0+c,m);
  x0=xn(i);
end
% ajustar para gerar entre 0 e 1 
un=xn/m;
% plotar histograma
hist(un(1:10000),10);

Livros do Acervo Virtual IFSC

  • Simulação
    • Stochastic Simulation Optimization: An Optimal Computing Budget Allocation. Chun-hung Chen, Loo Hay Lee.
      • No Apêndice tem um review sobre Simulador a Evento Discreto e sobre geração randômica de números
    • Simulation for Data Science with R
      • Um pouco complexo em alguns pontos. Cap.4 aborda geração de números randômicos
    • System Modeling and Simulation. Singh.
    • Simulation Book Jacket Autores: Ross, Sheldon M.
      • No Apêndice tem um review sobre Simulador a Evento Discreto e sobre geração randômica de números
    • Statistics with Confidence : An Introduction for Psychologists
    • Simulation Modeling and Analysis with ARENA

AULA VIRTUAL Dia 1/07/2020

Objetivos

  • Geração de Números Randômicos para Simulação (revisão)
    • Método Linear Congruente
    • Método da Inversa para geração de números de uma distribuição qualquer
  • Discussão da Tarefa A2.1. Ver SIGA A


Slides da Aula

https://www.dropbox.com/s/el4x6ft9xk7562k/GeracaoNumerosRandomicosSimulacao.pdf?dl=0


AULA VIRTUAL Dia 8/07/2020

Objetivos

  • Confiança Estatística na Simulação

Slides da Aula

https://www.dropbox.com/s/3okdg97838wvizx/ConfiancaEstatistica.pdf?dl=0

Referência Complementar

  • Cap.7 Livro: Simulation. Ross, Sheldon M. 2006. Acervo Virtual IFSC.

AULA VIRTUAL Dia 9/07/2020

Objetivos

  • Confiança Estatística na Simulação (continuação)

Slides da Aula

https://www.dropbox.com/s/3okdg97838wvizx/ConfiancaEstatistica.pdf?dl=0

Referência Complementar

  • Cap.7 Livro: Simulation. Ross, Sheldon M. 2006. Acervo Virtual IFSC.


AULA VIRTUAL Dia 5/08/2020

Objetivos

  • Diretivas para a Instalação do Omnet
  • Introdução ao Simulador Omnet
  • Tutorial Tik-Tok

Roteiro para Aula

  • O que é o omnet
  • Simulação com o Omnet
  • Tutorial Omnet/Tic-Toc
    • simple x compound module
    • conceito de gates e de vetor de gates;
      • envio de mensagens e de cópias de mensagens;
    • Modelagem de Delays
    • Uso de funções de geração de números randômicos
    • Modelagem de retransmisssão: timeouts e cancelamento de timeout;

Considerações sobre a simulação com o omnet

No manual de simulação do Omnet pode-se observar que:

Eventos e Ordem de Execução

  • mensagens são representadas por eventos (class cMessage) e subclasses;
  • o tempo de ocorrência de um evento é o momento da chegada da mensagem (arrival time) no módulo de destino;
  • timeouts serão implementados por um módulo emissor como mensagens para eles mesmos (self-messages);
  • eventos são processados de acordo com o tempo de chegada (mensagens com tempo mais antigos primeiro) de forma a manter a relação de causalidade;
  • Caso duas mensagens tenham o mesmo tempo de chegada tem-se que:
    • a mensagem com maior prioridade atribuída pelo usuário é executada primeiro ( higher scheduling priority);
    • caso tenham a mesma prioridade, será executada a que estiver primeiro na fila (escalonada pelo scheduler).

AULA NÃO ŚINCRONA Dia 12/08/2020

Objetivos

  • Familiarização com o Simulador de Redes Omnet

Atividade

  • Tarefa repassada no SIGAA: Instalação omnet e realização do tutorial tictoc até o tem 6 inclusive. Mini relatório a ser entregue.


AULA NÃO ŚINCRONA Dia 13/08/2020

Objetivos

  • Implementação de Fila MM1 e rede de filas no omnet

Material de Referência

  • Ver tarefa SIGAA

Passos recomendados:

  • baixar o pdf do Laboratório na tarefa do dia de hoje;
  • baixar na MV onde está o omnet, o arquivo tar.gz com arquivos do lab

Códigos deste Lab

AULA ŚINCRONA Dia 20/08/2020

Objetivos

  • Visão Geral da Biblioteca INET
  • Simulação da Ethernet

Material de Referência

  • Ver tarefa SIGAA

Passos recomendados:

  • baixar o pdf do Laboratório na tarefa do dia de hoje;

AULA ŚINCRONA Dia 27/08/2020

Objetivos

  • Simulação de Redes IP com StandardHost do INET
  • Cenário com 2 roteadores e configuração automática da rede IP

Material de Referência

Material Auxiliar

NED cenário da aula

network redeIP
{
    @display("bgb=518,390");
    submodules:
        router: Router {
            @display("p=171,217");
        }
        standardHost0: StandardHost {
            @display("p=75,99");
        }
        standardHost1: StandardHost {
            @display("p=54,317");
        }
        standardHost2: StandardHost {
            @display("p=406,99");
        }
        standardHost3: StandardHost {
            @display("p=375,317");
        }
        router1: Router {
            @display("p=290,217");
        }
        etherSwitch0: EtherSwitch {
            @display("p=82,217");
        }
        etherSwitch1: EtherSwitch {
            @display("p=367,218");
        }
        configurator: Ipv4NetworkConfigurator {
            @display("p=221,55");
        }
        visualizer: IntegratedCanvasVisualizer {
            @display("p=210,317");
        }
    connections:
        standardHost0.ethg++ <--> Eth100M <--> etherSwitch0.ethg++;
        standardHost1.ethg++ <--> Eth100M <--> etherSwitch0.ethg++;
        etherSwitch0.ethg++ <--> Eth100M <--> router.ethg++;
        router.ethg++ <--> Eth100M <--> router1.ethg++;
        router1.ethg++ <--> Eth100M <--> etherSwitch1.ethg++;
        standardHost2.ethg++ <--> Eth100M <--> etherSwitch1.ethg++;
        etherSwitch1.ethg++ <--> Eth100M <--> standardHost3.ethg++;
}


omnetpp.ini cenário da aula

[General]
sim-time-limit = 100s

# Configurator settings
*.configurator.dumpAddresses = true
*.configurator.dumpTopology = true
*.configurator.dumpLinks = true
*.configurator.dumpRoutes = true

# Routing settings
*.*.ipv4.arp.typename = "GlobalArp"
*.*.ipv4.routingTable.netmaskRoutes = ""

# Wireless settings
*.*.wlan[*].bitrate = 54Mbps

# Visualizer settings
*.visualizer.interfaceTableVisualizer.displayInterfaceTables = true
*.visualizer.interfaceTableVisualizer.nodeFilter = "not (*switch* or *Switch* or *AP*)"

[Config RedeAutoconfiguradaComPing]

network=redeIP
description = "Configuração Auotomática - PingApp"

**.numApps = 1

**.app[0].typename = PingApp
**.standardHost0.app[0].destAddr = "standardHost3"
**.destAddr = ""
**.app[*].count = 5
**.app[*].startTime = 0s
**.app[*].sleepDuration = 0s
**.app[*].printPing = true

[Config RedeAutoconfiguradaComTcpApp]

network=redeIP
description = "Configuração Automática - TCPApp"

**.standardHost0.numApps = 1
**.standardHost3.numApps = 1

**.standardHost0.app[0].typename = TcpClientApp
**.standardHost0.app[0].destAddr = "standardHost3"
**.standardHost0.app[0].typename = "TcpClientApp"
**.standardHost0.app[0].io.connectAddress = "standardHost3"
**.standardHost0.app[0].io.connectPort = 1000
**.standardHost0.app[0].source.productionInterval = uniform(0s, 20s)
**.standardHost0.app[0].source.packetLength = intuniform(100B, 200B)
**.standardHost0.app[0].source.packetData = intuniform(0, 1)

**.standardHost3.app[0].typename = "TcpServerApp"
**.standardHost3.app[0].listener.localPort = 1000
**.standardHost3.app[0].connection[*].source.packetLength = intuniform(100B, 200B)
**.standardHost3.app[0].connection[*].source.productionInterval = uniform(0s, 0.5s)

AULA ŚINCRONA Dia 2/09/2020

Objetivos

  • Apresentação de Dados em ADS
  • Tutorial Wireless INET

ReferÊncias - Parte 1 da Aula

ReferÊncias - Parte 2 da Aula

AULA ŚINCRONA Dia 9/09/2020

Objetivos

  • Discussão dos Projetos Finais da Parte Simulação


Proposta 1

  • Avaliação de Desempenho de Redes usando Mecanismos de QoS com Tráfego Sensível
  • Parte 1: Estudar e Apresentar o Showcase Sobre QoS em Redes IEEE802.11 [1]
  • Objetivo do Experimento
  • Breve Revisão de Conceitos e Tecnologias Usadas
  • O Experimento
  • Modelo Simulado:
  • Estrutura dos nodos
  • Configuração da Rede
  • Coleta de Estatísticas (quais e como)
  • Quais métricas serão analisadas
  • Quais fatores e níveis usados
  • Os parâmetros (o que foi fixado)
  • Revisão dos Resultados (análise dos gráficos)


Proposta 2

  • Avaliação de Desempenho de Protocolos de Enlace para Redes de Sensores [2]

Proposta 3

  • Consumo de Energia em Redes Wireless
  • Objetivo do Experimento
  • Breve Revisão de Conceitos e Tecnologias Usadas
  • O Experimento
  • Modelo Simulado:
  • Estrutura dos nodos
  • Configuração da Rede
  • Coleta de Estatísticas (quais e como)
  • Quais métricas serão analisadas
  • Quais fatores e níveis usados
  • Os parâmetros (o que foi fixado)
  • Revisão dos Resultados (análise dos gráficos)

Proposta 4

  • Avaliação do Mecanismos de Controle de Taxa de Transmissão do EEE 802.11 [3]