Compactação e Reuso de Espaço Cristia D. A. Ciferri Thiago A. S. Pardo Leadro C. Citra M.C.F. de Oliveira Moacir Poti Jr.
Maipulação de Dados Operações básicas adição de registros relativamete simples remoção de registros atualização de registros elimiação e adição de um registro Quado um registro é removido, deve-se posteriormete reutilizar o espaço do registro
Compactação e Reuso Compactação busca por regiões do arquivo que ão cotêm dados recupera os espaços perdidos Reuso isere dados os espaços perdidos Abordagem Estática versus Abordagem Diâmica
Abordagem Estática
Abordagem Estática programa compactador remoção do registro gera espaço sem dados úteis reagrupa os registros e dimiui o tamaho do arquivo Técica para recohecer 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 ada em um itervalo de tempo Δt Durate Δt registros removidos são marcados, porém ão são reaproveitados ovas iserções são realizadas o fial do arquivo buscas descosideram os registros marcados como removidos Após Δt remoção física programa é executado para recostruir o arquivo todos os registros removidos são descartados
Exemplo: Abordagem Estática Arquivo de dados campos de tamaho variável método: delimitador registros de tamaho fixo tamaho do registro: 30 bytes
Exemplo: Abordagem Estática Arquivo origial 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 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
Exemplo: Abordagem Estática Arquivo origial 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 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. Recupere os dados do registro com RRN = 4
Exemplo: Abordagem Estática Arquivo origial 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 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 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 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 4. Recupere os dados do registro com RRN = 1
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 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 5. Isira um ovo registro: CATARINA, AVENIDA X, RIO CLARO
Exemplo: Abordagem Estática Arquivo após iserção 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 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 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 6. 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 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
Características: Abordagem Estática Técica pode ser aplicada a registros de tamaho fixo registros de tamaho variável Frequêcia para se aplicar a técica depede da aplicação depede da procetagem de registros marcados como removidos
Abordagem Diâmica
Abordagem Diâmica Idicada para aplicações iterativas que acessam arquivos altamete voláteis Desafios marcar registros como logicamete removidos idetificar se existem registros marcados como logicamete removidos, ou seja, se existem espaços a serem reaproveitados localizar os espaços ocupados por esses registros logicamete removidos sem realizar buscas exaustivas
Abordagem Diâmica Registros de Tamaho Fixo
Registros de Tamaho Fixo: Abordagem Diâmica Solução lista ecadeada de registros elimiados Características lista: costitui-se dos RRNs dos registros marcados como logicamete removidos cabeça da lista: armazeada o registro de cabeçalho do arquivo iserção e reuso de espaço: ocorrem sempre o iício da lista Implemetação: PILHA
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo -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 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
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo -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 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. Recupere os dados do registro com RRN = 4
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo -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 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 = 1
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 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 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 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 4. Remova o registro com RRN = 3
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 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 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 U A b A U G U S T O b P A I V A I B A T E b b 5. Remova o registro com RRN = 0
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 3 R U A b 1 S A O b C A R L O S b b b b b b b * -1 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 U A b A U G U S T O b P A I V A I B A T E b b 6. Recupere os dados do registro com RRN = 1
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 3 R U A b 1 S A O b C A R L O S b b b b b b b * -1 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 U A b A U G U S T O b P A I V A I B A T E b b 7. Isira ovo registro: CATARINA, AVENIDA X, RIO CLARO
Registros de Tamaho Fixo: Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 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 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 U A b A U G U S T O b P A I V A I B A T E b b
Abordagem Diâmica Registros de Tamaho Variável
Registros de Tamaho Variável: Abordagem Diâmica Solução lista ecadeada de registros elimiados Características lista: costitui-se dos byte offsets dos registros marcados como logicamete removidos cabeça da lista: armazeada o registro de cabeçalho do arquivo iserção: ocorre sempre o iício da lista (como uma pilha) Necessário guardar também o tamaho do registro
Registros de Tamaho Variável Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo -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 A R U A b A U G U S T O b P A I V A I B A T E # 1. Recupere os dados do segudo registro
Registros de Tamaho Variável Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo -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 A R U A b A U G U S T O b P A I V A I B A T E # 2. Recupere os dados do quito registro
Registros de Tamaho Variável Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo -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 A R U A b A U G U S T O b P A I V A I B A T E # 3. Remova os dados do segudo registro
Registros de Tamaho Variável Abordagem Diâmica próximo registro dispoível Arquivo origial registro de cabeçalho: Topo 24 registros de dados: tamaho do registro M A R I A R U A b 1 S A O b C A R L O S # * 22-1 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 A R U A b A U G U S T O b P A I V A I B A T E # 4. Remova os dados do quarto registro
Registros de Tamaho Variável Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 71 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 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 # * 29 24 U G U S T O b P A I V A I B A T E # 5. Remova os dados do primeiro registro
Registros de Tamaho Variável Abordagem Diâmica Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 24 71 b 1 S A O b C A R L O S # * 22-1 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 # * 29 24 U G U S T O b P A I V A I B A T E #
Registros de Tamaho Variável: Abordagem Diâmica Reuso de espaço realiza uma busca sequecial a lista se ecotrou espaço dispoível o tamaho adequado etão reaproveita o espaço para armazear o ovo registro, usado uma estratégia de alocação seão isere o ovo registro o fial do arquivo O tamaho do registro que foi removido deve ser do tamaho adequado, ou seja, grade o suficiete para que os dados do ovo 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 origial registro de cabeçalho: Topo 0 registros de dados: * 24 71 b 1 S A O b C A R L O S # * 22-1 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 # * 29 24 U G U S T O b P A I V A I B A T E # 6. Isira ovo registro: RITA, RUA X, IBATE (tamaho = 18)
Reuso de Espaço: Estratégia First-Fit Arquivo origial registro de cabeçalho: Topo 71 registros de dados: fragmetação itera R I T A R U A b X I B A T E A R L O S # * 22-1 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 # * 29 24 U G U S T O b P A I V A I B A T E #
Reuso de Espaço: Estratégia Best-Fit Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 24 71 b 1 S A O b C A R L O S # * 22-1 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 # * 29 24 U G U S T O b P A I V A I B A T E # 6. Isira ovo registro: RITA, RUA X, IBATE (tamaho = 18)
Reuso de Espaço: Estratégia Best-Fit Arquivo origial registro de cabeçalho: Topo 0 registros de dados: fragmetação itera * 24 71 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 # * 29-1 U G U S T O b P A I V A I B A T E #
Reuso de Espaço: Estratégia Worst-Fit Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 24 71 b 1 S A O b C A R L O S # * 22-1 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 # * 29 24 U G U S T O b P A I V A I B A T E # 6. Isira ovo registro: RITA, RUA X, IBATE (tamaho = 18)
Reuso de Espaço: Estratégia Worst-Fit Arquivo origial registro de cabeçalho: Topo 0 registros de dados: fragmetação itera * 24 24 b 1 S A O b C A R L O S # * 22-1 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 # R I T A R U A b X I B A T E A I V A I B A T E #
Fragmetação Itera Defiição espaço que sobra detro de um registro pode ocorrer com qualquer estratégia de alocação Solução colocar o espaço que sobrou a lista ecadeada como um registro elimiado
Reuso de Espaço: Estratégia Worst-Fit Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 24 71 b 1 S A O b C A R L O S # * 22-1 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 # * 29 24 U G U S T O b P A I V A I B A T E # 6. Isira ovo registro: RITA, RUA X, IBATE (tamaho = 18), com tratameto de fragmetação itera
Reuso de Espaço: Estratégia Worst-Fit Arquivo origial registro de cabeçalho: Topo 0 registros de dados: * 24 71 b 1 S A O b C A R L O S # * 22-1 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 # * 11 24 U # R I T A R U A b X I B A T E #
Fragmetação Extera Defiição o espaço que sobrou detro de um registro foi colocado a lista ecadeada como um registro elimiado o espaço é muito pequeo, e ão pode armazear ehum dado pode ocorrer com qualquer estratégia de alocação
Fragmetação Extera Como combater jução de espaços vazios adjacetes (coalescimeto) combiação de dois espaços vazios a lista que são fisicamete adjacetes em um espaço úico maior Dificuldade a adjacêcia de registros a lista é lógica, ão física, o que requer a busca por registros adjacetes
Observações Estratégias de alocação usadas somete com registros de tamaho variável Recomedações se o espaço está sedo desperdiçado devido à fragmetação itera etão escolha etre First-Fit e Best-Fit se o espaço está sedo desperdiçado devido à fragmetação extera etão escolha Worst-Fit