Compactação e Reuso de Espaço

Documentos relacionados
Organização de Arquivos. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri

Compactação e Reuso de Espaço

Organização de Arquivos

Organização de Arquivos

Organização de arquivos para desempenho. Manutenção de Arquivos. Compressão de dados. Compressão. Notação diferenciada. Técnicas

Manutenção de Arquivos

Organização de Arquivos. SCE-183 Algoritmos e Estruturas de Dados II

Índice Primário e Índice Secundário

Índices. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

Arquivos: Organização X Acesso

Índice. Índices. Índice simples. Em geral, um índice fornece mecanismos para localizar informações

Ordenação e Busca em Arquivos

Organização de Arquivos e Acesso a Arquivos

Indexação de Arquivos III:

SCC-503 Algoritmos e Estruturas de Dados II. Modificado por Moacir Ponti Jr, do original de:

Organização de Arquivos

Árvores-B (Parte IV) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Ordem. Árvores-B (Parte IV) Número mínimo de chaves por página. Definição formal das Propriedades de árvores-b /30 1

Índices. SCE-203 Algoritmos e Estruturas de Dados II

Fundamentos de Arquivos e Armazenamento Secundário

Arquivos: Organização X Acesso

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Manutenção de Arquivos

Organização de Arquivos. Leandro C. Cintra M.C.F. de Oliveira Thiago A. S. Pardo Cristina D. A. Ciferri

Primeira Parte do Trabalho Prático (Parte I) Valor: 40% Descrição do arquivo de dados

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Outros tipos de índice. Leandro C. Cintra M.C.F. de Oliveira Thiago A. S. Pardo Cristina D. A. Ciferri

Algoritmo: Split. Árvores B Parte IV. Algoritmo: Split. Algoritmo: Split. Algoritmo: Split. Procedimento inicial. Parâmetros

Lista de Exercícios 07 Introdução à Ciência de Computação II (SCC0201/501)

Organização de Arquivos. Campos e Registros. Seqüência de Bytes (stream) Seqüência de Bytes (stream) Seqüência de Bytes (stream)

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Segundo Trabalho Prático

Métodos de Busca Parte 1

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

Árvores-B (Parte II) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Estruturas de Dados I

Estrutura de Dados: Aula 3 - Linguagem C

Filas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1

Lista Encadeada (Linked List)

Acesso a registros. Acesso a Registros. Acesso a registros. Chaves. Forma Canônica da Chave. Forma Canônica da Chave

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Capítulo 8: Abstrações de dados

Hashing convencional...

Introdução Métodos de Busca Parte 1

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Sistemas Operacionais Gerência de Memória

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode

Estrutura de Dados. Aleardo Manacero Jr.

Chaves. Acesso a Registros. Chaves Primária e Secundária. Chaves Primária e Secundária

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

Disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação.

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

Prof. Walteno Martins Parreira Júnior

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Pilhas e Filas. Nádia Félix e Hebert Coelho

SCC Algoritmos e Estruturas de Dados I

Segunda Parte do Trabalho Prático (Parte II) Valor: 60% Descrição do índice

Sistemas Operacionais

Estrutura de Dados II

Árvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira

ANÁLISE E PROJETO DE BANCO DE DADOS

HASHING HASHING 6/10/2008

Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

Gerenciamento de Memória. Aleardo Manacero Jr.

Árvores-B + SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Cristina Dutra de Aguiar Ciferri

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Professora Jeane Melo

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Capítulo 6 Nível do Sistema Operacional

Algoritmos e estrutura de dados

Primeiro Trabalho Prático Turma A. Descrição do Trabalho. Considere os seguintes dados a respeito de um livro:

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

Construção de árvores-b. Árvores-B (Parte II) Características Gerais. Características Gerais. Leandro C. Cintra M.C.F. de Oliveira

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

Árvores-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri. Algoritmos e Estruturas de Dados II Árvore-B +

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

Matrizes esparsas: definição

Capítulo 11 Sistemas de Arquivos

EAD PILHA - DEFINIÇÃO

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Árvore-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Métodos Computacionais. Listas Encadeadas

Tabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

Estruturas de Dados Aula 11: TAD Pilha

slide Pearson Prentice Hall. Todos os direitos reservados.

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Transcrição:

Compactação e Reuso de Espaço Cristina D. A. Ciferri Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Moacir Ponti Jr.

