Sumrio
1. Simulao de Sistemas........................................................................................................ 4 1.1 Um pequeno histrico .................................................................................................. 5 2. Modelos de simulao......................................................................................................... 7 2.1 Introduo.................................................................................................................... 7 2.2 Sistema ......................................................................................................................... 8 2.3 Modelo ......................................................................................................................... 8 2.4 Cenrios ....................................................................................................................... 9 3. Propriedades dos modelos de Simulao .......................................................................... 10 4. Classificao dos modelos de simulao........................................................................... 12 4.1 Modelos Determinsticos............................................................................................ 12 4.2 Modelos Estocsticos................................................................................................. 12 4.3 Modelos Estticos...................................................................................................... 12 4.4 Modelos Dinmicos.................................................................................................... 12 5. Classificao dos Modelos quanto s mudanas que sofrem suas variveis de estado...... 13 5.1 Modelagem para simulao discreta ........................................................................... 15 5.1.1 Simulao orientada a evento.............................................................................. 16 5.1.2 Simulao Orientada ao Exame da Atividade ..................................................... 16 5.1.3 Simulao Orientada a processo.......................................................................... 16 5.2 Modelagem para simulao contnua.......................................................................... 17 5.3 Modelagem para simulao combinada ...................................................................... 17 5.4 Exerccios................................................................................................................... 17 6. Modelos baseados em redes de filas.................................................................................. 22 6.1 Centros de servio...................................................................................................... 22 7. Distribuies de Probabilidade ......................................................................................... 25 7.1 Distribuio uniforme ................................................................................................ 25 7.2 Distribuio exponencial............................................................................................ 25 7.3 Distribuio de Poisson.............................................................................................. 26 7.4 O mtodo de Monte Carlo ......................................................................................... 26 7.5 Algoritmos de escalonamento .................................................................................... 26 7.6 Parmetros do Modelo ............................................................................................... 27 7.7 Estgios para se fazer um modelo .............................................................................. 27 7.8 Trabalho de Implementao de uma ferramenta (simples) de simulao.................... 29 8. Paradigmas de Simulao orientada a objeto .................................................................... 31 8.1 Introduo.................................................................................................................. 31 8.2 Simulao orientada a objetos.................................................................................... 32 8.3 Proposta de classificao de paradigmas de simulao apresentada em [COP97]...... 33 8.3.1 Quanto ao atendimento de solicitaes............................................................... 34 8.3.2 Classificao das entidades quanto forma de descrio dos eventos ................ 34 8.3.3 Classificao quanto ao mecanismo utilizado pelas entidades para troca de informaes ...................................................................................................................... 34 8.3.4 Classificao quanto autonomia da entidade .................................................... 35 8.3.5 Classificao das entidades quanto ao tempo de permanncia no sistema .......... 36 8.3.6 Classificao das entidades quanto capacidade de tomar iniciativas ................ 36 8.3.7 Classificao quanto tica pela qual feita a descrio do comportamento das entidades........................................................................................................................... 36
9. Soluo do Modelo ........................................................................................................... 38 10. Uso do computador com o Arena ..................................................................................... 40 10.1 ARENA .................................................................................................................. 40 10.2 O ambiente do ARENA ......................................................................................... 40 10.3 Construo de modelos........................................................................................... 41 10.4 O exerccio do modelo............................................................................................ 42 10.5 Template................................................................................................................. 43 10.6 Trabalho para ser entregue no final da disciplina .................................................... 45 11. Probabilidade e estatstica em simulao.......................................................................... 46 11.1 Coleta de dados ...................................................................................................... 46 11.2 Estatstica descritiva............................................................................................... 46 11.2.1 Agrupamento de dados........................................................................................ 46 11.2.2 Estimao de parmetros .................................................................................... 48 11.3 Gerao de nmeros e amostras aleatrias ............................................................. 48 11.3.1 Amostras aleatrias ............................................................................................. 48 11.3.2 Teste de aleatoriedade......................................................................................... 49 11.4 Inferncia estatstica ............................................................................................... 49 12. Estudo estatstico ............................................................................................................. 50 12.1 Estimao do intervalo de confiana...................................................................... 50 12.2 Hipteses de teste................................................................................................... 51 12.3 Problemas estatsticos relacionados com a simulao............................................. 51 13. Referncias Bibliogrficas................................................................................................. 53 Anexo I.................................................................................................................................... 54
1. Simulao de Sistemas
A simulao pode ser entendida como o estudo do comportamento de um sistema real atravs do exerccio de um modelo de representao deste sistema. Para isso, tcnicas de simulao so utilizadas. Sistema pode ser interpretado como uma coleo de itens entre os quais se possa encontrar ou definir alguma relao de funcionalidade. O termo simulao bastante genrico, visto que so variadas as formas e mecanismos utilizados para a representao de sistemas. O termo simulao tambm possui grande abrangncia em relao ao seu campo de aplicao. Por exemplo, a simulao pode ser aplicada na industria, organizaes pblicas, na representao de software/hardware, entre outros. Os benefcios da simulao de sistemas, aliados agilidade oferecida pelos meios computacionais, tm sido largamente utilizados como ferramenta auxiliar na soluo de problemas diversos. Justifica-se tal afirmao considerando que, com o uso de um computador, uma grande quantidade de eventos podem ser executados em curto espao de tempo. De modo geral, o uso da simulao recomendada principalmente em dois casos. Primeiro, quando a soluo de problemas muito cara ou mesmo impossvel atravs de experimentos. E em segundo, quando os problemas so muito complexos para tratamento analtico. Com o uso da simulao, principalmente quando se observam caractersticas estocsticas, sistemas podem ter seu comportamento representado com maior fidelidade e realismo. So fatores que tornam desejvel o uso de tcnicas de simulao [FIL95] aliadas aos benefcios computacionais: Tempo: em computador pode-se realizar experimentos que, se executados sobre o sistema real, poderiam consumir anos; Custo: embora a simulao em computador exija recursos humanos e alguns equipamentos, geralmente o custo se mantm muito abaixo se comparado execuo de experimentos sobre o sistema real; Impossibilidade de experimentao direta: h situaes em que experimentaes diretas no sitema real no podem ser realizadas por questes de segurana, de tempo, de acesso, ou ainda de inexistncia (sistema em construo); Visualizao: os computadores oferecem recursos que facilitam a visualizao dos resultados de uma simulao (grficos, tabelas, ...), bem como do estado do sistema durante o exerccio de um modelo; Repetio: depois de construdo, um modelo de representao pode ser executado n vezes a um custo muito baixo; Interferncia: um modelo extremamente mais flexvel para a realizao de mudanas se comparado a um sistema real. Esta uma caracterstica bastante desejvel no estudo de sistemas com objetivos de gerao de informaes de apoio a tomada de decises.
Para a execuo de simulaes, necessria a prvia construo de ao menos um modelo do sistema real que se deseja simular. Resumidamente, modelos de simulao podem ser considerados como uma descrio do sistema real.
Deste modo, o exerccio (execuo) de modelos de simulao em computador tem potencial para fornecer resultados mais precisos sem que seja preciso interferir no sistema real. Tais resultados, quando analisados estatisticamente, produzem informaes que podem contribuir grandemente na tomada de decises que visam a soluo de problemas. Esta caracterstica observada considerando as variadas reas de aplicao da simulao como comentado. Um outro ponto relevante a considerar em simulao a ordem de ocorrncia dos eventos. Considera-se como evento (mudana de estado) qualquer acontecimento que interfere no sistema. Como a simulao trata do comportamento de sistemas, ou seja, ordem em que os eventos acontecem, essencial que uma varivel de tempo seja contabilizada. O tempo em que cada evento ocorre estudado para avaliar se este evento deveria ocorrer naquele instante, antes ou depois. Restringindo um pouco mais a simulao de sistemas para os meios computacionais, e considerando os modelos como um dos mtodos de representao de sistemas, o seguinte conceito pode ser adotado: Simulao uma tcnica numrica para realizar experincias em um computador digital, a qual envolve certos tipos de modelos lgicos que descrevem o comportamento de um sistema sobre extensos intervalos de tempo. Basicamente, o uso da simulao estimulado quando necessrio [FIL95]: Estimar distribuio de variveis aleatrias; Testar hipteses estatsticas; Comparar cenrios representando diferentes solues para um problema em estudo; Avaliar o comportamento de uma soluo analtica; Avaliar um processo de tomadas de deciso em tempo real.
Os tpicos abordados nesta seo so apresentados em maiores detalhes nos prximos captulos desta apostila.
No final da dcada de 80 o valor da simulao foi reconhecido por muitas organizaes. Tanto, que vrias delas fizeram da simulao um requisito para que investimentos grandes pudessem ser aprovados. No entanto, organizaes pequenas raramente utilizavam essa tcnica. Nos anos 90 a simulao atingiu um grau de maturidade suficiente para que seja adotada por organizaes de variadas reas e diferentes portes. utilizada em estgios iniciais de projetos, em animaes, pesquisa, entre outros. Este avano foi principalmente possvel pelo surgimento de ferramentas voltadas para a simulao e fceis de usar, e pela disponibilidade de computadores mais rpidos e baratos. No futuro, (escrever perspectivas)....
2. Modelos de simulao
2.1 Introduo
Os problemas enfrentados pela indstria, centros de pesquisas, organizaes em geral so cada vez maiores e mais complexos, exigindo, cada vez mais, tcnicas e procedimentos para auxlio nos seus tratamentos. Uma destas tcnicas a modelagem para simulao cujo objetivo representar o comportamento de sistemas atravs de um modelo. A resoluo de quaisquer problemas requer primeiro que estes sejam bem definidos, ou seja, especificar com preciso suficiente os objetivos. Para tanto, necessrio um bom conhecimento do sistema sobre estudo para que se possa entender o problema sem dubiedade. A situao no diferente quando se quer resolver problemas usando simulao. O sistema deve ser bem conhecido para que se possa detectar os problemas relacionados e traar as metas a serem alcanadas. A simulao de sistemas pode ser desmembrada em algumas etapas bsicas [FIL95], tambm discutidas no mbito de pesquisa operacional. So elas: Problema: identificao de um problema apresentado pelo sistema em estudo, bem como das partes (ou sub-sistemas) que interferem no problema identificado (envolve coleta de amostras); Estudo do sistema: descrever o sistema em termos de componentes, atividades, entidades, eventos, restries, propsitos que motivaram o uso da simulao para soluo de problemas; Modelo: construo do modelo de representao do sistema em estudo. O modelo precisa ser validado; Soluo: realizar experimentos sobre o modelo construdo, e utilizar as informaes resultantes para propor solues ao problema detectado inicialmente; Operacionalizar soluo: Executar alteraes no sistema real com base nos resultados de simulao; Realimentao: reelaborao parcial do trabalho de acordo com resultados obtidos na interferncia sobre o sistema real. Problema Sistema Modelo Soluo Operacionalizao Realimentao
Figura 2.1 Etapas de Simulao (Fonte: [FIL95]) Os propsitos essenciais do estudo das tcnicas de simulao de sistemas se concentram principalmente nas atividades de estudo do sistema real, construo do modelo, e execuo de experimentos sobre o modelo. So tambm os propsitos principais desta disciplina.
2.2 Sistema
Para os propsitos desta disciplina, o termo sistema pode ser definido como um conjunto estruturado de itens (componentes ou sub-sistemas) entre os quais se possa encontrar ou definir alguma relao de funcionalidade. O valor dos atributos de um componente, num dado instante de tempo, definem o estado do modelo.
2.3 Modelo
De modo geral, os modelos so utilizados para solucionar problemas que seriam muito caros em uma soluo experimental ou muito complicados para tratamento analtico. A construo de um modelo pode visar a soluo de um problema especfico dentro de um sistema. Deste modo, pode existir um nmero variado de modelos para um mesmo sistema, cada modelo respeitando as caractersticas de um problema particular. Identificado um problema dentro de um sistema para o qual se pode construir um modelo, preciso que se tenha uma estrutura organizada para descrever este modelo. Para isso, utilizada uma linguagem de simulao capaz de fornecer esta estrutura, bem como permitir a traduo do modelo em uma forma aceitvel para seu processamento em computador. Neste caso, o computador ser utilizado para exercitar o modelo de forma a produzir sadas que possam ser analisadas, a fim de que decises relacionadas com a resoluo do problema possam ser tomadas. Com a ajuda de computadores possvel simular grande quantidade de eventos em curto espao de tempo. Atravs do exerccio de um modelo que representa um sistema possvel fazer uma estimativa do comportamento futuro deste sistema. Ao exerccio de um modelo d-se o nome de simulao. Vale ressaltar que o experimento no pode ser comparado com a simulao. Enquanto experimento caracterizado por tentativas de mudanas no prprio sistema, simulao exercida sobre uma representao do sistema. Tambm, o experimento pode ter um custo muito elevado, o que justifica, em grande parte dos casos, a construo de modelos para simulao. Como exemplos prticos da aplicao da simulao pode-se citar o estudo dos efeitos de variaes no meio ambiente, mudanas complexas em um determinado ambiente, ou ensino de habilidades (simulador de vo). Diante dos resultados do exerccio de um modelo so realizadas anlises de situaes novas sobre as quais se tem pouco conhecimento, permite fornecer dados para concepo de novas regras, ou ganho de experincia no projeto do prprio modelo.
Modelos tambm devem incorporar elementos reais de forma simples, mantendo uma relao custo X benefcio coerente. Ou seja, evitar a construo de um modelo muito complexo que dificulte ou mesmo impossibilite a sua compreenso e manipulao. Evitar tambm a construo de modelos demasiadamente simples que no representem as propriedades desejveis do sistema em estudo. De acordo com a nfase dada aqui para simulao com o uso de computadores, pode-se definir a simulao como uma tcnica numrica par realizar experincias em um computador digital, as quais envolvem certos tipos de modelos lgicos que descrevem o comportamento de um sistema sobre extensos intervalos de tempo. Por sistema entende-se como uma coleo de itens entre os quais se possa encontrar ou definir alguma relao, que so objeto de estudo na construo do modelo. Ento, os modelos so descries de um sistema, considerando que eles so concebidos atravs de uma abstrao da realidade, ou seja, apenas aspectos relevantes do sistema real so considerados.
2.4 Cenrios
Dentro do contexto de otimizao, existem objetivos a serem alcanados pelo sistema que deve trabalhar satisfazendo restries impostas pelo meio ambiente. Desta forma, a soluo do problema em estudo deve ser a que melhor atinge os objetivos dentre as que satisfazem as restries. A observao e o acompanhamento do comportamento do modelo, operando com uma determinada soluo, so feitas para avaliar se as restries esto sendo satisfeitas e se os objetivos esto sendo alcanados. Com freqncia, uma soluo para o problema pode representar uma configurao para o sistema ou uma poltica de operao do sistema. Assim, as diferentes alternativas de soluo do problema devem ser enumeradas para a definio dos cenrios a serem avaliados durante os experimentos de simulao [FIL95]. Pode acontecer que os cenrios em comparao sejam to distintos que so desenvolvidos dois ou mais programas para representa-los. Mesmo em tais casos considera-se que h um nico modelo que seleciona o programa a ser executado de acordo com o cenrio desejado.
selecionados. Variveis endgenas so as variveis dependentes ou de sada do sistema. So geradas pela interao das variveis exgenas e de estado, de acordo com as caractersticas operacionais do sistema. Em um sistema de gerenciamento de redes, so variveis endgenas a mdia de operaes realizadas com sucesso ou o conjunto de informaes resultantes da ocorrncia de eventos nos objetos gerenciados. Dependendo da finalidade de uma simulao, uma varivel pode ser classificada como varivel exgena, de estado ou endgena. (Citar exemplo de agente de gerenciamento dentro do sistema) Quanto s variveis exgenas, elas podem ser utilizadas de dois modos diferentes em experincias de simulao. Na primeira, elas so tratadas como parmetros. Neste caso, os parmetros devem ser determinados pelas condies do problema ou pelos elementos encarregados da deciso. Tais condies ou elementos devem ser previamente lidos pelo computador como dados de entrada, ou geradas internamente se forem variveis estocsticas (atravs de mtodos pr-definidos). As relaes funcionais que descrevem as interaes das variveis com os componentes de um modelo so duplas: identidades e caractersticas operacionais. Ambas so usadas para gerar o comportamento do sistema. As identidades podem tomar a forma quer de definies quer de proposies tautolgicas relativas aos componentes do modelo. Para um sistema de gerenciamento, a mtrica do trfego entre uma estao gerente e um recurso remoto pode ser considerado um exemplo. (Em uma firma, lucro = vendas - custo) Uma caracterstica operacional uma hiptese, geralmente uma equao matemtica que relaciona as variveis endgenas e de estado de um sistema com usas variveis exgenas. Diferentemente dos componentes e variveis que podem ser diretamente observados no sistema real, os parmetros das caractersticas operacionais somente podem ser obtidos atravs da inferncia estatstica.
5. Classificao dos Modelos quanto s mudanas que sofrem suas variveis de estado
Os modelos de um sistema podem ser classificados como modelos de mudana discreta e modelos de mudana contnua. Estes termos descrevem o modelo e no o sistema. Um sistema pode ser modelado tanto atravs de um modelo de mudana discreta (ou discreto) quanto um modelo de mudana contnua (ou contnuo). O tempo a principal varivel independente em um modelo de simulao dinmico. As demais variveis (variveis de estado) podem ser consideradas como funes do tempo, portanto so variveis dependentes. As variveis de estado do sistema so classificadas de acordo com os valores que tomam ao longo da simulao. Os modelos dinmicos so classificados de acordo com os instantes de tempo em que as variveis de estado tm seus valores alterados. Um modelo discreto se todas as variveis de estado tm seus valores alterados apenas em um nmero contvel de instantes de tempo. Um modelo contnuo se todas as variveis de estado tm seus valores alterados a qualquer instante de tempo. Um modelo misto se algumas variveis de estado tm os seus valores alterados a qualquer instante de tempo e outras apenas em um nmero contvel de instantes de tempo [FIL95]. Modelo de mudana discreta: aquele em que as variveis dependentes variam discretamente em pontos especficos do tempo simulado, referidos como tempo de evento. A varivel tempo pode ser contnua ou discreta em tais modelos, dependendo se as mudanas discretas nas variveis dependentes podem ocorrer em qualquer ponto do tempo real ou unicamente em pontos predeterminados.
Varivel dependente
Tempo de evento
Modelo de mudana contnua: aquele em que as variveis dependentes podem variar continuamente ao longo do tempo simulado. Um modelo contnuo pode ser tanto contnuo no tempo ou discreto no tempo, dependendo se os valores das variveis dependentes esto sempre disponveis em qualquer ponto do tempo simulado, ou apenas em pontos especficos.
Algumas vezes pode ser til modelar um sistema discreto por um modelo contnuo, considerando as entidades do sistema como um agregado e no como entidades individuais. Podemos encontrar um exemplo de tal convenincia na anlise do movimento das partculas de um gs.
Varivel dependente
Tempo
Modelo de mudana combinada: aquele em que as variveis dependentes podem variar discretamente, continuamente, ou continuamente com saltos discretos superpostos. A varivel tempo pode ser discreta ou contnua. O aspecto mais importante de uma simulao combinada surge nas mudanas de variaes discretas para contnuas e vice-versa. Uma linguagem de simulao combinada deve conter meios de detectar tis ocorrncias e modelar suas conseqncias. Em resumo, chama-se simulao discreta ao exerccio de um modelo discreto. De forma anloga, de simulao contnua ao exerccio de um modelo contnuo. E, de simulao combinada ao exerccio de um modelo combinado.
Atividade
A formulao de um modelo para simulao discreta pode ser realizada de trs formas: Pela definio das mudanas nos estados que podem ocorrer em cada tempo de evento;
Pela descrio das atividades nas quais as entidades do sistema se envolvem e; Pela descrio do processo atravs do qual as entidades do sistema fluem. Um evento acontece em um ponto isolado do tempo, no qual decises devem ser tomadas de forma a iniciar ou terminar um atividade. Um processo uma seqncia ordenada de eventos e pode englobar vrias atividades. Estes conceitos levam naturalmente a trs alternativas de viso de um modelo para simulao discreta: Modelagem orientada a evento Modelagem orientada ao exame da atividade Modelagem orientada a processo
5.1.1 Simulao orientada a evento Na simulao orientada a evento, um sistema modelado pela definio das mudanas que ocorrem no tempo de evento. A tarefa do modelador determinar os eventos que podem causar a mudana no estado do sistema e ento desenvolver a lgica associada com cada tipo de evento. A simulao do sistema produzida pela execuo da lgica associada a cada evento, em uma seqncia ordenada no tempo. Falar do professor e aluno, o estado definido pelo estado do professor e pelo nmero de alunos esperando. Cada mudana de estado um evento ...
5.1.2 Simulao Orientada ao Exame da Atividade Neste caso, o modelador descreve as atividades nas quais as entidades do sistema esto engajadas e prescreve as condies que causam o incio e o fim de uma atividade. Os eventos que iniciam ou terminam uma atividade no so escalonados pelo modelador, mas iniciados a partir das condies especificadas para a atividade. medida que o tempo simulado avana, as condies para incio ou fim de uma atividade so examinadas. Para nos assegurarmos de que cada atividade levada em considerao, necessrio examinar todo o conjunto de atividades a cada avano do tempo.
5.1.3 Simulao Orientada a processo Muitas estruturas de modelos para simulao incluem seqncias de eventos as quais ocorrem em padres definidos, por exemplo, uma fila de entidades esperando por um servidor. A lgica associada com tal seqncia de eventos pode ser generalizada e definida por uma nica afirmao. Uma linguagem para simulao pode ento traduzir tal afirmao na seqncia de eventos associada. Uma linguagem orientada a processo emprega tais afirmaes para modelar o fluxo das entidades no sistema. Estas afirmaes definem uma seqncia de eventos que automaticamente executada pela linguagem de simulao. Exemplo do professor:
crie entidades chegando a cada T unidades de tempo espere pelo professor avance o tempo simulado pelo tempo de servio libere o professor termine as atividades da entidade
5.4 Exerccios
1. Processo de atendimento a alunos por um professor. Ao chegar na sala do professor, o aluno deve esperar em uma fila at que chegue a sua vez de ser atendido. Quando chega a sua vez, o aluno entra na sala, tira suas dvidas e, quando se sente satisfeito, segue adiante para continuar seus estudos, dando oportunidade a que um novo aluno possa ser atendido. Apenas por uma questo de simplicidade, vamos assumir que o tempo de chegada dos alunos e o tempo que cada aluno gasta sendo atendido conhecido, sendo os seus valores dados na tabela abaixo. Tabela1 - Tempo de chegada de alunos e tempo de atendimento Aluno Tempo de chegada Tempo de atendimento 1 6,0 9,0 2 24,0 7,5 3 26,0 10,0 4 35,0 6,5 5 44,0 6,0 6 52,0 5,0 7 58,0 9,0 8 70,0 7,5 9 77,0 6,5 10 89,0 11,0
O objetivo realizar uma simulao manual do processo apresentado acima, de forma a determinar o tempo mdio que um estudante passa tirando dvidas com o professor e a percentagem do tempo que o professor fica ocupado tirando dvidas. O sistema acima pode ser definido pelo professor e pelos estudantes. No so considerados estudantes que no tm dvidas. Assume-se ento, que o processo de estudo do aluno, atravs do qual ele percebe suas dvidas no importante para o nosso objetivo. Ao excluirmos este processo do escopo do sistema, assume-se que o aparecimento de alunos querendo atendimento so entradas do nosso sistema, bem como a demanda de tempo de atendimento para cada aluno. Neste processo de simulao usa-se a linguagem natural, considerando que os alunos so atendidos por ordem de chegada. Processo de simulao Definio dos estados do sistema: nmero de estudantes espera de atendimento ocupao ou no do professor importante frisar que existem outros modos de definir o estado de um sistema. Por exemplo, com base no nmero total de estudantes no sistema. A mudana de estado do sistema pode ocorrer devido a dois eventos: um estudante chega para atendimento um estudante acaba de tirar suas dvidas e parte do sistema Para ilustrar a simulao pode-se traar o retrato dinmico do estado do sistema, pelo processamento dos eventos de chegada e sada de estudantes ordenados no tempo. A simulao manual do exemplo, correspondente s entradas da tabela inicial, pode ser apresentada de acordo com duas vises. A viso do estudante (descrio orientada a processo) e a viso da ocorrncia ordenada dos eventos, no caso da viso do professor (descrio orientada a evento). A tabela seguinte apresenta a viso do estudante, assumindo inicialmente: que no havia estudantes no sistema, que o professor estava desocupado e que o primeiro aluno com dvida chegou no tempo 2,4 minutos. Na tabela, as colunas 1 e 2 foram tiradas da tabela inicial. A coluna 3 depende se o aluno anterior j partiu do sistema. O valor da coluna vai ser o maior valor entre o tempo de chegada do estudante e o tempo de partida do aluno imediatamente anterior. A coluna 4 a soma da coluna 3 com o valor do tempo de atendimento dado na tabela inicial. A coluna 5 computa o tempo que o estudante passa na fila, simplesmente subtraindo do tempo que o estudante comea a ser atendido (coluna 3), o tempo em que o estudante chegou ao sistema (coluna 2). De forma similar, a coluna 6 computa o tempo que um estudante passa no sistema, subtraindo seu tempo de chegada (coluna 2), do seu tempo de sada (coluna 4). O tempo mdio que um estudante passa no sistema pode ser facilmente calculado pela tabela abaixo, sendo seu valor igual a 9,75 minutos.
Aluno 1 2 3 4 5 6 7 8 9 10
tempo de tempo de chegada a entrada em sala atendimento 6,0 6,0 24,0 24,0 26,0 31,5 35,0 41,5 44,0 48,0 52,0 54,0 58,0 59,0 70,0 70,0 77,0 77,5 89,0 89,0
tempo de tempo sada da sala espera fila 15,0 0,0 31,5 0,0 41,5 5,5 48,0 6,5 54,0 4,0 59,0 2,0 68,0 1,0 77,5 0,0 84,0 0,5 100,0 0,0
de tempo total na gasto 9,0 7,5 15,5 13,0 10,0 7,0 10,0 7,5 7,0 11,0
Uma descrio do exemplo orientada a evento pode ser vista na tabela abaixo. Nesta tabela, os eventos foram listados em ordem cronolgica, e nela podemos facilmente calcular a percentagem para ocupao do professor, cujo valor igual a 78%. Para manter a ordem cronolgica dos eventos, foi necessrio manter um calendrio de futuros eventos a serem processados, o que foi conseguido colocando em ordem correta os eventos de chegada e partida de estudantes. A ordem correta do processamento dos eventos foi obtida deste calendrio, que vai sempre fornecer com exatido o prximo evento a ser processado.
Tabela 3 - Simulao Manual: viso do professor.
Tempo de aluno evento 0,0 6,0 15,0 24,0 26,0 31,5 35,0 41,0 44,0 48,0 52,0 54,0 58,0 59,0 68,0 70,0 77,0 77,5 84,0 89,0 100,0 1 1 2 3 2 4 3 5 4 6 5 7 6 7 8 9 8 9 10 10
tipo do nmero de evento alunos na fila inicio 0 chegada 0 sada 0 chegada 0 chegada 1 sada 0 chegada 1 sada 0 chegada 1 sada 0 chegada 1 sada 0 chegada 1 sada 0 sada 0 chegada 0 chegada 1 sada 0 Sada 0 chegada 0 Sada 0
estado do tempo de professor ocupao do prof. livre ocupado livre 9,0 ocupado ocupado ocupado ocupado ocupado ocupado ocupado ocupado ocupado ocupado ocupado livre 44,0 ocupado ocupado ocupado livre 14,0 ocupado livre 11,0
Qualquer que seja a viso de descrio do exemplo, a lgica associada ao processo de chegada e partida de estudantes depende do estado do sistema. No caso da chegada do estudante, se o professor est livre ele se torna ocupado, entrando o estudante em atendimento, tendo seu tempo de partida escalonado para o tempo corrente mais seu tempo de atendimento. Se o professor estiver ocupado, o estudante entra na fila de espera, aumentando o nmero de alunos em espera. No caso de partida de um estudante, se existe algum outro estudante em espera, o estado do professor ainda continua ocupa, o nmero de estudantes na fila decrementado de uma unidade, o novo estudante entra em atendimento, sendo sua partida escalonada para o tempo corrente mais seu tempo de atendimento. Contudo, se a fila de espera estiver vazia, simplesmente o estado do professor alterado para livre. 2. Um porto possui um ancoradouro que pode acomodar somente um barco a cada vez. Barcos chegam entre 30(+-5) horas cada, e esperam na ordem de chegada para descarregar. A descarga leva 25(+-20) horas. Assim que um barco termina sua descarga ele deixa o ancoradouro. Simule este sistema para 10 barcos. 3. Dados os seguintes tempos de chegada para um centro de servio nico (0,2; 0,6; 2,2; 2,6; 3,0) e os tempos de servio correspondentes (0,8; 0,4; 1,2; 0,2; 0,2), faa uma tabela para a simulao do sistema, com uma viso orientada a evento, e uma outra com uma viso orientada a processo, calculando quando o servio comea, o tempo de partida, e o tempo de espera na fila de cada um dos cinco usurios. Sabendo que o tempo total de simulao de 4,0 unidades de tempo, calcule a utilizao, o tempo mdio de espera, o tamanho mdio da fila e a vazo do centro de servio. 4. Imagine vrios microcomputadores ligados entre si por um caminho fechado unidirecional (rede em anel). Para trocarem mensagens, as vrias estaes devem esperar pelo recebimento de uma seqncia padro de bits, chamada permisso. Quando de posse da permisso, a estao pode enviar uma mensagem, passando a permisso logo a seguir para a prxima estao no anel. Se uma estao receber a permisso e no tiver mensagens para enviar, deve passar a permisso frente, imediatamente. A cada mensagem recebida, a estao deve enviar estao emissora um reconhecimento de recepo da mensagem (um outro padro especial de bits). Sabendo-se que o tamanho das mensagens varivel, descreva o sistema especificando quem so as entidades, quais so as atividades que estas entidades esto envolvidas, qual o processo por que passa uma entidade e quais os eventos associados ao sistema. 5. Um orelho usado por pessoas que querem telefonar. O intervalo mdio de chegada dessas pessoas de 15 minutos (+-10). Elas gastam de 5 a 15 minutos telefonando. Simular este sistema para 10 pessoas. 6. Em um banco, um caixa, ao atender um cliente para saque de dinheiro, deve ir at o cadastro para conferir a assinatura do cheque, no que leva um tempo uniformemente distribudo com mdia CONFERE. Sabendo que existem trs caixas para saque, que os clientes escolhem um dos caixas com a mesma probabilidade, que o tempo de atendimento ao cliente, alm do tempo de conferncia de assinatura, exponencialmente distribudo com mdia ATENDE, e que os clientes chegam ao banco com um tempo entre chegadas tambm exponencialmente distribudo, mas com mdia CHEG, faa uma descrio do sistema usando a orientao a evento, e uma outra usando a orientao a processo. 7. Escreva um programa em Pascal, ou uma outra linguagem qualquer, para a simulao do problema do professor tirando dvidas apresentado anteriormente. Use orientao a evento sabendo que o tempo entre chegadas e atendimento so randmicos, e no os dados na tabela.
8. Uma universidade mantm um setor de reprografia com 3 mquinas de xerox, sendo que uma das mquinas tem rendimento 30% inferior s outras duas. E destas duas, uma permite a cpia automtica de folhas avulsas, inclusive frente e verso. A mquina mais lenta alcana 20 cpias por minuto, se de um nico original. Em geral, as duas mquinas manuais so utilizadas para cpia de material encadernado, e a automtica para folhas avulsas, contudo, podendo tambm ser utilizada em material encadernado. Este tipo de material consome tempo adicional entre as trocas de original, naturalmente. O setor mantm um arquivo onde so armazenados materiais deixados pelos professores. Cerca de 30% das cpias so feitas a partir do material arquivado. Os pedidos para cpias so atendidos na ordem de chegada, salvo + - 5% que so considerados urgentes, e que geralmente consomem pouco tempo (poucas cpias de poucos originais). Atravs do exerccio de modelos de simulao, avalie a capacidade de atendimento deste setor diante de aspectos do sistema que considere importante para seu bom funcionamento. (e.g. limite de usurios do xerox para que a fila se mantenha com mdia inferior a 10 pessoas). 9. O balco de uma sorveteria ~e atendido por um atendente. Os fregueses chegam de acordo com uma distribuio uniforme com intervalo [1-5] minutos. Eles so atendidos em uma base de acordo com a disciplina de fila First In First Out. O tempo de atendimento de cada cliente dado pela distribuio uniforme com intervalo [1-8]. Construa um ou mais modelos de simulao de modo a determinar o se vivel contratar um segundo atendente para a sorveteria. Justifique sua resposta utilizando argumentos tais como ociosidade dos atendentes, entre outros. 10. ......
6.1
Centros de servio
Uma rede de filas bsica consiste de entidades chamadas centros de servio e um conjunto de entidades chamadas usurios, que recebem os servios nos centros.
1 fila 1 servidor
1 fila 2 servidores
2 filas 1 servidor
Infinitos servidores
Um centro de servio consiste de um ou mais servidores, correspondentes a recursos no sistema modelado, e uma rea de espera (fila) para usurios que esto requisitando o servio. Alguns analistas chamam os centros de servios de servidores ou filas. A UCP de um computador um exemplo de recurso que pode ser modelado como um centro de servio. Um usurio corresponde a uma entidade que circula pelo sistema modelado. Alguns analistas se referem aos usurios como tarefas ou transaes. Um programa de computador um exemplo de entidade que pode ser modelada por um usurio. A rede de filas mais simples corresponde a um nico centro de servio. O sistema pode ser muito complexo, mas o modelo simples. claro que modelos com um nico centro de servio no podem capturar toda a complexidade dos sistemas reais. Contudo, s vezes, tais modelos oferecem informaes bastante teis. Um nico centro de servio em um modelo de rede de filas possui vrios mecanismos relacionando os usurios com a rea de espera e o servidor. Por exemplo, em um modelo de prestao de servios hipottico existe um nico servidor para o atendimento de clientes (entidades temporrias). O atendimento individual, ininterrupto e realizado de acordo com a ordem de chegada dos clientes. Quando diversos usurios aguardam por um servio e o servidor fica livre, uma deciso deve ser tomada sobre qual usurio deve entrar em servio (disciplina de fila). Encerrado o atendimento de um cliente, um outro cliente da fila pode ento ser atendido. Caso a fila esteja vazia, o servidor permanece ocioso at a chegada do prximo cliente [FIL95]. Supondo que ocorram a chegada e o atendimento de n clientes com intervalos de chegada r1...rn contados a partir do instante 0, e sejam s1...sn os valores dos tempos de atendimento dos clientes. Denote por r=(ri) o vetor de intervalos entre chegadas e por s=(si) o vetor de tempos de atendimento. Assim: Intervalo entre chegadas: ri; Tempo de atendimento: si; Onde: i = 1...n
A partir desses dados, so determinados para cada cliente, os instantes de chegada, o incio e trmino de atendimento ou partida do sistema, dados pelas seguintes expresses: Chegada: a i = a i1 + ri Incio de atendimento: bi = max{ ci-1, bi} i = 1...n Trmino de atendimento: ci = bi + si
Desta forma, o instante de chegada de cada cliente calculado a partir do instante de chegada do cliente anterior adicionando-se o tamanho do intervalo correspondente. O atendimento de um cliente tem incio ou no instante de sua chegada, caso o servidor esteja ocioso por no haver cliente no sistema, ou no instante de trmino do atendimento do cliente anterior, caso contrrio. Finalmente, o instante de trmino de atendimento obtido somando-se o instante de incio de atendimento ao tempo de atendimento. A partir desses valores, definem-se os tempos de espera na fila e de permanncia no sistema para cada cliente: Tempo de fila: wi = bi a i Tempo de sistema: ui = ci a i Onde: i = 1...n
O tempo de espera de um cliente o tempo durante o qual ele permanece na fila. O tempo de sistema o tempo durante o qual o cliente permanece no sistema e ompreende o tempo de espera e o tempo de atendimento: u = w + s. Exemplo: sejam r=(1,2,1,7,1,4) e s=(4,2,1,4,3,4) Tabela 6.1 Exemplo de calculo de a, b, c, u, w, e v I 1 2 3 4 5 6 r 1 2 1 7 1 4 s 4 2 1 4 3 4 a 1 3 4 11 12 16 b 1 5 7 11 15 18 c 5 7 8 15 18 22 u 4 4 4 4 6 6 w 0 2 3 0 3 2 V 2 3 3 2
Um centro de servio pode conter vrios servidores. Um servidor pode atender um usurio com uma taxa constante, ou a taxa de servio pode ser dependente do nmero de usurios na fila de espera. A fila de espera pode ter uma capacidade infinita ou finita. Pode tambm existir diferentes tipos de usurios (classe de usurios). Centros de servios so recursos ativos. Centros que no realizam servio so os centros passivos. Centro de servios passivos so uma extenso bastante poderosa s redes de filas convencionais. A memria de um computador um exemplo de recurso que poderia ser modelado como um centro de servio passivo. Os recursos passivos permitem o compartilhamento de um nmero finito de itens do recurso (fichas do recurso passivo). Existem variados tipos de centros de servios que so interconectados:
Modelo aberto
Modelo fechado Modelo misto Figura 6.2 Tipos de modelos Quando um usurio deixa um centro de servio, algum mecanismo deve ser fornecido de forma a determinar para qual centro ir a seguir. Isto roteamento.
7.
Distribuies de Probabilidade
Distribuies de probabilidade ocorrem em quase todas as partes. Usurios chegam a um centro de servio de acordo com um certo padro chamado distribuio de chegada. A quantidade de servio requerida segue um padro correspondente, que chamamos de distribuio de demanda de trabalho. No caso especial, e ao mesmo tempo tpico, em que o servidor tem uma capacidade fixa, o valor da distribuio da demanda de trabalho pode ser dividido pela capacidade, na determinao de um padro chamado distribuio de tempo de servio . Filas passivas tm tambm distribuies associadas, correspondentes ao nmero de fichas requeridas por um usurio. Uma soluo para a introduo desta variabilidade estatstica em modelos consiste na observao e medida de padres que ocorrem durante um certo perodo de operao do sistema. Os valores especficos so armazenados e posteriormente utilizados como entradas para o modelo de simulao. Tambm pode-se introduzir uma distribuio aleatria nos modelos, o que mais vivel. O modo mais simples de se representar uma distribuio atravs do uso de funes de distribuio e funes de densidade de probabilidade.
a ocorrncia de um evento independente da ocorrncia de outros. Uma propriedade importante da distribuio exponencial que ela no tem memria, ou seja, se uma atividade vem ocorrendo h t unidades de tempo, ento a probabilidade que esta atividade termine em t unidades de tempo a mesma que se a atividade tivesse comeado no instante t, qualquer que seja t. O uso da distribuio exponencial supe uma grande varincia.
f ( x) =
,0
1
2
e x
,0 ,5 =2,0
=0,5 =1,0
Algoritmos de escalonamento so utilizados para decidir que usurio deve entrar em servio quanto um servidor se encontra disponvel. So conhecidos como disciplinas da fila. So elas: FCFS (first come first served): os usurios entram em servio exatamente na mesma ordem que chegam ao centro de servio correspondente; LCFS (last come fisrt served): tem a estrutura de uma pilha onde o ltimo usurio a chegar ao centro o que entrar em servio assim que um servidor estiver disponvel. Alguns consideram esta disciplina preemptiva (se um usurio chegar ao centro com esta disciplina e um outro usurio estiver em servio, este ltimo retirado do atendimento, colocado no topo da pilha, entrando o novo usurios em servio. Assim que este completar seu servio, o usurio no topo da pilha entra novamente em atendimento). RR (round robin): um usurio escalonado atendido por um intervalo de tempo pequeno, um quantum. Se o servio no completado neste tempo, ele colocado no final da fila e outro usurio atendido at que esgote seu quantum ou termine o servio; PS (processos sharing): todos os usurios dividem a capacidade do centro de servio, como se executassem em paralelo (comparada a RR, tem quantum = 0); IS (infinite server): no existe fila, todos os usurios so servidos assim que chegam ao centro de servio; PRTY (nonpreemptive priority): usurio em atendimento no afetado quando um usurio de mais alta prioridade chega ao centro; PRTYPR (preemptive-resume priority): a chegada de um usurio com mais alta prioridade a um centro tira de servio o de prioridade mais baixa, que s reentrar em servio assim que todos os usurrios com prioridades maiores que a sua forem atendidos.
O processo de construo de modelos que representam sistemas reais pode ser dirigido por uma seqncia de estgios de forma a simplificar, agilizar, e melhorar a fidelidade do modelo. Considerando a estreita relao entre a simulao e a orientao a objetos, como discutido anteriormente neste texto, as tcnicas de engenharia de software oferecem contribuies relevantes no trabalho de projeto de modelos. Neste contexto, a seguir so brevemente apresentados os estgios por que um projetista passa ao construir modelos para simulao de sistemas. So eles: 1. Identificao do problema: neste estgio, o problema discutido no escopo do sistema real. Por exemplo, a existncia de uma ociosidade exagerada em um equipamento que pertena a uma linha de montagem, ou a necessidade de reestruturao no fluxo de informaes em um departamento administrativo, ou o desempenho insuficiente de um protocolo de comunicao em um multicomputador. Uma vez identificado um problema, pode-se avaliar a viabilidade do uso da simulao para o trabalho de busca de alternativas coerentes. Esta avaliao acontece em consonncia com os propsitos da simulao. 2. Formulao do problema: aps identificado, o problema ento formulado com vistas simulao. Tomando como exemplo o protocolo de comunicao do item anterior, o buffer designado para o armazenamento de mensagens entrantes pode estar sendo insuficiente. Devido natureza evolucionria da simulao, a definio do problema um processo contnuo, que ocorre durante todo o estudo; 3. Objetivos: na seqncia, o objetivo fazer com que as polticas do protocolo sejam manipuladas de forma que o nmero de mensagens no buffer no ultrapasse um determinado limite. A partir da so definidos os objetivos especficos, estgio que enumera as caractersticas internas do sistema real que precisam ser representadas no modelo. Por exemplo, a freqncia com que o protocolo recebe mensagens para enviar, tamanho das mensagens, etc. 4. Construo do modelo: um modelo vai consistir de uma descrio esttica e de uma descrio dinmica. A descrio esttica define os elementos do sistema e suas caractersticas. A descrio dinmica vai definir o modo como os elementos do sistema interagem causando mudanas no estado do sistema no decorrer do tempo. O modelador deve conhecer bem a estrutura e as regras de operao do sistema e saber extrair o essencial do sistema, sem incluir detalhes desnecessrios. A quantidade de detalhes includa no modelo deve ser baseada no propsito para o qual foi construdo; 5. Determinao dos dados de entrada e sada: geralmente os valores de entrada so de incio hipotticos ou baseados em alguma anlise preliminar. Depende do objetivo do modelo; 6. Traduo do modelo: diz respeito traduo do modelo para uma forma reconhecida pelo computador; 7. Verificao: consiste em determinar se o modelo traduzido executa no computador como esperado; 8. Validao: tem por objetivo comprovar que ele representa o sistema real com fidelidade suficiente para garantir a obteno de solues satisfatrias para o problema original. Normalmente so utilizados cenrios em que o comportamento real j conhecido previamente e que pode ser comparado com o comportamento obtido com a simulao. Tambm pode envolver uma comparao da estrutura do modelo e do sistema, e comparaes do nmero de vezes que decises fundamentais ou tarefas dos subsistemas so realizadas. Outros modelos do mesmo sistema tambm podem ser utilizados na validao;
9. Plano de ttica e estratgia: refere-se ao estabelecimento de condies experimentais para a execuo da simulao. Ou seja, o plano estratgico consiste no desenvolvimento de um projeto experimental eficiente tanto para explicar as relaes entre o resultados simulados e as variveis controladas, quanto para determinar a combinao dos valores das variveis controladas que minimizariam ou maximizariam a resposta simulada. J o plano ttico consiste em determinar como cada simulao deve ser realizada para se obter o mximo de informaes sobre os dados; 10.Experimentao e anlise dos resultados: exercitao do modelo e interpretao dos resultados; 11.Implementao dos resultados e documentao do modelo.
Aps a execuo (ou exerccio) de um modelo, a ferramenta deve informar os seguintes resultados: Ociosidade das entidades permanentes, individualmente por servidor; Ociosidade mdia das entidades permanentes; Tempo mdio de espera das entidades temporrias na fila de cada entidade permanente; Tempo mdio de atendimento das entidades temporrias em cada entidade permanente; Tempo mdio de toda a permanncia, no modelo, das entidades temporrias.
Um estudo de caso simples deve ser implementado e executado na ferramenta construda. A existncia deste estudo relevante para a validao da ferramenta. O instrumento de apresentao do trabalho o artigo. Para tanto, deve ser escrito um texto em duas colunas contendo: ttulo, identificao dos autores, resumo, introduo, desenvolvimento, concluso, e referncias bibliogrficas. Basta um artigo por grupo de trabalho. A avaliao individual por aluno. De posse do artigo, o aluno deve demonstrar domnio sobre a ferramenta considerando: uso, detalhes de implementao, e justificativas em relao decises de projeto da ferramenta.
8.1 Introduo
A orientao a objetos tornou-se popular nos ltimos anos como uma abordagem poderosa para o desenvolvimento de sistemas computacionais complexos. Reusabilidade e extensibilidade esto entre os benefcios prometidos quando se usa seus conceitos. Particularmente, a reusabilidade pode ser abordada em termos de composio e tecnologias de gerao. As tecnologias de composio caracterizam-se pelos conjuntos de componentes atmicos que, no caso ideal, so reutilizados sem alteraes. No caso ideal dispe-se de componentes passivos que so operados (compostos) por um agente externo. Exemplos de tais componentes podem ser esqueletos de programas, subrotinas, funes e classes de objetos. As tecnologias de gerao so mais difceis de caracterizar porque os componentes reutilizveis no so facilmente identificveis como entidades concretas. Os itens reutilizveis so inseridos em um programa, como por exemplo os geradores de aplicaes. Em orientao a objetos, as classes abstratas e os frameworks so tipos de projetos reutilizveis. Uma classe abstrata uma classe que no fornece a implementao de todas as operaes que definem a interface, necessitando de redefinies em subclasses. Um framework funciona como um molde para a construo de aplicaes ou subsistemas dentro do domnio de uma aplicao. Basicamente, aplicaes especficas so construdas especializando as classes do framework para fornecer a implementao de alguns mtodos, enquanto a maior parte da funcionalidade da aplicao herdada. Considerando que um modelo de simulao pertence classe dos sistemas de software, nada mais natural do que aplicar esses (resusabilidade e extensibilidade) conceitos no desenvolvimento de sistemas de simulao. Deve ficar claro, entretanto, que existe uma grande diferena entre um paradigma de simulao, isto , as idias e recursos usados na construo de um modelo, e um paradigma de projeto e implementao aplicado ao desenvolvimento de sistemas de simulao. Linguagens orientadas a objetos podem ser aplicadas na implementao de sistemas de simulao que utilizam conceitos de modelagem distintos. Ainda que todos possam ser chamados de sistemas orientados a objetos, pode haver confuso quanto ao significado do termo simulao orientada a objetos.
o estado de uma entidade de simulao definido pelo subconjunto de seus atributos que so especificamente usados para descrever o comportamento da entidade.
Por exemplo, em um objeto que representa um buffer, o estado pode ser definido apenas pelo nmero de peas armazenadas na fila. No que se refere s mensagens, em orientao a objetos uma mensagem usualmente corresponde ativao de um processo do objeto receptor. Em modelos de simulao, entretanto, a troca de mensagens mais complexa. So necessrias mensagens temporizadas de maneira a permitir o escalonamento de eventos futuros. Mensagens no temporizadas so teis apenas para operaes que no implicam em avano do tempo simulado. Considerando os aspectos relativos troca de mensagens, existem dois tipos de entidades: entidades de receptor passivo, onde a entidade emissora determina o instante de tempo em que o receptor ir processar a mensagem; entidades de receptor ativo, onde a entidade receptora armazena as mensagens em um buffer para processamento posterior.
Deste modo, pode-se identificar claramente que um ambiente de simulao deve distinguir o paradigma de simulao da estratgia de projeto/implementao oferecida. Desta forma, pode-se definir ambientes de simulao orientados a objetos como sendo aqueles que oferecem os conceitos de orientao a objetos como uma estratgia de projeto e implementao, independentemente dos paradigmas de simulao suportados pelo ambiente.
Quanto ao atendimento de solicitaes Quanto forma de descrio dos eventos Quanto ao mecanismo utilizado para troca de informaes Quanto autonomia da entidade Quanto ao tempo de permanncia no sistema Quanto capacidade de tomar iniciativas Quanto tica pela qual feita a descrio do comportamento das entidades
8.3.1 Quanto ao atendimento de solicitaes Durante uma simulao, uma entidade freqentemente solicitada a fornecer informaes ou executar aes. Dependendo do tipo de entidade, esta poder ter a capacidade de escolher entre atender ou no a uma solicitao. Entidades de receptor passivo no tm poder de escolha. Neste caso a entidade reage no momento da solicitao, sendo que a entidade emissora determina, atravs de uma solicitao, quando a reao ir ocorrer. Entidades de receptor ativo, por outro lado, possuem buffers ou filas para armazenar as solicitaes recebidas, podendo escolher o momento em que as mesmas sero atendidas ou simplesmente recusadas. Pode-se considerar ainda uma terceira categoria: Entidades de receptor semi-ativo. Estas entidades caracterizam-se por possuir uma fila de mensagens, ou seja, a entidade emissora no determina o momento em que a solicitao ser atendida. A entidade receptora, porm no tem capacidade para alterar a ordem em que as mensagens sero atendidas, ou seja, as mensagens sero atendidas na ordem em que foram recebidas, se houver disponibilidade.
8.3.2 Classificao das entidades quanto forma de descrio dos eventos O comportamento de uma entidade em um modelo de simulao discreto ~e sempre descrito em termos de eventos, ou seja, das aes instantneas que provocam alteraes nos estados do modelo. Existem, porm, diferentes abordagens para a descrio desses eventos. Estas abordagens, orientao a eventos, a processos e a atividades, so chamadas de vises de mundo, e a cada uma est associada uma estratgia ou algoritmo de simulao.
8.3.3 Classificao quanto ao mecanismo utilizado pelas entidades para troca de informaes Em um modelo de simulao as entidades se comunicam de maneira a trocar informaes e servios. Diferentes tcnicas podem ser usadas para efetivar tal comunicao.
O mtodo mais simples aquele no qual as entidades podem acessar os atributos de dados umas das outras livremente, obtendo assim as informaes de que necessitam. Este mtodo ser chamado de comunicao livre. Quando o modelo orientado a processos, so necessrios mecanismos de sincronizao entre os processos, de maneira a garantir que a informao correta est sendo obtida no momento em que est disponvel. Outras tcnicas prevem o encapsulamento das informaes de cada entidade. Neste caso as entidades no tm acesso direto aos atributos de dados umas das outras. Para estas situaes, duas tcnicas bastante conhecidas so o uso de portas e de mensagens. O sistema de troca de mensagens parte do princpio no qual toda entidade possui um identificador nico. Uma mensagem ser composta, em geral, pelo identificador da entidade emissora, identificador da entidade destino, identificador do tio de mensagem e uma lista de parmetros. Neste tipo de sistema, toda a troca de informaes entre entidades s possvel atravs de mensagens. Para que o sistema funcione preciso que se estabeleam protocolos de comunicao entre as entidades que precisam conversar. As mensagens podem ser sncronas ou assncronas. Quando se usam mensagens sncronas, a entidade que envia a mensagem aguarda o tratamento da mesma por parte da entidade receptora. Utilizando-se mensagens assncronas a entidade emissora continua seu processamento independentemente do tratamento mensagem enviada se efetuar ou no. Maiores informaes em [COP97]. Tanto as portas como as mensagens podem ser usadas com entidades de receptor ativo, semi-ativo ou passivo. No sistemas de comunicao livre, porm, as entidades so de receptor passivo, obrigatoriamente, visto que as entidades no tm nenhum controle sobre o acesso a suas informaes. importante no confundir a forma com que as entidades atendem as solicitaes (receptor ativo, semi-ativo ou passivo) com o fato da troca de mensagens ser sncrona ou no. Uma mensagem sncrona pode ser enviada para uma entidade que se utiliza de um receptor ativo. Neste caso a entidade emissora corre o risco de ter de aguardar at que o destinatrio resolva atender sua solicitao antes de poder prosseguir em sua execuo. Sinais de controle podem ser acrescentados ao protocolo de comunicao das entidades de forma a otimizar essas situaes.
8.3.4 Classificao quanto autonomia da entidade A classificao das entidades quanto a sua autonomia est diretamente ligada ao uso do modelo do ator. Quanto se usa uma linguagem orientada a objetos convencional como C++ ou Object Pascal, os objetos so passivos e compartilham uma nica " thread" de execuo. Neste caso todas as mensagens so sncronas e as entidades possuem receptor passivo. Quando se usa o modelo do ator, os objetos possuem sua "thread" prpria de execuo, podem enviar mensagens de forma assncrona e as entidades podem trabalhar com receptores ativos ou semiativos. As entidades de um modelo de simulao sero consideradas autnomas na medida em que forem mapeadas para objetos. O uso de entidades autnomas associado com mensagens no tipadas, atribui um acerta independncia entidade, permitindo, entre outras coisas, que esta no conhea, em tempo de compilao, com quem ir se comunicar durante a execuo, que instncias de um tipo de entidade no previstas em tempo de compilao possam ser ativadas durante a execuo ou, ao contrrio, que entidades previstas possam ser desativadas sem a necessidade de se interromper o processo de simulao. O uso de entidades autnomas
permite a interao com as mesmas, por parte do usurio, durante a simulao, seja para interferir no seu ciclo de vida ou na forma pela qual a entidade reage s mensagens ou simplesmente para obter informaes.
8.3.5 Classificao das entidades quanto ao tempo de permanncia no sistema Uma entidade pode ser permanente ou temporria. Entidades permanentes existem durante todo o tempo de simulao. Se imaginarmos o modelo de um guich de atendimento onde clientes chegam, aguardam em uma fila, so atendidos e vo embora, os "clientes" so considerados entidades temporrias pois chegam, so atendidos e desaparecem do sistema. O guich, por outro lado, considerado uma entidade permanente pois existir durante toda a simulao.
8.3.6 Classificao das entidades quanto capacidade de tomar iniciativas Existem entidades ativas e entidades passivas. Por entidades ativas entende-se aquelas capazes de tomar a iniciativa de solicitar um servio ou desencadear uma seqncia de aes. Entidades passivas, por outro lado, so capazes apenas de responder a solicitaes. No exemplo do guich de atendimento, pode-se projetar " cliente" como uma entidade ativa capaz de solicitar servios. O guich, neste caso, poderia no tomar iniciativas sendo apenas ocupado por clientes em certos momentos. Em algumas linguagens de simulao as entidades passivas so chamadas de recursos. Esta classificao, porm, no muito rgida. Por vezes uma entidade pode ser passiva em relao a uma dada categoria de entidades e ativa em relao a outra. Por exemplo, guich passivo em relao aos clientes mas poderia no ser em relao a uma entidade funcionrio.
8.3.7 Classificao quanto tica pela qual feita a descrio do comportamento das entidades Um modelo de simulao, em geral, composto por entidades que prestam servios (servidores) e por entidades que solicitam servios (clientes). Independente da viso de viso de mundo utilizada, o modelo de simulao pode ser descrito tanto do ponto de vista das entidades clientes como das entidades servidores. Se for adotada a tica do cliente as entidades cliente sero modeladas como entidades ativas e as servidoras como passivas. Se for escolhida a tica do servidor, ir ocorrer o contrrio. Para melhor entendimento pode-se utilizar como exemplo a linha de produo de uma pea qualquer. Nesta, blocos de material so manipulados em estaes de trabalho at que sejam considerados acabados. Pode-se imaginar, ento, os blocos como entidades temporrias (clientes), que so atendidas por estaes de trabalho modeladas como entidades permanentes (servidores). Se o modelo for descrito utilizando-se a tica do cliente, o mesmo ser descrito do ponto de vista das peas. Cada bloco de material que entrar no sistema ter conhecimento sobre
todas as operaes pelas quais deve passar at que seja considerado pronto e ser capaz de requisitar, sucessivamente, os servios necessrios. Se for utilizada a tica do servidor, os blocos de material contero apenas uma identificao do tipo de pea que deve ser produzido, e cada estao de trabalho saber o que fazer com tal tipo de pea e para qual estao deve ser enviada depois de processada. O limite entre as duas abordagens, entretanto, no bem definido. Nem todos os problemas de simulao se enquadram na situao proposta. Alguns modelos podero, inclusive, adotar uma abordagem mista onde para algumas entidades ser escolhida a tica do cliente e para outras a tica do servidor. Uma mesma entidade pode assumir uma postura de servidor perante algumas entidades e de cliente perante outras. A escolha ir depender exclusivamente do tipo de problema. Algumas linguagens de simulao impem no apenas a viso de mundo mas tambm a tica de descrio do comportamento das entidades.
9. Soluo do Modelo
A tcnica analtica o mtodo geralmente mais rpido e portanto o preferido, quando aplicvel. O problema com o mtodo que muitas hipteses de simplificao devem ser feita para que possamos resolver o modelo. Simulao mais geral e pode ser aplicada em situaes mais complexas. O preo a ser pago pela generalidade que um tempo maior exigido na obteno de medidas de desempenho precisas. Outra vantagem da soluo analtica a obteno do resultado exato para o modelo sobre estudo, o que no acontece com a simulao. Por outro lado, devido s simplificaes, o modelo pode no ser uma representao precisa do sistema real e o resultado exato obtido ser desprovido de qualquer utilidade. A soluo analtica de um modelo de redes de filas exige que algumas restries sejam satisfeitas. So algumas delas: 1. As decises de roteamento devem ser feitas atravs da especificao de um conjunto de probabilidades de ramificao 2. A posse simultnea de recursos no permitida 3. Somente recursos ativos so permitidos 4. Somente fontes, classes e sorvedouros so permitidos na rota 5. As disciplinas das filas s podem ser FCFS, PS, LCFS e IS 6. Disciplinas de filas com prioridade no so permitidas 7. As nicas medidas de desempenho disponveis so: utilizao, vazo, comprimento mdio da fila, tempo mdio na fila, distribuio do comprimento da fila. Embora muitos modelos analticos no possam ser resolvidos por conta da violao de restries expostas acima, alguns destes modelos podem ser resolvidos atravs de tcnicas especiais, sem uso de simulao. Estas so as tcnicas de aproximao. A Simulao um mtodo de soluo que tenta imitar o comportamento do sistema, se constituindo em um experimento estatstico que observa o comportamento do modelo no decorrer do tempo. O modelo pode ser exercitado com dados obtidos de medidas do sistema ou com valores aleatrios gerados a partir de distribuies, com a finalidade de representar o tempo de chegada de usurios, tempos de servio e probabilidades de roteamento. Os valores aleatrios gerados no so de fato randmicos, mas produzidos por um algoritmo, de acordo com a distribuio de probabilidade. medida que a simulao executada, os usurios circulam entre os vrios recursos. Durante o exerccio, medidas de desempenho so calculadas, a partir de dados observados, baseadas nos valores aleatrios utilizados durante a execuo. Para muitas simulaes, as sadas aleatrias (medidas de desempenho) atingem um estado estacionrio. Estar em um estado estacionrio no significa que o estado permanecer o mesmo a partir de ento, mas simplesmente que as que as distribuies associadas com os estados do sistema convergiram para um estado limite. Na simulao possvel associar atributos aos usurios. Nos atributos so armazenadas informaes sobre o usurio respectivo. Por exemplo: identificao do usurio, contadores,
tempo de servio, entre outros. Alm dos atributos, um modelo de simulao pode conter variveis globais, que podem ser utilizadas para a identificao de qualquer tipo de condio, estando seus valores disponveis aos usurios em qualquer tempo. Um exemplo de varivel global seria aquele onde a varivel usada para catalogar o nmero de usurios presentes em uma cadeia aberta. A simulao tambm permite o uso de diferentes tipos de distribuies para o tempo entre chegadas, para os tempos de servio, para as demandas de trabalho, para a alocao e criao de fichas, e para as atribuies de valores s variveis. Tambm, s o permitidas disciplinas de filas mais complexas, e podem ser preemptivas. Pode-se observar tambm algumas desvantagens na simulao, principalmente relacionadas com os problemas estatsticos prprios da simulao.
10.1 ARENA
O ARENA foi criado pela empresa Systems Modeling em 1993 e ele o sucessor de um outro produto, o SIMAN, desenvolvido em 1982. Este produto foi uma evoluo da arquitetura do GPSS e, durante anos, foi lder entre os produtos de simulao para uso geral. Em 1990 ele recebeu um complemento chamado de CINEMA que adicionava maiores habilidades grficas. Este conjunto foi melhorado e, a partir de 1993, passou a se denominar ARENA. O ARENA utiliza uma interface grfica para que o usurio possa fazer uso de mdulos utilizados na descrio de sistemas reais. Esta interface grfica facilita grandemente o uso do ambiente. O ARENA tambm disponibiliza o Input Processor e o Output Processor. O primeiro permite analisar dados reais do funcionamento do processo e escolher a melhor distribuio estatstica que se aplica a ele. O segundo uma ferramenta com diversos recursos que permite analisar dados coletados durante a simulao.
Em seguida, na seo abaixo (Leave Data), deve-se fornecer dados de sada do usurio, isto , o nome da prxima estao de trabalho (ou componente). Para tal, deve-se digitar atendimento (por exemplo) no campo Station, que ser o nome dado para o componente de servio. Para campos no preenchidos o ARENA assume valores default. Por fim, confirmar as alteraes da janela. O prximo mdulo ser do tipo SERVER (disponvel no template COMMON). Para inserir este mdulo no modelo realizar a mesma seqncia de passos utilizada para inserir o mdulo ARRIVE. Este bloco vai representar todos os eventos que ocorrem no posto de atendimento: entrada na fila, pagamento e sada do posto. Para alterar os campos deste mdulo deve-se dar um duplo clique sobre o mesmo e a respectiva janela ser apresentada. Ento preencher os campos conforme o seguinte: O nome da estao (ou componente) atendimento O prximo campo a ser preenchido seria Resource, onde deve-se colocar o nome do trabalhador que opera a estao de trabalho (caixa, por exemplo). No entanto o campo Resoure foi preenchido automaticamente pelo ARENA com ATENDIMENTO-R. Trata-se de uma iniciativa do ARENA em dar o nome do recurso igual ao nome da estao de trabalho acrescido da letra R. Fornecer agora a durao do atendimento no pedgio preenchendo o campo Process Time com GAMM(6.98,1.51). Na seo onde se fornece dados sobre a sada da transao clique no campo ao lado de onde se l station e digite SAIDA, para dizer que o veculo, aps ser atendido pelo servidor do pedgio, se dirige para o local denominado SAIDA. Confirme as alteraes realizadas. Para alguns dos campos, valores no foram fornecidos. Nestes casos o Arena assume valores default. So eles: Capacity type=capacity. Ou seja, o servidor estar disponvel o tempo todo. A opo schedule pode ser utilizada para informar os momentos de indisponibilidade do servidor Para configurar um atendente disponvel no bloco servidor, o Capacity deve ser igual a 1. O ltimo bloco o bloco DEPART. O procedimento para incluir este bloco na Contents Region o mesmo dos anteriores. Com um duplo clique neste bloco a sua tela de apresentao mostrada. Basta fornecer o nome do bloco (geralmente sada) e confirmar.
Neste bloco, o campo Length of Replication deve ser preenchido com a durao da simulao. Uma unidade corresponde a um segundo de simulao real. Confirmar a configurao do bloco. Agora o modelo pode ser executado. Para isso, basta pressionar no boto RUN que fica na parte inferior esquerda do monitor. Neste momento, o ARENA ir conferir o modelo e informar se existe algum tipo de erro. Se no existe, o modelo executado, e ao final de sua execuo, os resultados da simulao so apresentados. Como exerccio, pode-se alterar o tempo entre chegada dos usurios de expo(30) para expo(5). Neste caso, o tamanho da fila no ser suficiente. Para resolver este problema, pode-se alterar o nmero de atendentes do servidor alterando o campo Capacity de 1 para 3, por exemplo. Assim o mdulo de atendimento fica com 3 atendentes. O modelo pode ento ser executado novamente, e os resultados observados. No exemplo acima, no existe interligao entre os mdulos. O conhecimento da rota de um usurio foi dada pelo preenchimento do campo Station da seo Leave Data dos blocos Arrive e Server. No entanto, aconselhavel se fazer a interlizao dos blocos para facilitar o entendimento do modelo. Para fazer a interligao necessrio pressionar na opo connect dentro dos mdulos Arrive e Server. Em seguida, pressionar no icone para interligao que fica na barra de ferramentas e fazer a interligao a partir das setas que aparecem nas extremidades dos blocos. (Fazer alteraes no modelo sobre distribuies, nmero de elementos do servidor, etc, e analisar os resultados).
10.5 Template
Um mdulo uma unidade que pode ser utilizada para construir partes de um modelo de simulao. J um painel um conjunto de mdulos destinados a modelar um tipo especfico de sistema. Um template ento o conjunto de um ou mais painis que compreendem todos os mdulos necessrios para a construo de um tipo especfico de modelo. No ARENA, o painel COMMON contm mdulos bsicos para modelar o funcionamento da maioria dos sistemas. composto por mdulos lgicos e de dados. O painel TRANSFER contm dispositivos especficos de transferncia como, por exemplo, transportadores, esteiras, etc. O painel SUPPORT contm mdulos especializados e mdulos bsicos para criao de lgica em outros nveis. O mdulos lgicos do painel COMMON so os seguintes: ARRIVE: para a criao de entidades que chegam no sistema; DEPART: libera as entidades que deixam o sistema; SERVER: servidor bsico, utilizado para representar a prestao de um servio um usurio por um determinado tempo; INSPECT: Fornece a opo de enviar uma frao de entidades para um mdulo alternativo. Utilizado quando se deseja representar falha na prestao de servios um percentual dos usurios que o solicitam;
ADVANCED SERVER: fornece capacidade adicional de modelao alm do servidor bsico (SERVER); PROCESS: representa o processamento do recurso no ADVANCE SERVER ENTER: representa a entrada de um ADVANCE SERVER; LEAVE: representa a sada de um ADVANCE SERVER; Os mdulos de dados do painel COMMON so: EXPRESSIONS: permite a definio de expresses para o modelo; QUEUE: permite a definio de filas adicionais para os mdulos servidores; RECIPES: permite a definio de dados relacionados a uma localizao; SEQUENCES: permite a definio de seqncias utilizadas pelas entidades no sistema; SETS: fornece a possibilidade de se definir conjuntos de recursos, filas, etc. SIMULATE: define informaes de projeto, nmero de replicaes e smbolo de animao durante a simulao; STATICS: permite a definio de dados pr estabelecidos, ou estticos, usados no mdulo recipes; TATISTICS: permite ao usurio definir e solicitar estatsticas adicionais; STORAGE: permite a definio de armazenamento, que so reas de permanncia de entidades; VARIABLES: Permite a definio de variveis;
EXERCCIO: n Modelar uma fbrica de pipas da seguinte forma: n Chegada entre pedidos com uma distribuio EXPO(12) n Tempo de corte TRIA(8,10,12) n Tempo de costura TRIA(10,11.5,14) n Tempo de inspeo igual a 7.5, sendo que o ndice de rejeio igual a 15% n Tempo de deslocamento entre Corte e costura igual a 2 n Tempo de deslocamento entre inspeo e costura igual a 5 n Tempo de deslocamento entre costura e inspeo igual a 5 n Tempo de deslocamento entre inspeo e remessa igual a 5 minutos n O tempo de simulao deve ser de 960 minutos.
O Anexo I apresenta um exemplo comentado da apresentao escrita do trabalho aqui solicitado. No texto deste exemplo so discutidos aspectos tcnicos que precisam ser considerados nos estgios de desenvolvimento de uma simulao, como discutido na seo 7.7 desta apostila.
Tanto a coleta de dados para a definio das entradas do modelo, quanto nas coletas de dados de desempenho a partir do modelo, encontramos o problema de como converter os dados obtidos em uma forma usvel. Sempre h o interesse pelo tratamento projetado para resumir caractersticas importantes de um conjunto de dados. Tais tratamentos normalmente resumem os dados s custas da perda de alguma informao contida nos mesmos.
O agrupamento em classes um dos mtodos para transformao de dados. Neste mtodo, os dados so resumidos pela tabulao do nmero de dados que ocorreram dentro de cada classe. Esse tipo de tabela chamado de tabela de freqncia.
No exerccio do professor, os dados agrupados em classes so os tempos de espera dos estudantes para atendimento pelo professor. Uma tabela de distribuio obtida na resoluo do problema poderia ser como a apresentada a seguir: Tempo de espera do aluno 0 -> 10 10 -> 20 20 -> 30 30 -> 40 40 -> 50 50 -> 60 > 60 Nmero de alunos 8 14 21 11 8 7 5
Classes com sem limite inferior ou superior fixados so chamadas de classes abertas. Veja exemplo na tabela acima. Outra, a tabela de freqncia acumulada, que obtida pela adio sucessiva das freqncias da tabela anterior. Tempo de espera do aluno, menor que: 10 20 30 40 50 60 Nmero acumulado de alunos 8 22 43 54 62 69 74
Outra variao obtida pela converso da tabela cumulativa, pela diviso de cada classe cumulativa pelo nmero total de dados. Tempo de espera do aluno, menor que: 10 20 30 40 50 60 Distribuio de freqncia 0,108 0,297 0,581 0,730 0,838 0,932 1
As tabelas so muitas vezes apresentadas sob a forma de grficos de forma a facilitar a interpretao dos dados. A forma grfica mais comum o histograma, que apresenta as classes de freqncia como retngulos, cujos comprimentos so proporcionais freqncia nas classes.
Populao o conjunto de dados que consiste de todas as observaes possveis de uma varivel aleatria. Amostra , contm apenas parte de todas as observaes possveis. Outro mtodo de resumir um conjunto de dados v-lo como uma amostra, que ento utilizada para a estimao de parmetros da populao associada. Os parmetros da populao usualmente de maior interesse so a mdia (parmetro) e a varincia (estatstica) Estatsticas baseadas em observao - interessa apenas o valor (sexo das pessoas que freqentam um determinado lugar) Estatsticas sobre variveis persistentes no tempo - valores das amostras so definidos sobre o tempo (nmero de pessoas em uma fila)
O mtodo mais prtico para a gerao de amostras aleatrias a partir de uma dada distribuio primeiro gerar uma ou mais amostras uniformemente distribudas, entre 0 e 1, e ento transformar as amostras uniformes nas novas amostras desejadas. Amostras independentes, uniformemente distribudas no intervalo 0 a 1, so chamadas nmeros aleatrios .
So trs os mtodos para a obteno de nmeros aleatrios: n atravs de uma leitura de uma tabela de nmeros aleatrios; n uso de dispositivos fsicos que geram sinais aleatrios; e n emprego de uma equao recursiva, que gera o i-simo nmero randmico a partir do (i-1)simo nmero. Como os nmeros so gerados a partir de uma equao determinstica, so chamados de pseudo-aleatrios 11.3.1 Amostras aleatrias Para a gerao de amostras aleatrias existem quatro mtodos fundamentais que podem ser utilizados.
O mtodo da transformada inversa a tcnica mais simples. Ele parte do pressuposto de que a varivel aleatria R=F(x) (onde F(x) a funo de distribuio de probabilidade da varivel aleatria X, de onde se quer a amostra) uniformemente distribuda no intervalo [0,1]. Assim, para gerar uma amostra aleatria da distribuio X, ns geramos primeiro um nmero aleatrio r e depois resolve-se a equao: r = F(x). O Mtodo da aceitao / rejeio consiste na gerao de amostras a partir de uma distribuio. Algumas destas amostras so ento rejeitadas de forma que as amostras restantes tenham a distribuio desejada. Mtodos de aceitao e rejeio foram desenvolvidos tanto para distribuies contnuas quanto para discretas, sendo a eficincia do mtodo dependente do nmero de rejeies exigidas. O mtodo da composio parte do pressuposto que a funo densidade da varivel cuja amostra se deseja, pode ser obtida da soma ponderada de funes de distribuio. Este mtodo pode ento ser usado para selecionar uma das subdistribuies e, o mesmo procedimento ou um outro qualquer, para se obter uma amostra da subdistribuio. Pode-se ver assim que um mtodo para pode ser dependente de outro. Quanto aos mtodos que empregam probabilidades especiais, algumas vezes a distribuio de onde se deseja obter uma amostra possui alguma propriedade especial ou est relacionada com outra distribuio, a partir da qual mais fcil obter uma amostra aleatria. Tal propriedade ou relao ento usada na gerao desejada. 11.3.2 Teste de aleatoriedade A validade estatstica dos resultados de uma simulao depende do grau de aleatoriedade dos nmeros aleatrios gerados. Exatamente por isso, vrios procedimentos estatsticos foram desenvolvidos para testar esta aleatoriedade. Infelizmente, contudo, mesmo estes testes no garantem que a seqncia gerada seja apropriada para uma particular aplicao.
covarincia encontrado no uso de subintervalos. Um problema estatstico diferente surge entretanto, o comprimento do ciclo no determinstico, mas sim uma varivel aleatria . O estado de regenerao deve ter as seguintes propriedades: 1- o modelo volta periodicamente ao estado de regenerao. 2- quando o modelo entra no estado de regenerao, o comportamento futuro do modelo depende apenas deste estado. Todo ciclo tem um comportamento estatisticamente idntico a qualquer outro ciclo. desejvel que o estado de regenerao ocorra freqentemente em uma simulao de tamanho razovel. Sem esta propriedade, o mtodo no pode ser aplicado com segurana. Tambm desejvel que o estado seja facilmente detectado pela simulao. Por esta razo, os pacotes de modelagem, que oferecem o mtodo regenerativo para o clculo do intervalo de confiana, geralmente s permitem como estados de regenerao aqueles especificados apenas pelo nmero de usurios em cada n, entendendo que caractersticas adicionais dos estados so especificadas implicitamente pela linguagem. O Em resumo, as vantagens do mtodo regenerativo esto baseadas na obteno de variveis aleatrias independentes e identicamente distribudas para cada ciclo. O mtodo espectral, ao contrrio dos outros mtodos, no exige que as amostras sejam independentes e identicamente distribudas. Ele leva em considerao a correlao entre os dados. Como vantagem sobre as replicaes independentes, o mtodo espectral permite fazer uma nica simulao ao invs de vrias execues. Isto no exige preocupao com a estimao do estado inicial. Este mtodo se aplica a todas as anlises do comportamento de equilbrio dos modelos simulados, que utilizam redes de fila estendidas, sendo independente da existncia ou no de estados de regenerao.
recurso passivo, populao da cadeia, disciplina das filas, entre outros. Os valores fornecidos so simples estimativas dos parmetros reais. Alguns destes parmetros so crticos na soluo do modelo, e pequenos erros cometidos em sua estimativa podem redundar em grandes erros nas medidas de desempenho. Existem tambm erros inerentes ao modelo. A estrutura do modelo pode estar incorreta, podendo omitir alguns elementos chaves importantes, ou seja, o modelo pode conter alguns erros lgicos. Ao se resolver um modelo por simulao, ns introduzimos tambm, erros concernentes variabilidade estatstica dos resultados, concernentes ao transitrio da simulao, gerao de amostras aleatrias, entre outros. Inicialmente, se as condies iniciais da simulao no esto de acordo, podem ocorrer problemas. O estado mais comumente utilizado o vazio. Tambm pode-se iniciar uma simulao do estado de maior probabilidade de ocorrncia ou na mdia do estado de equilbrio. Para reduzir a probabilidade de erros na estimativa da mdia no estado estacionrio pode-se utilizar um perodo de aquecimento. Para isso, se estabelece um ponto de truncamento, antes do qual, nenhum valor obtido includo na estatstica. Tambm importante a deciso quanto ao comprimento da seqncia de simulao e nmero de replicaes de uma simulao. O uso de poucas seqncias de grande comprimento geralmente produz uma melhor estimativa da mdia no estado permanente, do que o uso de vrias seqncias de comprimento pequeno. Isto acontece devido ao fato que menos amostras no estado transiente so contabilizadas e/ou menos dados so truncados. Quanto maior o transitrio, maior deve ser a seqncia de simulao. Contudo, o reduzido nmero de amostras correspondentes a poucas replicaes pode piorar nossa estimao da varincia da mdia. O uso de vrias pequenas execues pode, no entanto, introduzir uma polarizao devido s condies iniciais. O fim de uma simulao pode ser determinado pelo tempo, nmero de amostras que determinado pelo nmero de elementos que entram no sistema, ou nmero de entidades que ser processada pelo sistema.
Anexo I
Uso da simulao para avaliao de desempenho dos algoritmos do Elevador e do Menor Seek Primeiro, utilizados no deslocamento do brao de HDs
Braulio Adriano de Mello (braulio@inf.ufrgs.br) Universidade Federal do Rio Grande do Sul Instituto de Informtica - UFRGS Disciplina de Modelagem e Simulao de Sistemas Discretos Prof.: xxxxxxxxxxx
1. Introduo
A simulao se apresenta como uma ferramenta adequada para o estudo do comportamento de sistemas em geral. Seus benefcios esto amparados na possibilidade de realizar experimentos sobre um sistema real sem que seja preciso interferir nesse sistema. Para isso, so utilizados modelos de representao. Como exemplo do uso da simulao, neste trabalho apresentado um exerccio de representao do comportamento de dois algoritmos utilizados no deslocamento do brao de suporte das cabeas de leitura de discos rgidos. Os algoritmos so: elevador, e menor seek primeiro [TAN 95]. Partindo do estudo do comportamento de ambos os algoritmos, realizada a definio do modelo conceitual dos algoritmos, e em seguida, a implementao do modelo utilizando a linguagem de simulao Simscript [SIM 89]. Diante dos resultados alcanados perante o exerccio (execuo) dos modelos implementados, ento desenvolvido um breve estudo de comparao de desempenho entre os algoritmos considerando uma situao de demanda de acesso ao disco previamente especificada e delimitada. O trabalho apresenta inicialmente uma descrio do sistema real (algoritmos), seguida da definio e delimitao do modelo conceitual, com base em um propsito definido (objetivo). So ento abordadas as especificaes sobre a coleta da amostra utilizada como base para definies das probabilidades e demais aspectos de implementao. Em seguida, so apresentados alguns aspectos de avaliao dos resultados alcanados visando a comparao de desempenho entre os algoritmos simulados, as consideraes finais e referncias.
mesma velocidade de deslocamento do brao, resta ento a ordem de busca dos cilindros como fator diferenciador quanto ao desempenho, sendo este o objeto de estudo deste trabalho. Sero considerados, para este trabalho, dois algoritmos distintos que determinam as regras de busca dos cilindros que contm os blocos desejados, sendo: algoritmo do menor seek primeiro, e algoritmo do elevador.
considerada tambm a existncia de uma tabela, indexada pelo nmero do cilindro, com todas as requisies pendentes para cada cilindro. Desta forma, qualquer um dos algoritmos citados poder identificar, de acordo com sua poltica, qual o prximo cilindro a ser alcanado. A tabela dinmica, ou seja, a medida em que o brao do disco vai alcanando os cilindros solicitados, novas requisies podem ser recebidas pela tabela.
Inicia simulao
Posiciona brao do disco no cilindro inicial e seta flag de direo para crescente
Gera requisio
No
Sim
No
Sim Seta flag de direo para crescente
Sim
No
Emite relatrios
Modo de Operao dos Algoritmos de deslocamento do brao O algoritmo do menor seek primeiro, partindo do cilindro em que se encontra, desloca o brao do disco para o cilindro mais prximo, se houver requisio pendente. Este algoritmo apresenta bom desempenho, no entanto tende a manter o brao no meio do disco cometendo, de certa forma, injustia com os cilindros mais prximos do incio ou fim do disco. O algoritmo do elevador faz com que o brao do disco se desloque apenas em uma direo enquanto houver requisies naquela direo. Por exemplo, se houver as requisies para os cilindros 4, 20, 32, 40 e 64, e o brao est no cilindro 32 quando ocorre uma requisio para o cilindro 30, o
brao segue at os cilindros 40 e 64. Quando no mais houver requisies para cilindros na direo atual, troca de direo e procede da mesma forma. Ou seja, depois de atender a requisio para o cilindro 64 o brao ser deslocado ao cilindro 30, seguindo em direo ao endereo inicial enquanto houver requisies nesta direo. O algoritmo do elevador corrige a injustia com os cilindros mais afastados do centro do disco, contudo tende a prejudicar a performance em comparao ao algoritmo do menor seek primeiro. O que nem sempre acontece, dependendo da ordem das requisies. O comportamento de ambos os algoritmos apresentado na figura 2.1 e figura 2.2, respectivamente.
Inicia simulao
Gera requisio
Identifica cilindro mais prximo, de acordo com tabela, em relao a posio atual do brao
No
Sim
Sim
No
Bytes por setor: 512 Setores por trilha (default): 63 Default heads: 16 Cilindros: 16.383 Setores: 19.925.880 RPM: 7.200 Latncia rotacional: 8,32 msec (a mdia rotacional de 4,16 msec) conveniente modelar o tempo entre chegadas das requisies para leitura/gravao de blocos atravs de uma distribuio exponencial. Em conseqncia, o nmero destes eventos em um intervalo de tempo segue uma distribuio de Poisson. Como, neste trabalho, os resultados do experimento sero coletados levando em considerao o nmero de requisies que so emitidas em intervalos fixos de tempo (1 segundo), a preferncia na escolha da distribuio de probabilidade indica a Poisson. Assumindo o disco em estudo como tendo alto nvel de fragmentao externa [TAN 95] e pouco espao livre, o nmero do cilindro onde est o bloco solicitado segue uma distribuio uniforme de 1 at 16.383. Este nmero representa o nmero de cilindros do disco, de acordo com especificaes do fabricante. Para o clculo do tempo gasto pela brao do disco para se deslocar de um cilindro para outro so utilizados valores fornecidos pelo fabricante, sendo: Full stroke: A metade do tempo gasto pelo disco para se deslocar do primeiro cilindro de dados at o ltimo cilindro de dados, e novamente at o primeiro. Este tempo dado pela mdia de 100 experimentos como descrito, sendo: 18,6 mls. Nmero de cilindros: 16.383.
Tempo de seek: Tempo necessrio para, a partir de um cilindro, posicionar a cabea de leitura no cilindro imediatamente posterior ou anterior. O tempo gasto varia no intervalo de 1,2 a 1,9 mls. Ento, o tempo geral de seek entre os cilindros solicitados pelas requisies calculado da seguinte forma: Tempo seek = randi.f (1.2,1.9,1) + ((18,6 / 16383) * abs.f(cilindro requisitado - cilindro atual)) Descrio do Modelo So modelados como entidades permanentes do sistema o brao do disco, cilindros (num total de 16.383 de acordo com fabricante do disco utilizado). So entidades temporrias do modelo as requisies de acesso blocos que so emitidas. Variveis: identificador do cilindro requisitado; identificador da posio atual do brao do disco; estrutura de dados que armazena as requisies pendentes; nmero de requisies pendentes; flag de direo (para o algoritmo do elevador); demais variveis de estado necessrias para demonstrar o estado do sistema nos instantes do tempo de simulao. Eventos: chegada da requisio na estrutura de dados; inicio do atendimento da
E ( X ) = xi . p ( xi )
i =1
a varivel X discreta, calcula-se ento a Esperana Matemtica (Mdia) com o uso da frmula: A tabela (Tab.1) apresenta o nmero de requisies de acesso ao disco que ocorreram durante um segundo (X), e o a freqncia de X durante o experimento .
7/511
X*P(X) 14/511
59
4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 24 26 28 30
8/511 58/511 1/511 61/511 1/511 90/511 2/511 75/511 2/511 61/511 8/511 55/511 7/511 29/511 3/511 14/511 11/511 11/511 3/511 3/511 1/511
32/511 348/511 7/511 488/511 9/511 900/511 22/511 900/511 26/511 854/511 120/511 880/511 119/511 522/511 57/511 280/511 242/511 264/511 78/511 84/511 30/511
E (x) =
P ( x ) .X
j =1 j
Sendo que, para a Distribuio de Poisson, E(X) = V(X) = , ento = 12,2818 em:
e i P( x ) = i!
Figura 5.1 - Freqncia das Requisies obtidas atravs de experimento a cada instante de tempo
Segundos
Desvio padro:
= V ( x ) = 12,2818 = 3,5045
Grau de confidncia: Na aplicao do teste do Chi-Quadrado o 2 calculado se manteve acima do 2 observado, rejeitando a hiptese. Justifica-se este aspecto pelo fato de que o experimento foi realizado considerando interferncias expressivas no grau de multiprogramao, intercaladas com instantes com baixa interferncia. Assim, houve grande variao na freqncia observada (como pode ser observado na Tab.1). Deste modo, para estabelecer grau de confidncia mais adequado que se faa o experimento para diferentes situaes de uso do computador individualmente. Por exemplo, combinando alto/mdio/baixo grau de multiprogramao e alto/mdio/baixo acesso ao disco. Considerando estes aspectos, pode-se alcanar uma relao mais homognea entre valores esperados e valores observados no teste do chiquadrado. No entanto, neste caso basta que a mesma situao seja submetida aos 2 algoritmos pelo fato de que o objetivo deste trabalho o estabelecimento de uma relao de desempenho entre ambos.
primeiro) foram implementados utilizando a linguagem de simulao Simscript [SIM 89]. Ambas as implementaes diferem apenas no modo como feito o acesso ao prximo nmero de cilindro requisitado, de acordo com o respectivo algoritmo em estudo. Para cada modelo, foram executadas 9 replicaes distintas cujos resultados so estudados na seo seguinte. Em cada replicao, foi simulado o atendimento de 5000 requisies de acesso aos cilindros do disco, gerando resultados em termos de tamanho de fila do recurso BRAO (braco do disco) e sua utilizao.
6. Exerccio da Simulao
Os modelos dos algoritmos de deslocamento do brao (elevador e menor seek
X 0,00132958 0,00084762 0,00095374 0,00111293 0,00125250 0,00103760 0,00165512 0,00179678 P(X) 0,111111111 0,111111111 0,111111111 0,111111111 0,111111111 0,111111111 0,111111111 0,111111111 X*P(X) 0,000147731 0,00009418 0,000105971 0,000123659 0,000139167 0,000115289 0,000183902 0,000199642
(X - E(X))2 (X - E(X))2 * P(X) 4,53501E-10 5,0389E-11 2,12212E-07 2,35791E-08 1,25702E-07 1,39669E-08 3,81634E-08 4,24037E-09 3,1119E-09 3,45767E-10 7,32701E-08 8,14112E-09 1,20295E-07 1,33661E-08 2,38628E-07 2,65142E-08
61
1,15847E - 07 = 0,000340363
Para um intervalo de confidncia de 90%, = 0,1 e R(nmero de replicaes) = 9, tem-se: GL = R-1 = 9 - 1 = 8 (Graus de Liberdade). = 0,1 / 2 = 0,05 Utilizando a Tabela dos valores percentis (tp) da distribuio t de Student: Para = 0,95 e GL = 8, t = 1,86 Ento: E(X) - 1,86*0,000340363 <= Intervalo <= E(X) + 1,86*0,000340363 E(X) - 0,000633076 <= Intervalo <= E(X) + 0,000633076 0,000675209 <= Intervalo <= 0,00194136 calculado ento o tamanho mdio da fila entre as 9 replicaes (E(X)), e um intervalo de confidncia de 90%.
A tabela 6.2 apresenta os resultados (tamanho mdio da fila) das 9 replicaes executadas utilizando o modelo de representao do algoritmo do menor seek primeiro, sendo
X P(X) X*P(X) 0,000119971
(X - E(X)) 0,000155904
(X - E(X))2 2,43062E-08 2,36834E-09 4,7466E-09 1,74093E-08 4,07816E-10 3,54439E-08 6,04886E-09 3,00475E-09 6,33809E-10
(X - E(X))2 * P(X) 2,70069E-09 2,63148E-10 5,274E-10 1,93437E-09 4,53128E-11 3,93821E-09 6,72096E-10 3,33861E-10 7,04232E-11
0,00107974 0,11111111 1 0,00087517 0,11111111 1 0,00085494 0,11111111 1 0,00105578 0,11111111 1 0,00094403 0,11111111 1 0,00073557 0,11111111 1 0,00100161 0,11111111 1 0,00086902 0,11111111 1 0,00089866 0,11111111 1 E(X) =
Var(X) = 1,04855E-08
62
1,04855E - 08
= 0,000102399
Para um intervalo de confidncia de 90%, = 0,1 e R(nmero de replicaes) = 9, tem-se: GL = R-1 = 9 - 1 = 8 (Graus de Liberdade). = 0,1 / 2 = 0,05 Utilizando a Tabela dos valores percentis (tp) da distribuio t de Student: Para = 0,95 e GL = 8, t = 1,86 Ento: E(X) - 1,86*0,000102399 <= Intervalo <= E(X) + 1,86*0,000102399 E(X) - 0,000190462 <= Intervalo <= E(X) + 0,000190462 0,000733374 <= Intervalo <= 0,001114297 Considerando o tamanho mdio da fila nas 9 replicaes (para 5000 requisies cada) de cada um dos algoritmos de deslocamento simulados nas condies especificadas, pode-se constatar que: Considerando E(X), o algoritmo do menor seek primeiro mantm a mdia da fila de requisies em torno 70% do tamanho mdio da fila mantida pelo algoritmo do elevador para atender o mesmo nmero de requisioes (objetivo principal); A interseco entre o intervalo de confidncia encontrado para ambos os algoritmos (para 90%) igual ao intervalo de confidncia do algoritmo do menor seek primeiro. Isto refora a afirmao inicial de que, dependendo da ordem em que as requisies so emitidas no que diz respeito ao nmero do cilindro, o algoritmo do elevador tente a se aproximar do desempenho do outro algoritmo simulado. desempenho do segundo algoritmo (em torno de 30%) se comparado ao primeiro, levando em considerao o tamanho mdio da fila como parmetro de avaliao. Como complemento/continuidade deste estudo, proposta a realizao de novas simulaes (exerccios) considerando diferentes situaes. Por exemplo, combinando alto/mdio/baixo grau de multiprogramao e alto/mdio/baixo acesso ao disco. Intercalando com nveis distintos de fragmentao e espao vazio do disco, entre outros.
9. Referncias bibliogrficas
[BAR 00] Barracuda ATA II Family. Product Manual. Publication Number: 20400151-001, Rev. A, February, Seagate Technology, 2000. Encontrado no site http://www.seagate.com/support/ disc/specs/model_st3.html [TAN 95] TANEMBAUM, A.: Sistemas Operacionais Modernos. PrenticeHall do Brasil, Rio de Janeiro, 1995.
8. Consideraes finais
Neste trabalho foi apresentado um estudo de dois algoritmos utilizados para o deslocamento do brao de discos rgidos. Para o desenvolvimento deste estudo, foram utilizadas algumas tcnicas de modelagem, simulao e avaliao de resultados conhecidas. Foram estudados o algoritmo do elevador e o algoritmo do menor seek primeiro. Como resultado principal, foi observado o melhor
[SIM 89] SIMSCRIPT. UNIX SIMSCRIPT II.5 User's Manual. CACI Products Company, Canad, 1989. [KIV 87] KIVIAT, P. J.; Villanueva, R.; Markowitz, H. M. SIMSCRIPT II.5
63
64