Alocação de Arquivos em Discos
Os arquivos multimídia são muitos grandes e, geralmente, são escritos apenas uma vez e lido
muitas vezes e, em geral, são acessados sequencialmente. Suas reproduções seguem critérios
estritos de qualidade. Com isso, é necessário utilizar um sistema de arquivos diferente dos
tradicionais.
Alocação de um Arquivo em um único disco
A exigência mais importante é que os dados, na forma de fluxos, possam fluir para a rede ou par um dispositivo de saída, na velocidade adequada. Por isso, uma grande quantidade de buscas em disco é indesejável. Uma forma de evitar isso é utilizar arquivos contíguos. Uma complicação surge quando há a presença de vídeo, áudio e texto. Mesmo que eles estejam armazenados separadamente é necessário, ainda, uma busca para ir do arquivo de vídeo para um arquivo de áudio e de lá para um arquivo de texto. Com isso, sugere-se um segundo arranjo possível com o vídeo, áudio e texto intercalado, porém com todo o arquivo ainda contíguo. A vantagem de um filme inteiro como um único arquivo contíguo é perdida em um servidor de vídeo com vários fluxos concorrentes de saída, pois, depois de ler um quadro de um filme, os quadros de muitos outros filmes terão de ser lidos antes de o primeiro ser lido novamente. Além disso, é difícil e nada útil implementar um sistema em que os filmes estejam sendo escritos e lidos usando enormes arquivos contíguos.
Duas Estratégias Alternativas de organização de Arquivos
Para a organização de pequeno bloco o tamanho do bloco de disco é muito menor que o
tamanho médio de um quadro (todas as trilhas de vídeo, áudio e texto alocados
contíguamente). Por exemplo, para o MPEG-2 em 4Mbps com 30 quadros/s, o tamanho médio
do quadro é 16KB; com isso, um bom tamanho de bloco seria de 1KB ou 2KB. A idéia é ter uma
estrutura de dados – o índice de quadros – por filme com uma entrada para cada quadro
apontando para seu início. Outra maneira de armazenar um filme é usar um bloco de disco
grande e colocar vários quadros em cada bloco. Neste caso é necessário ter um índice de
blocos ao invés de um índice de quadros. Agora uma informação é acrescentada a fim de
indicar qual quadro está no início do bloco para que seja possível localizar rapidamente um
quadro específico. Como geralmente um bloco não contém um número inteiro de quadros
algumas medidas devem ser tomadas. Uma delas é consiste em deixar um espaço de bloco
vazio quando o tamanho de um quadro for superior a aquele. Ocorre então, uma
fragmentação interna no bloco com um detalhe, nunca será necessário fazer uma busca no
meio de um quadro. Outra solução é preencher cada bloco até o final, dividindo-se os quadros
entre os blocos. Essa opção gera a necessidade de buscas no meio dos quadros, o que pode
prejudicar o desempenho, mas economiza espaço em disco – eliminação da fragmentação
interna.
Resumidamente podemos dizer:
o Índice de quadro: Uso mais intensivo da RAM enquanto o filme é reproduzido;
pequena perda de disco.
o Índice de Blocos (sem dividir os quadros entre os blocos): Pequeno uso de RAM;
grande perda de disco.
o Índice de Blocos (dividindo os quadros entre os blocos): Pequeno uso de RAM;
nenhuma perda de disco.
Alocação de múltiplos arquivos em um único Disco
A alocação de diversos filmes feitos aleatoriamente faz com que o seja necessário gastar muito
tempo para movimentar o cabeçote do disco de um filme para outro. Tendo em vista isso, é
necessário estabelecer uma forma de organizá-los a fim de que não seja reduzido o
desempenho na hora de visualizá-los. Uma maneira de organizá-los foi proposta George Zipf e
ficou conhecida como Lei de Zipf. Ela sugere a organização dos filmes segundo uma ordem de
popularidade decrescente, ou seja, o primeiro filme armazenado é mais “popular” que o
segundo cerca de duas vezes, mais “popular” que o terceiro em 3 vezes e assim por diante.
Outra solução foi proposta por Grossman e Silverman e recebeu o nome de Algoritmo dos
Tubos de órgão. Nele, o filme mais popular ocupa a região central e é “rodeado” pelo segundo
e terceiro filme mais popular. Externamente a esses dois vêm os números 4 e cinco e assim por
diante.
Alocação de arquivos para Vídeos quase sob demanda
Mesmo que um filme seja armazenado como arquivo contíguo, é necessário buscar
cada fluxo. Chen e Thapar inventaram uma estratégia para eliminar quase todas as buscas.
Nesta alocação certo conjunto de quadros, 24 por exemplo, são concatenados e escritos no
disco como um único registro. Eles também podem ser lidos em uma única operação de
leitura. Esse esquema não exige que todo o arquivo seja contíguo, mas ainda permite um bom
desempenho para vários fluxos simultâneos. Uma estratégia simples quanto ao buffer é usar
buffer duplo. Enquanto um estiver sendo reproduzido sobre os 24 fluxo, outro está sendo
carregado antecipadamente.
Alocação de um arquivo em múltiplos discos
Sem distribuição: Um filme é armazenado em um único disco. Vários filmes, completos, podem
estar em um disco.
Mesmo padrão de distribuição por todos os arquivos: um filme é particionado contiguamente
em múltiplos discos. Problema: desequilíbrio de carga.
Distribuição com revezamento: tentativa de reduzir o desequilíbrio de carga do padrão
anterior.
Distribuição Aleatória: Outra tentativa de reduzir o balanço de carga
Quando um disco é perdido nenhum filme é exibido para a distribuição ampla. Enquanto que
na distribuição restrita, apenas o conjunto de filmes contidos naquele disco.
Caching
Os padrões de caching de arquivo LRU não funcionam bem para arquivos multimídia, pois os
padrões de acesso são diferentes. Para os arquivos multimídia o padrão normal de acesso é
aquele em que o filme é visto sequencialmente, do início ao fim.
Caching de Blocos
Consiste em manter um bloco que um usuário buscou e poderá ser usado por outro na
caching. É necessário apenas monitorar quais filmes possuem mais de um espectador. O bloco
estará na caching até que o outro usuário chegue ao mesmo ponto do filme. Em alguns casos
pode ser viável juntar dois fluxos. Par isso é necessário reduzir (atrasar) no número de quadros
por segundo de um e aumentar (acelerar) a do outro.
Caching de Arquivos
Por causa do grande tamanho da maioria dos filmes, os servidores de vídeo muitas vezes não
podem armazenar todos os seus filmes em disco e, portanto, os mantêm em DVD. Quando for
necessário, o filme é copiado para o disco. Por isso a maioria dos servidores de vídeo mantém
uma cachê de disco dos filmes mais requisitados –são totalmente armazenados.
Outro modo de usar a técnica de caching é manter os primeiros cinco minutos de cada filme
no disco. Assim que for requisitado poderá entrar em execução enquanto o restante do
arquivo estará sendo carregado em cachê. Se houver mais requisições essa parte permanecerá
no disco, caso contrário dará lugar a outro filme mais popular.
Escalonamento estático de disco
Sistemas multimídia possuem uma propriedade que os distinguem dos sistemas tradicionais, a
previsibilidade. Cada fluxo ativo exige do sistema uma carga bem definida e bastante
previsível. O tempo é dividido em ciclos e cada ciclo é o tempo de um quadro(33,3 ms para
NTSC e 40ms para PAL). Depois de chegadas todas as requisições no início do ciclo, o disco
sabe o que fazer durante todo o ciclo. O disco sabe que não chegará outra requisição
enquanto as que estiverem no ciclo não forem processadas e o próximo ciclo não tenha
começado. Otimizando a busca dessa maneira(ordem crescente), o tempo médio para
processar cada requisição é reduzido, logo, o disco pode tratar mais fluxos por ciclo. Em outras
palavras, aumenta o número de filmes que o servidor pode transmitir simultaneamente.
Escalonamento dinâmico
Os fluxos não têm mais as mesmas resoluções, a mesma taxa de quadros e outras
propriedades como no escalonamento estático. Cada requisição de leitura especifica qual
bloco deve ser lido e seu prazo (instante em que o bloco é necessário. Quando houver uma
requisição e um bloco estiver sendo processado o disco decide, escalona, qual requisição será
atendida. Qual o critério para a seleção? Prazo: ordena as requisições pelos vencimentos dos
prazos; cumprimento do prazo, aumento do tempo total de busca. Cilindro: ordenação em
ordem crescente das requisições, diminuição do tempo de busca e possível descumprimento
de prazo. Algoritmo de Scan –EDF reúne, em lotes, os requisitos com prazos de vencimento
bem próximos e procesá-los de em cilindro.
Top Related