Manipulação de Dados Operações básicas adição de registros relativamente simples remoção de registros atualização de registros eliminação e adição de um registro Quando um registro é removido, deve-se posteriormente reutilizar o espaço do registro

Compactação e Reuso Compactação busca por regiões do arquivo que não contêm dados recupera os espaços perdidos Reuso insere dados nos espaços perdidos Abordagem Estática versus Abordagem Dinâmica

Abordagem Estática programa compactador remoção do registro gera espaço sem dados úteis reagrupa os registros e diminui o tamanho do arquivo Técnica para reconhecer registros removidos: remoção lógica atribuir um valor para um campo do registro usar um campo extra

Abordagem Estática remoção lógica Não faz nada em um intervalo de tempo Δt Durante Δt registros removidos são marcados, porém não são reaproveitados novas inserções são realizadas no final do arquivo buscas desconsideram os registros marcados como removidos Após Δt remoção física programa é executado para reconstruir o arquivo todos os registros removidos são descartados

Exemplo: Abordagem Estática Arquivo original M A R I A R U A b 1 S A O b C A R L O S b b b b b b b J O A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b A N T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b 1. Recupere os dados do registro com RRN = 1 2. Remova os registros com RRN = 1 e RRN = 3

Exemplo: Abordagem Estática Arquivo após remoção lógica M A R I A R U A b 1 S A O b C A R L O S b b b b b b b * O A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b * N T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b 3. Recupere os dados do registro com RRN = 1 4. Compacte o arquivo

Exemplo: Abordagem Estática Arquivo compactado M A R I A R U A b 1 S A O b C A R L O S b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b A N A R U A b A U G U S T O b P A I V A I B A T E b b

Características: Abordagem Estática Técnica pode ser aplicada a registros de tamanho fixo registros de tamanho variável Frequência para se aplicar a técnica depende da aplicação depende da procentagem de registros marcados como removidos

Abordagem Dinâmica Indicada para aplicações interativas que acessam arquivos altamente voláteis Desafios marcar registros como logicamente removidos identificar se existem registros marcados como logicamente removidos, ou seja, se existem espaços a serem reaproveitados localizar os espaços ocupados por esses registros logicamente removidos sem realizar buscas exaustivas

Registros de Tamanho Fixo: Abordagem Dinâmica Solução lista encadeada de registros eliminados Características lista: constitui-se dos RRNs dos registros marcados como logicamente removidos cabeça da lista: armazenada no registro de cabeçalho do arquivo inserção e reuso de espaço: ocorrem sempre no início da lista Implementação: PILHA

Registros de Tamanho Fixo: Abordagem Dinâmica Arquivo original registro de cabeçalho: TopoPilha -1 (NIL) registros de dados: M A R I A R U A b 1 S A O b C A R L O S b b b b b b b J O A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b A N T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b 1. Remova o registro com RRN = 1

Registros de Tamanho Fixo: Abordagem Dinâmica Arquivo após remoção lógica registro de cabeçalho: TopoPilha 1 registros de dados: M A R I A R U A b 1 S A O b C A R L O S b b b b b b b * -1 A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b A N T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b 2. Remova o registro com RRN = 3

Registros de Tamanho Fixo: Abordagem Dinâmica Arquivo após remoção lógica registro de cabeçalho: TopoPilha 3 registros de dados: M A R I A R U A b 1 S A O b C A R L O S b b b b b b b * -1 A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b * 1 T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b 3. Remova o registro com RRN = 0

Registros de Tamanho Fixo: Abordagem Dinâmica Arquivo após remoção lógica registro de cabeçalho: TopoPilha 0 registros de dados: * 3 R I A R U A b 1 S A O b C A R L O S b b b b b b b * -1 A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b * 1 T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b 3. Insira um novo registro

Registros de Tamanho Fixo: Abordagem Dinâmica Arquivo após inserção registro de cabeçalho: TopoPilha 3 registros de dados: C A T A R I N A A V E N I D A b X R I O b C L A R O b * -1 A O R U A b A R I O b C L A R O b b b b b b b b b P E D R O R U A b X V S A O b C A R L O S b b b b b b * 1 T O N I A R U A b X V b D E b M A I O I B A T E b A N A R U A b A U G U S T O b P A I V A I B A T E b b

