THE DESIGN, IMPLEMENTATION, AND EVALUATION OF SMART: A SCHEDULER FOR MULTIMEDIA APPLICATIONS Sistemas Computacionais para Processamento Multimídia Prof. Dr. Marcelo Zancheta do Nascimento Andrei Wellington José Ricardo Mestrado em Engenharia da Informação Iremos entender: O que é e como funciona o SMART (Scheduling Multimedia Applications Real Time) SMART - Introdução No inicio, os computadores foram utilizados apenas para automação de tarefas e cálculos, mas com o aperfeiçoamento do hardware, as aplicações multimídia de áudio e vídeo estão cada vez mais presentes nos desktops. Estas aplicações podem ser filmes, jogos, gráficos, realidade virtual, etc. Tem havido muita pesquisa e desenvolvimento de recursos que permitam a execução e adoção de novos recursos multimídia. E para apoiar a execução destas aplicações de tempo real em conjunto com as aplicações não tempo real, foi criado o SMART, que nada mais é que um programador de multimídia e aplicações de tempo real. SMART - Introdução O SMART suporta aplicações com restrições de tempo, e fornece feedback dinâmico aos pedidos permitindo que os mesmos se adaptem a carga de trabalho do processador. Além disso, o suporte para aplicações em tempo real é integrado com o apoio de cálculos convencionais, permitindo que o usuário defina o compartilhamento do processador para aplicações que tenham a mesma prioridade. O SMART ajusta a alocação de recursos de forma dinâmica e contínua, realizando cálculos em tempo real e regulando as taxas de execução de tarefas em tempo real quando o sistema está sobrecarregado, proporcionando uma melhor relação de trabalho do que em condições normais. SMART - Introdução O SMART foi implementado no sistema operacional Solaris e seu desempenho foi comparado com outros programadores comumente utilizados em pesquisa e prática de execução em tempo real interativo, e aplicações batch. Os resultados experimentais demonstram desempenho superior do SMART, com um enfileiramento mais justo do que o de outros programadores UNIX no suporte a aplicações multimídia. SMART - O que é multimídia Para várias pessoas falar em multimídia é simplesmente falar em um filme de DVD, um clip de vídeo, ou simplesmente ouvir uma música de cd no computador, mas no entanto, multimídia é muito mais do que apenas ser capaz de mostrar um fluxo de vídeo ou um fluxo de áudio. O termo Multimídia como utilizado pela primeira vez em 1962 e significava simplesmente o uso ou o envolvimento de vários meios de comunicação SMART - Requisitos para programação do processador multimídia Para se usar todo o potencial dos recursos multimídia, a importância do software é fundamental. Em todos os exemplos que temos de multimídia, o desempenho do software e do processador é fundamental para execuções em tempo real. Quando múltiplas aplicações são executadas simultaneamente, o processador deverá ter a capacidade de desempenhar um papel importante no agendamento de tarefas e seguir regras que permitam o melhor escalonamento possível. Para entender os requisitos impostos pelas aplicações multimídia no agendamento do processador. Primeiro os autores do artigo descrevem as principais características das aplicações multimídia e do ambiente computacional em que elas são executadas. SMART - Requisitos para programação do processador multimídia Para ajudar a entender o artigo, alguns termos foram usados e são: Atividade para denotar uma entidade escalonável. Um aplicativo pode consistir de uma ou mais atividades. Uma atividade tem um conjunto de atributos associados a ela que pode mudar ao longo do tempo. Em particular, uma atividade é chamada de atividade em tempo real, se a atividade tem alguma exigência de tempo associado a ela. Uma atividade que não tem essa exigência de tempo é chamada de atividade convencional. Quando se executa, uma atividade pode mudar entre ser tempo real ou de natureza convencional. Tempo Real Aplicações como as de multimídia, gráficas e de videoconferência vêm surgindo com uma grande demanda. Nestes tipos de aplicações, não é apenas importante que os resultados sejam logicamente corretos; devem ser levados em conta aspectos como uniformidade na taxa de progresso da aplicação, eficácia no uso de recursos disponíveis e garantias mínimas de desempenho. Estas aplicações têm restrições de tempo, mas aceitam que estas sejam violadas dentro de certos limites estatísticos. Esta característica as classificam como aplicações de tempo real, cujo aspectos principais são: Tempo Real • Requisitos de Tempo – desempenho da conseqüência de perda do deadline, processos de tempo real são divididos em duas classes: a) Hard – um processo é dito tempo real hard se o término de uma computação após seu deadline causar conseqüências catastróficas; b) Soft – um processo é dito tempo real soft se a perda do deadline decrementa a performance do sistema mas não gera conseqüências catastróficas. SMART - Características de tempo Embora existam muitas formas de mídia, eles podem ser divididos em dois tipos que tem características distintas: de tempo contínuo e de tempo discreto. Mídia de tempo contínuo - são dependentes do tempo. Mídia de tempo discreto - são independentes. Exemplos de mídia contínua são áudio digital e vídeo. Exemplos de mídia discreta são textos, imagens e gráficos. Ao contrário da mídia discreta, a mídia contínua tem requisitos temporais inerentes. O fluxo contínuo de mídia é composto por uma seqüência de amostras de mídias, organizadas pelo tempo, tais como amostras de áudio ou frames de vídeo. SMART - Características de tempo A característica distintiva destes dados é que a informação não é expressa apenas nas amostras individuais do fluxo, mas o alinhamento temporal das amostras também. Por exemplo, considere um fluxo de vídeo capturado, mostrando uma bola quicando para cima e para baixo. A taxa de movimento da bola oscilante é codificada no tempo de espaçamento entre os quadros de vídeo. Para reproduzir com precisão o movimento da bola quicando, quando o fluxo de vídeo é apresentado, o tempo decorrido entre os quadros apresentados devem ser o mesmo que o tempo decorrido tempo entre os respectivos quadros, quando eles foram capturados. SMART - Características de tempo Ao assistir um filme, o fluxo de áudio e o fluxo de vídeo precisam ser sincronizados para que o áudio correto seja ouvido quando um determinado frame de vídeo é exibido. Além disso, pode exigir a sincronização entre mídias contínuas e discretas, como no caso de closed caption em que o texto, áudio e vídeo são exibidos juntos. Observe que quando uma mídia independente de tempo é sincronizada com um media dependente do tempo, o resultado é dependente do tempo. Se as amostras de mídia não são tratados na taxa em que eles chegam, então não vai ser possível manter o alinhamento temporal exato das amostras de mídia. Os requisitos de tempo de processamento de mídia contínua são geralmente de natureza cíclica, embora também possam ser aperiódica. SMART - Características de carga do sistema Quando se executam processos multimídia, a carga resultante é geralmente alta e muito dinâmica. As aplicações multimidia, precisam de uma demanda insaciável por recursos. Mesmo com os rápidos avanços na tecnologia de hardware, hoje estações de trabalho estão apenas começando a ser capazes de usar software para mostrar resolução completa (640x480 pixels) com taxa de vídeo full frame (30 frames por segundo). A tecnologia emergente de vídeo HDTV exige muito mais poder computacional. Como as aplicações de vídeo em tempo real são altamente necessitados de recursos e podem consumir uma máquina inteira, os recursos são comumente sobrecarregados com a demanda de recursos superior a sua disponibilidade. SMART - Características de carga do sistema Muito do trabalho que tem sido feito para suportar os requisitos de tempo-real tem sido no contexto de sistemas embarcados em que os requisitos de tempo de aplicação e o ambiente de execução são estáticos e estritamente de natureza periódica. Em contrapartida, o ambiente de computação em que se executam aplicativos de multimídia é altamente de natureza dinâmica. Os usuários podem iniciar ou terminar as aplicações a qualquer momento, alterando a carga no sistema. Os requisitos de processamento de aplicações multimídia em si são muitas vezes altamente dinâmicos também. Embora as amostras de mídia na mídia correntes contínuas ocorrem normalmente em tempo de uma forma periódica, os requisitos para o processamento de amostras de meios de comunicação são por vezes periódicas. Example illustrating the behavior of SMART SMART - Carga do sistema Por exemplo, o tempo de processamento para descomprimir ou comprimir JPEG ou MPEG codificados de vídeo podem variar substancialmente de frames de vídeo diferentes. Alternativamente, os requisitos de processamento de uma aplicação multimídia pode variar, dependendo de como ele está sendo usado. Por exemplo, os requisitos para exibição de um filme em “fast forwarding” são diferentes dos requisitos para se exibir o mesmo filme em velocidade normal. Actual vs. estimated execution time per JPEG image SMART - Características do usuário • Diferentes usuários podem ter diferentes preferências de como um mix de aplicações devem se comportar. Por exemplo, quando um sistema está sobrecarregado porque está rodando simultaneamente o NetCam e o Show-MeTV, um usuário pode querer reduzir a qualidade de vídeo do NetCam para liberar recursos que podem ser usados para melhorar a qualidade de exibição do ShowMeTV. Outro usuário pode desejar o comportamento oposto. O comportamento desejado pode depender se o usuário está ativamente engajado em uma sessão do NetCam, ou se o usuário está entediado com a vídeo conferência e prefere assistir ao ShowMeTV. É desejável que o sistema seja suficientemente flexível para permitir que usuários diferentes obtenham o comportamento da aplicação com base nas suas preferências. SMART application performance under a changing load when using end user controls SMART - As limitações operacionais comerciais dos sistemas Comumente os sistemas operacionais multi-programados, são uma evolução do sistema operacional UNIX, a partir do ambiente, multiusuário de grande escala e sistemas de time-sharing. Estes sistemas de compartilhamento de tempo tentam ajustar a execução de todas as aplicações maximizando o rendimento total do sistema. Sem informações explícitas das aplicações, o melhor que pode ser feito é a utilização de heurísticas que usando algoritmos de intuição coletam algumas propriedades de aplicações, desde o seu comportamento e assim ajustam a alocação de recursos de uma forma a fornecer os resultados desejados. SMART - As limitações operacionais comerciais dos sistemas Na tentativa de suportar aplicações com requisitos de tempo-real no contexto de um ambiente de computação, a AT & T desenvolveu o UNIX System V Release 4 (SVR4), que foi projetado para incluir um agendador de prioridade real-time estático, além de um padrão UNIX de time-sharing. Um usuário pode indicar para o sistema operacional que o pedido tem requisitos de tempo que devem ser cumpridas classificando o aplicativo como um aplicativo em tempo real e atribuindo-lhe um valor prioritário. SMART - As limitações operacionais comerciais dos sistemas Ao executar todas as atividades em ordem de prioridade, o UNIX SVR4 permite que as atividades em tempo real obtenham ciclos de processamento quando necessário para satisfazer as suas necessidades de tempo. Esta solução pretende oferecer suporte do sistema robusto para aplicações multimídia, permitindo que aplicações como os que manipulam áudio e vídeo possam ser atendidos pelo programador em tempo real. Desde então o UNIX SVR4 é uma base comum de sistemas operacionais comerciais, sendo importante investigar estas afirmações. Portanto, temos usado um sistema UNIX SVR4 base para examinar o real desempenho das aplicações multimídia. SMART - As limitações operacionais comerciais dos sistemas Não são apenas as latências que são muito pior do que o desejado, mas patologias ocorrem com o scheduler de tal forma que o sistema já não aceita entrada do usuário. Para aliviar alguns destes problemas, uma série de modificações foram feitas no scheduler do UNIX SVR4 para compartilhamento do tempo. Enquanto a modificação do compartilhamento de tempo no scheduler não é muito eficaz, estas alterações não resultam em uma notável melhoria no desempenho para aplicações multimídia. O scheduler de compartilhamento de tempo no sistema operacional Solaris da Sun, a partir da versão 2.3 e posteriores, baseia-se nas modificações descritas no artigo em questão. SMART- Performance Para avaliar a eficácia do SMART, realizou-se uma série de experimentos com o protótipo rodando microbenchmarks bem como com aplicações comerciais reais. Devido à complexa interação entre aplicativos e sistemas operacionais de uso geral, temos uma ênfase na avaliação do SMART com aplicações reais em um ambiente de sistema totalmente funcional. Comparison of scheduler application performance SMART- Performance Os experimentos foram realizados utilizando-se uma máquina padrão. Foram utilizadas 10 estações de trabalho com um único processador de 150 MHz SPARC, 64 MB de memória principal, e 78 GB de espaço em disco local. O sistema inclui uma testbed padrão de 8 bits pseudo-frame de buffer (ou seja, GX). A exibição foi gerido com o X Window System e o Sistema operacional Solaris 2.5.1 foi utilizado como base para o trabalho experimental. Distributions of quality metrics SMART - Conclusão Este trabalho objetivou criar um algoritmo para aumentar o desempenho de sistemas que tratam de aplicações multimídia e de tempo real. Garantindo assim uma melhora na performance e tratamento adequado para execução dos processos de tempo real. O SMART ajusta a alocação de recursos de forma dinâmica e contínua, realizando cálculos em tempo real e regulando as taxas de execução de tarefas em tempo real quando o sistema está sobrecarregado, proporcionando uma melhor relação de trabalho do que em condições normais.