Alocação de arquivos em discos

5

Click here to load reader

description

Alocação de arquivos em discos, caching e escalonamento de disco - Sistemas Multimídias.

Transcript of Alocação de arquivos em discos

Page 1: Alocação de arquivos em discos

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.

Page 2: Alocação de arquivos em discos

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

Page 3: Alocação de arquivos em discos

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

Page 4: Alocação de arquivos em discos

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.

Page 5: Alocação de arquivos em discos

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.