Registros de Tamanho Variável: Abordagem Dinâmica Solução lista encadeada de registros eliminados Características lista: constitui-se dos byte offsets dos registros marcados como logicamente removidos cabeça da lista: armazenada no registro de cabeçalho do arquivo inserção: ocorre sempre no início da lista (como uma pilha) Necessário guardar também o tamanho do registro

Registros de Tamanho Variável: Abordagem Dinâmica Arquivo original registro de cabeçalho: TopoLista -1 (NIL) registros de dados: M A R I A R U A b 1 S A O b C A R L O S # J O A O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # A N A R U A b A U G U S T O b P A I V A I B A T E # 1. Remova o registro relativo ao JOAO

Registros de Tamanho Variável: Abordagem Dinâmica Arquivo original registro de cabeçalho: TopoLista 24 registros de dados: M A R I A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # A N A R U A b A U G U S T O b P A I V A I B A T E # 2. Remova o registro relativo à ANA

Registros de Tamanho Variável: Abordagem Dinâmica Arquivo original registro de cabeçalho: TopoLista 101 registros de dados: M A R I A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E # 3. Remova o registro relativo à MARIA

Registros de Tamanho Variável: Abordagem Dinâmica Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 101 A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E #

Registros de Tamanho Variável: Abordagem Dinâmica Reuso de espaço realiza uma busca sequencial na lista se encontrou espaço disponível no tamanho adequado então reaproveita o espaço para armazenar o novo registro, usando uma estratégia de alocação senão insere o novo registro no final do arquivo O tamanho do registro que foi removido deve ser do tamanho adequado, ou seja, grande o suficiente para que os dados do novo registro usem aquele espaço

Estratégias de Alocação First-Fit utiliza o primeiro espaço que servir Best-Fit escolhe o espaço mais justo possível Worst-Fit escolhe o maior espaço possível

Reuso de Espaço: Estratégia First-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 101 A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E # 4. Insira um novo registro de tamanho 18 usando a estratégia First-Fit

Reuso de Espaço: Estratégia First-Fit Arquivo original registro de cabeçalho: TopoLista 101 registros de dados: R I T A R U A b X I B A T E A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E # fragmentação interna

Reuso de Espaço: Estratégia Best-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 101 A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E # 4. Insira um novo registro de tamanho 18 usando a estratégia Best-Fit

Reuso de Espaço: Estratégia Best-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 101 A R U A b 1 S A O b C A R L O S # R I T A R U A b X I B A T E A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29-1 R U A b A U G U S T O b P A I V A I B A T E # fragmentação interna

Reuso de Espaço: Estratégia Worst-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 101 A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E # 4. Insira um novo registro de tamanho 18 usando a estratégia Worst-Fit

Reuso de Espaço: Estratégia Worst-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 24 A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # R I T A R U A b X I B A T E A I V A I B A T E # fragmentação interna

Fragmentação Interna Definição espaço que sobra dentro de um registro pode ocorrer com qualquer estratégia de alocação Solução colocar o espaço que sobrou na lista encadeada como um registro eliminado

Reuso de Espaço: Estratégia First-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 24 101 A R U A b 1 S A O b C A R L O S # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E # 4. Insira um novo registro de tamanho 18 usando a estratégia First-Fit, com tratamento de fragmentação interna

Reuso de Espaço: Estratégia First-Fit Arquivo original registro de cabeçalho: TopoLista 0 registros de dados: * 6 101 A # R I T A R U A b X I B A T E # * 22-1 O R U A b A R I O b C L A R O # P E D R O R U A b X V S A O b C A R L O S # A N T O N I A R U A b X V b D E b M A I O I B A T E # * 29 24 R U A b A U G U S T O b P A I V A I B A T E #

Fragmentação Externa Definição o espaço que sobrou dentro de um registro foi colocado na lista encadeada como um registro eliminado o espaço é muito pequeno, e não pode armazenar nenhum dado pode ocorrer com qualquer estratégia de alocação

Fragmentação Externa Como combater junção de espaços vazios adjacentes (coalescimento) combinação de dois espaços vazios na lista que são fisicamente adjacentes em um espaço único maior Dificuldade a adjacência de registros na lista é lógica, não física, o que requer a busca por registros adjacentes

Observações Estratégias de alocação usadas somente com registros de tamanho variável Recomendações se o espaço está sendo desperdiçado devido à fragmentação interna então escolha entre First-Fit e Best-Fit se o espaço está sendo desperdiçado devido à fragmentação externa então escolha Worst-Fit