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.
Download

Andrei Wellington e José Ricardo