Teoria das Filas - 2009/2
Miniprojeto
Universidade Federal do Esp´ırito Santo - UFES
Professor: Magnos Martinello
1
Proposta
A proposta do trabalho ´e refor¸car o compreendimento dos conceitos de teoria das filas em sistemas de computa¸c˜ao atrav´es da utiliza¸c˜ao de uma abordagem que combina modela-gem anal´ıtica e medi¸c˜ao. No que diz respeito `a medi¸c˜ao, a id´eia consiste em implementar uma aplica¸c˜ao para apresentar um v´ıdeo que ser´a continuamente recebido (streaming) em um sistema operacional Linux. As medidas coletadas em uma campanha de experi-menta¸c˜ao servir˜ao de entrada para os parˆametros de um modelo anal´ıtico constru´ıdo para avaliar se atrasos/perdas de pacotes de v´ıdeo n˜ao degradam a qualidade de apresenta¸c˜ao do v´ıdeo para um cliente. O modelo representa uma fila de recep¸c˜ao que precisa ser pro-jetada de tal modo a garantir probabilisticamente que o atraso seja inferior a um valor m´aximo. Para concluir o trabalho, os resultados obtidos dever˜ao ser comparados a fim de validar a modelagem anal´ıtica vs. medi¸c˜ao.
2
Estrutura do Trabalho
O trabalho a ser desenvolvido est´a dividido em 4 etapas. Cada uma das etapas ´e descrita a seguir:
2.1
Implementa¸
c˜
ao
Para poder realizar uma campanha de experimentos, os grupos devem implementar uma aplica¸c˜ao cliente (videoplayer) utilizando linguagens a escolha do programador como C, C++, Java ou Python.
A aplica¸c˜ao dever´a abrir conex˜oes (requisi¸c˜oes http, sockets TCP, UDP, STCP, RTP, RTCP) com servidores web de v´ıdeo on demand (vod) e iniciar a recep¸c˜ao do conte´udo do v´ıdeo. Em outras palavras, a aplica¸c˜ao recebe como entrada a URL do v´ıdeo (e.g. ”www.youtube.com” ou http://www.video.rnp.br/ ), abre uma conex˜ao e come¸ca o pro-cesso de medi¸c˜ao. Ressalta-se que o tipo do protocolo de transporte (TCP, UDP-preferencial) vai influenciar consideravelmente nos tempos de chegadas dos pacotes de v´ıdeo.
A sa´ıda do videoplayer deve mostrar o instante de chegada e o instante de sa´ıda (apre-senta¸c˜ao) e o correspondente n´umero do pacote (ignorar pacotes perdidos ). Exemplo: pacote 1, chegada 10 ms sa´ıda 20 ms
pacote 2, chegada 300 ms sa´ıda 600 ms pacote 3, chegada 500 ms sa´ıda 900 ms Para cada v´ıdeo deve ser observado: • Tamanho total do v´ıdeo - em bytes
• Taxa m´edia do v´ıdeo ( codifica¸c˜ao - banda requerida ) µ - em bytes/segundo • Tempo m´edio entre chegadas de pacote (1/λ) - tempo de chegada de cada pacote i
Tj(i) na rodada j;
• Tamanho m´edio dos pacotes - em bytes
Em paralelo `a realiza¸c˜ao desses experimentos, os grupos dever˜ao executar sniffers de pacotes, como TCPdump 1 ou Ethereal, Wireshark 2. O objetivo ´e capturar, gerar traces
e analisar todos os pacotes direcionados especificamente ao videoplayer.
Para a experimenta¸c˜ao ser efetiva, dever´a ser realizado uma campanha de experimen-tos na sua m´aquina cliente para ao menos 3 v´ıdeos de taxas distintas armazenados em um servidor (e.g. youtube) e realizar v´arias rodadas (no m´ınimo 20) para obter valores estatisticos mais est´aveis.
2.2
Modelagem anal´ıtica
Um modelo anal´ıtico que ser´a desenvolvido pela equipe permitir´a dimensionar o tamanho ideal da fila de recep¸c˜ao (buffer) de v´ıdeo. O modelo de fila geral deve incluir uma vari´avel aleat´oria S que representa o tempo de servi¸co para o videoplayer. O tempo de servi¸co depende essencialmente do n´umero de chegadas ( vari´avel aleat´oria discreta N (t) ) que ocorrem em um dado intervalo t. Por exemplo, se o n´umero de chegadas k no intervalo t for zero k = 0, a fila precisa conter um dado n´umero de pacotes (unidades de apresenta¸c˜ao do v´ıdeo) para poder apresentar o v´ıdeo at´e o intervalo t, caso contr´ario vai haver uma interrup¸c˜ao prejudicando a qualidade da apresenta¸c˜ao do v´ıdeo. Em outras palavras, ´e preciso garantir que a probabilidade condicional dessa vari´avel P [S ≤ t|N (t) = k] > 0.99. O tempo de servi¸co S ´e uma fun¸c˜ao relacionada a taxa m´edia do v´ıdeo (banda reque-rida), onde pode-se assumir (verificar mais adiante se a premissa funcionou bem) que os tempos entres servi¸cos s˜ao exponencialmente distribu´ıdos com tempo m´edio 1/µ. Esses tempos evidentemente ser˜ao calibrados com a taxa m´edia do v´ıdeo.
O n´umero m´edio de chegadas no intervalo t, N (t) ´e uma fun¸c˜ao relacionada a taxa m´edia de chegada dos pacotes λ, onde pode-se assumir que os tempos entres chegadas s˜ao exponencialmente distribu´ıdos (verificar mais adiante se a premissa funcionou bem) com tempo m´edio 1/λ. Esses tempos ser˜ao obtidos a partir do processo de medi¸c˜ao dos tempos entre chegadas de pacotes.
2.3
Valida¸
c˜
ao dos resultados
A valida¸c˜ao consiste em comparar os instantes (tempos) de apresenta¸c˜ao de cada pacote te´orico ( modelo anal´ıtico ) versus experimental (videoplayer). Para a compara¸c˜ao deve-se
1http://www.tcpdump.org/ 2http://www.ethereal.com/
variar o tamanho da fila de recep¸c˜ao B = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10... e mostrar uma figura (com curva te´oria vs. experimental) com os tempos de apresenta¸c˜ao de cada pacote em fun¸c˜ao do n´umero do pacote correspondente.
Se o tempo de apresenta¸c˜ao entre dois pacotes for maior que o inverso da taxa 1/µ, ent˜ao houve uma parada na apresenta¸c˜ao do v´ıdeo. Claramente quanto maior for a fila, maior ´e a probabilidade de n˜ao haver paradas. No entanto, o foco central do trabalho ´e determinar qual o tamanho ideal da fila de recep¸c˜ao de video. Vale ressaltar que tamb´em ´
e importante determinar as diferen¸cas entre o modelo te´orico vs. videoplayer para cada tamanho de fila B.
A reprodu¸c˜ao do v´ıdeo por um player real pode ser feita se os pacotes e seus respectivos tempos de sa´ıda (apresenta¸c˜ao) forem armazenados. Os tempos de sa´ıda v˜ao variar para os diferentes valores de B. Para cada valor, pode-se tocar o v´ıdeo e verificar a partir de qual valor a qualidade do v´ıdeo reproduzida para o usu´ario foi excelente.
2.4
Relat´
orio T´
ecnico
O relat´orio consiste de um documento em formato PDF (trab.pdf ) contendo as seguintes se¸c˜oes:
1. Introdu¸c˜ao 2. Implementa¸cao 3. Modelo Anal´ıtico
4. Experimenta¸c˜ao - descri¸cao dos experimentos realizados e apresenta¸c˜ao de todos os resultados;
5. Valida¸c˜ao - apresenta¸c˜ao das inferˆencias realizadas e respostas obtidas no processo de valida¸c˜ao dos resultados (modelagem anal´ıtica vs. experimenta¸c˜ao);
6. Discuss˜ao - os alunos devem discutir sobre os experimentos realizados e a metodo-logia aplicada. Nesa se¸c˜ao deve-se argumentar o sucesso ou fracasso no processo de valida¸c˜ao dos resultados. Al´em disso, os resultados obtidos dever˜ao ser confrontados com a caracteriza¸c˜ao realizada anteriormente, ou seja, na sua opini˜ao o modelo de fila foi ou n˜ao foi satisfat´orio. Deve-se usar o modelo para analisar outros cen´arios ex: se a capacidade (banda dispon´ıvel) for reduzida, quais s˜ao as suas recomenda¸c˜oes e futuras melhorias. Ao longo do texto devem ser apresentadas justificativas claras. 7. Conclus˜ao
3
Condi¸
c˜
oes de entrega
• Data de entrega: o trabalho dever´a ser entregue at´e `as 00:00:h do dia 26/10/2009 (quinta-feira) via email. N˜ao ser˜ao aceitos trabalhos ap´os o prazo. N˜ao aceitarei nenhum argumento para justificar atrasos.
• Grupo: este trabalho poder´a ser desenvolvido em grupos de, no m´aximo, trˆes pessoas. Quest˜oes relativas ao trabalho poder˜ao ser inclu´ıdas na segunda prova da disciplina.
3.1
Como entregar:
• Enviar todos os arquivos da implementa¸c˜ao, anal´ıtico e relat´orio do seu trabalho por e-mail para magnos@ninfa.inf.ufes.br. Somente trabalhos enviados para este endere¸co ser˜ao recebidos.
• teoria filas:trab:nome1:nome2:nome3
Ex: teoria filas:trab:JoaoSilva:JoanaSilveira
O nome do arquivo contendo o trabalho enviado em anexo deve ser trab.tar.gz. Ele ser´a descompactado da seguinte forma: tar xvzf trab.tar.gz e dever´a conter os c´odigos fontes al´em do arquivo chamado Makefile, com as regras de compila¸c˜ao do programa.
Ao digitar: make all deve ser gerado o execut´avel trab
Ap´os o envio vocˆe receber´a uma confirma¸c˜ao de recebimento do trabalho. Caso isso n˜ao aconte¸ca, reenvie o seu trabalho para o mesmo endere¸co. Evidentemente aguarde um certo per´ıodo para reenviar.
Na mensagem de confirma¸c˜ao do seu trabalho haver´a um hash MD5. Para garantir que o arquivo enviado n˜ao foi corrompido, compare o MD5 do email com o gerado em sua m´aquina. Isso ´e feito com o seguinte comando no terminal:
md5sum trab.tar.gz
Caso os valores sejam diferentes, o seu arquivo foi corrompido: reenvie o trabalho novamente.
O recebimento dos trabalhos ´e automatizado. Siga as instru¸c˜oes `a risca pois algum erro na submiss˜ao pode inviabilizar a entrega do seu trabalho.
Seja qual for a linguagem usada, o arquivo trab.tar.gz dever´a conter, obrigatoriamente, um Makefile e n˜ao poder´a conter arquivos .o ou execut´aveis.
4
Apresenta¸
c˜
ao
• A apresenta¸c˜ao do trabalho ser´a feita em sala de aula. A equipe deve preparar slides (uma demo ´e muito bem vinda) para demonstrar os resultados. A presen¸ca de todos os membros do grupo ´e obrigat´oria. A nota ser´a dada para aqueles que estiverem presentes, quem faltar recebe nota ZERO.
• Quest˜oes espec´ıficas sobre o projeto, implementa¸c˜ao e an´alise ser˜ao feitas individu-almente aos membros do grupo.
• Tragam o relat´orio, o c´odigo da aplica¸c˜ao equivalente ao enviado por email (para uma demo no laboratorio ou na sala de aula) e uma an´alise dos resultados obtidos.
5
Avalia¸
c˜
ao
• Trabalhos com erros de compila¸c˜ao receber˜ao nota ZERO. Todos os trabalhos ser˜ao testados no Linux com o compilador especificado no seu relat´orio ( GCC, G++, javac).
• Caso seja detectado pl´agio, todos os envolvidos receber˜ao nota ZERO. Se vocˆe fez o trabalho, n˜ao o repasse a ningu´em.
Casos mais severos de pl´agio ser˜ao reportados `a coordena¸c˜ao do curso para providˆencias.
• O trabalho vale 10 pontos, levarei em conta, al´em da corretude do programa, a clareza e simplicidade de seu c´odigo.
6
Observa¸
c˜
oes importantes
• Caso sejam detectados erros neste documento, ser˜ao divulgadas erratas. Fique atento `as observa¸c˜oes do professor durante as aulas e aos avisos na p´agina do curso.