Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. ·...
Transcript of Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. ·...
![Page 1: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/1.jpg)
1
Organização de Arquivos
SCE-183 – Algoritmos e Estruturas de Dados II
![Page 2: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/2.jpg)
2
Modelos Abstratos de Dados
n Focar no conteúdo da informação, ao invés de no seu formato físico
n As informações atuais tratadas pelos computadores (som, imagens, etc.) não se ajustam bem à metáfora de dados armazenados como seqüências de registros separados em campos
![Page 3: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/3.jpg)
3
Modelos Abstratos de Dados n É mais fácil pensar em dados deste tipo como
objetos que representam som, imagens, etc. e que têm a sua própria maneira de serem manipulados
n O termo modelo abstrato de dados captura a noção de que o dado não precisa ser visto da forma como está armazenado - ou seja, permite uma visão dos dados orientada à aplicação, e não ao meio no qual eles estão armazenados
![Page 4: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/4.jpg)
4
Registro Cabeçalho (header record)
n Em geral, é interessante manter algumas informações sobre o arquivo para uso futuro
n Essas informações podem ser mantidas em um cabeçalho no início do arquivo
n A existência de um registro cabeçalho torna um arquivo um objeto auto-descrito
n O software pode acessar arquivos de forma mais flexível
![Page 5: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/5.jpg)
5
Registro Cabeçalho (header record) n Algumas informações típicas
n Número de registros
n Tamanho de cada registro
n Nomes dos campos de cada registro
n Tamanho dos campos
n Datas de criação e atualização
n Pode-se colocar informações elaboradas
![Page 6: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/6.jpg)
6
Registro Cabeçalho (header record)
n Desvantagem dessas abordagem?
![Page 7: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/7.jpg)
7
Registro Cabeçalho (header record)
n Desvantagem dessas abordagem?
n O software deve ser mais flexível e, portanto, sofisticado
![Page 8: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/8.jpg)
8
Metadados n São dados que descrevem os dados primários em um arquivo
n Exemplo: Formato FITS (Flexible Image Transport System) n Armazena imagens de astronomia n Um cabeçalho FITS é uma coleção de blocos de 2880 bytes contendo
registros de 80 bytes ASCII, no qual cada registro contém um metadado
n O FITS utiliza o formato ASCII para o cabeçalho e o formato binário para os dados primários
n SIMPLE = T / Conforms to basic format BITPIX = 16 / Bits per pixel NAXIS = 2 / Number of axes ...
n DATE = '22/09/1989 ' / Date of file written TIME = '05:26:53' / Time of file written END
![Page 9: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/9.jpg)
9
Metadados n Vantagens de incluir metadados junto com os
dados
n Torna viável o acesso ao arquivo por terceiros (conteúdo auto-explicativo)
n Portabilidade n Define-se um padrão para todos os que geram/acessam
certos tipos de arquivo n PDF, PS, HTML, TIFF n Permite conversão entre padrões
![Page 10: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/10.jpg)
10
Metadados n Bom uso para etiquetas e palavras-chave
n keyword=value
n Se bem descrito, arquivo pode conter muitos dados de formatos e origens diferentes
n Acesso orientado a objetos
n “Extensibilidade”
![Page 11: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/11.jpg)
11
Portabilidade e Padronização
n Formas de codificação de arquivos devem ser “bem vistas” por outras pessoas, softwares e computadores
n Fatores que afetam portabilidade n Diferenças entre sistemas operacionais n Diferenças entre arquiteturas de computadores n Etc.
n Muitas vezes são necessários conversores de formatos
![Page 12: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/12.jpg)
12
Organização de arquivos para desempenho
n Organização de arquivos visando desempenho
n Complexidade de espaço n Compressão e compactação de dados n Reuso de espaço
n Complexidade de tempo n Ordenação e busca de dados
![Page 13: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/13.jpg)
13
Compressão de dados n A compressão de dados envolve a codificação da
informação de modo que o arquivo ocupe menos espaço n Transmissão mais rápida n Processamento seqüencial mais rápido n Menos espaço para armazenamento
n Algumas técnicas são gerais, e outras específicas para certos tipos de dados, como voz, imagem ou texto n Técnicas reversíveis vs. irreversíveis n A variedade de técnicas é enorme
![Page 14: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/14.jpg)
14
Técnicas n Notação diferenciada
n Redução de redundância
n Omissão de seqüências repetidas n Redução de redundância
n Códigos de tamanho variável n Código de Huffman
![Page 15: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/15.jpg)
15
Notação diferenciada n Exemplo
n Códigos de estado, armazenados na forma de texto: 2 bytes
n Por exemplo, como existem 50 estados nos EUA, pode-se armazenar os estados em 6 bits
n É possível guardar a informação em 1 byte e economizar 50% do espaço
n Desvantagens? n Legibilidade, codificação/decodificação
![Page 16: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/16.jpg)
16
Omissão de seqüências repetidas
![Page 17: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/17.jpg)
17
Omissão de seqüências repetidas
n Para a seqüência n 22 23 24 24 24 24 24 24 24 25 26 26 26
26 26 26 25 24
n Usando 0xff como código indicador de repetição (código de run-length) n 22 23 ff 24 07 25 ff 26 06 25 24
![Page 18: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/18.jpg)
18
Omissão de seqüências repetidas
n Bom para dados esparsos ou com muita repetição n Imagens do céu, por exemplo
n Garante redução de espaço sempre?
![Page 19: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/19.jpg)
19
Códigos de tamanho variável n Código de Huffman
n Exemplo de código de tamanho variável n Idéia: valores mais freqüentes são associados a
códigos menores
n No código ASCII: 1 byte por caracter (fixo) n ‘A’ = 65 (8 bits) n Cadeia ‘ABC’ ocupa 3 bytes
![Page 20: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/20.jpg)
20
Código de Huffman n Se letras que ocorrem com freqüência têm
códigos menores, as cadeias tendem a ficar mais curtas
n Requer informação sobre a freqüência de ocorrência de cada símbolo a ser codificado
n Muito usado para codificar texto
![Page 21: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/21.jpg)
21
Código de Huffman n Exemplo
Alfabeto: {A, B, C, D}
Freqüência: A > B > C = D Possível codificação:
A=0, B=110, C=10, D=111 Cadeia: ABACCDA Código: 0110010101110 Codificação deve ser não ambígua Ex. A=0, B=01, C=1 ACBA à 01010 É possível decodificar?
![Page 22: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/22.jpg)
22
Código de Huffman
n Cada “prefixo” de um código identifica as possibilidades de codificação n Se primeiro bit é 0, então A; se 1, então B, C ou D, dependendo do
próximo bit n Se segundo bit é 0, então C; se 1, então B ou D, dependendo do
próximo bit n Se terceiro bit é 0, então B; se 1, então D n Quando o símbolo é determinado, começa-se novamente a partir do
próximo bit
Símbolo Código
A 0
B 110
C 10
D 111
![Page 23: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/23.jpg)
23
Código de Huffman n Como representar todas as mensagens
possíveis de serem expressas em língua portuguesa
n Como determinar os códigos de cada letra/sílaba/palavra?
n Qual a unidade do “alfabeto”?
![Page 24: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/24.jpg)
24
Código de Huffman n Código de Huffman
n Calcula-se a freqüência de cada símbolo do alfabeto 1. Encontre os dois símbolos que tem menor freqüência
(B/1 e D/1) 2. O último símbolo de seus códigos deve diferenciá-los
(B=0 e D=1) 3. Combinam-se esses símbolos e somam-se suas
freqüências (BD/2, indicando ocorrência de B ou D) 4. Repete-se o processo até restar um símbolo
n C/2 e BD/2 è 0 para C e 1 para BD è CBD/4 n A/3 e CBD/4 è 0 para A e 1 para CBD è ACBD/7
ABACCDA Freq.: A/3, B/1, C/2 e D1
![Page 25: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/25.jpg)
25
Código de Huffman
n Combinação de dois símbolos em 1
n Árvore de Huffman n Construída passo a passo após cada combinação de
símbolos n Árvore binária
n Cada nó da árvore representa um símbolo (e sua freqüência) n Cada nó folha representa um símbolo do alfabeto original
n Ao se percorrer a árvore de uma folha X qualquer para a raiz, tem-se o código do símbolo X
n Escalada por ramo esquerdo: 0 no início do código n Escalada por ramo direito: 1 no início do código
![Page 26: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/26.jpg)
26
Código de Huffman n Exemplo
Símbolo Código
A 0
B 110
C 10
D 111
ABCD, 7
A, 3 CBD, 4
C, 2 BD, 2
B, 1 D, 1
Símbolos mais freqüentes mais à esquerda e mais próximos da raiz
![Page 27: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/27.jpg)
27
Código de Huffman n Exercício: construir a árvore para os dados abaixo
Símbolo Freqüência
A 15
B 6
C 7
D 12
E 25
F 4
G 6
H 1
I 15
![Page 28: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/28.jpg)
28
Técnicas de compressão irreversíveis
n Até agora, todas as técnicas eram reversíveis
n Algumas são irreversíveis n Por exemplo, salvar uma imagem de 400
por 400 pixels como 100 por 100 pixels
n Onde se usa isso?
![Page 29: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/29.jpg)
29
Manipulação de dados em arquivos
n Operações básicas que podemos fazer com os dados nos arquivos?
![Page 30: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/30.jpg)
30
Manipulação de dados em arquivos
n Operações básicas que podemos fazer com os dados nos arquivos? n Adição de registros: relativamente simples n Eliminação de registros n Atualização de registros: eliminação e
adição de um registro
n O que pode acontecer com o arquivo?
![Page 31: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/31.jpg)
31
Compactação
n Compactação n Busca por regiões do arquivo que não
contêm dados n Posterior recuperação desses espaços
perdidos
n Os espaços vazios são provocados, por exemplo, pela eliminação de registros
![Page 32: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/32.jpg)
32
Eliminação de registros n Devem existir mecanismos que
1. Permitam reconhecer áreas que foram apagadas 2. Permitam recuperar e utilizar os espaços vazios
n Possibilidades? n Discussão em grupos de 2 alunos
![Page 33: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/33.jpg)
33
Eliminação de registros n Geralmente, áreas apagadas são marcadas com um
marcador especial
n Quando o procedimento de compactação é ativado, o espaço de todos os registros marcados é recuperado de uma só vez
n Maneira mais simples de compactar: executar um programa de cópia de arquivos que "pule" os registros apagados (se existe espaço suficiente para outro arquivo)
![Page 34: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/34.jpg)
34
Processo de compactação: exemplo
![Page 35: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/35.jpg)
35
Recuperação dinâmica
n Muitas vezes, o procedimento de compactação é esporádico n Um registro apagado não fica disponível para uso
imediatamente
n Em aplicações interativas que acessam arquivos altamente voláteis, pode ser necessário um processo dinâmico de recuperação de espaços vazios n Marcar registros apagados n Identificar e localizar os espaços antes ocupados por esses
registros, sem buscas exaustivas
![Page 36: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/36.jpg)
36
Como localizar os espaços vazios?
n Registros de tamanho fixo
n Lista encadeada de registros eliminados no próprio arquivo
n Lista constitui-se de espaços vagos, endereçados por meio de seus RRNs
n Cabeça da lista está no header do arquivo n Um registro eliminado contém o RRN do próximo registro
eliminado n Inserção e remoção ocorrem sempre no início da lista
(pilha)
![Page 37: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/37.jpg)
37
Registros de tamanho fixo
Pilha antes e depois da inserção do nó correspondente ao registro de RRN 3
![Page 38: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/38.jpg)
38
Exemplo
![Page 39: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/39.jpg)
39
Registros de tamanho fixo
n Por que se usa uma pilha e não uma fila ou outra estrutura de dados?
n A pilha poderia ser mantida na memória principal? n Vantagens? n Desvantagens?
![Page 40: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/40.jpg)
40
Registros de tamanho variável n Supondo arquivos com contagem de bytes
antes de cada registro
n Marcação dos registros eliminados via um marcador especial
n Lista de registros eliminados... mas não dá para usar RRNs n Tem que se usar a posição de início no arquivo
![Page 41: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/41.jpg)
41
Eliminação de registros
![Page 42: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/42.jpg)
42
Registros de tamanho variável
n Para recuperar registros, não é possível usar uma pilha
n É necessário uma busca seqüencial na lista para encontrar uma posição com espaço suficiente
![Page 43: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/43.jpg)
43
Adição de um registro de 55 bytes: exemplo
![Page 44: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/44.jpg)
44
Registros de tamanho variável
n Estratégias de alocação de espaço
n First-fit: pega-se o primeiro que servir, como feito anteriormente
n Desvantagem?
![Page 45: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/45.jpg)
45
Registros de tamanho variável
n Estratégias de alocação de espaço
n First-fit: pega-se o primeiro que servir, como feito anteriormente
n Desvantagem? n Fragmentação interna
![Page 46: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/46.jpg)
46
Fragmentação interna
![Page 47: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/47.jpg)
47
Registros de tamanho variável
n Estratégias de alocação de espaço
n First-fit: pega-se o primeiro que servir, como feito anteriormente
n Soluções?
![Page 48: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/48.jpg)
48
Registros de tamanho variável
n Estratégias de alocação de espaço
n First-fit: pega-se o primeiro que servir, como feito anteriormente
n Soluções? 1. Colocar o espaço que sobrou na lista de espaços
disponíveis 2. Escolher o espaço mais justo possível
![Page 49: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/49.jpg)
49
Combatendo a fragmentação
n Solução: colocar o espaço que sobrou na lista de espaços disponíveis
n Parece uma boa estratégia, independentemente da forma que se escolhe o espaço
![Page 50: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/50.jpg)
50
Registros de tamanho variável
n Solução: escolher o espaço mais justo possível
n Best-fit: pega-se o mais justo
n Desvantagem?
![Page 51: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/51.jpg)
51
Registros de tamanho variável
n Solução: escolher o espaço mais justo possível
n Best-fit: pega-se o mais justo
n Desvantagem? n O espaço que sobra é tão pequeno que não dá para
reutilizar n Fragmentação externa
![Page 52: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/52.jpg)
52
Registros de tamanho variável
n Solução: escolher o espaço mais justo possível
n Best-fit: pega-se o mais justo
n É conveniente organizar a lista de forma ascendente?
![Page 53: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/53.jpg)
53
Registros de tamanho variável n Solução: escolher o maior espaço
possível
n Worst-fit: pega-se o maior
n Diminui a fragmentação externa
n Lista organizada de forma descendente? n O processamento pode ser mais simples
![Page 54: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/54.jpg)
54
Registros de tamanho variável
n Outra forma de combater fragmentação externa
n Junção de espaços vazios adjacentes
n Qual a dificuldade desta abordagem?
![Page 55: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/55.jpg)
55
Observações n Estratégias de alocação só fazem sentido com
registros de tamanho variável
n Se espaço está sendo desperdiçado como resultado de fragmentação interna, então a escolha é entre first-fit e best-fit n A estratégia worst-fit piora esse problema
n Se o espaço está sendo desperdiçado devido à fragmentação externa, deve-se considerar a worst-fit
![Page 56: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/56.jpg)
56
Ordenação e busca em arquivos
n É relativamente fácil buscar elementos em conjuntos ordenados
n A ordenação pode ajudar a diminuir o número de acessos a disco
![Page 57: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/57.jpg)
57
Ordenação e busca em arquivos
n Já vimos busca seqüencial n O(n) à Muito ruim para acesso a disco!
n E a busca binária? n Modo de funcionamento? n Complexidade de tempo?
![Page 58: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/58.jpg)
58
Busca binária
n Dificuldade: ordenar os dados em arquivo para se fazer a busca binária
n Alternativa: ordenar os dados em RAM n Ainda é necessário: ler todo o arquivo e ter
memória interna disponível
![Page 59: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/59.jpg)
59
Busca binária n Limitações
n Registros de tamanho fixo
n Manter um arquivo ordenado é muito caro
n Requer mais do que 1 ou 2 acessos n Por exemplo, em um arquivo com 1.000 registros, são
necessários aproximadamente 10 acessos em média à ainda é ruim!
![Page 60: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/60.jpg)
60
Busca binária n Exercício
n Implementar em C uma sub-rotina de busca binária em um arquivo ordenado por número USP
struct aluno { char nome[50]; int nro_USP;
}
![Page 61: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/61.jpg)
61
Keysorting
n Ordenação por chaves
n Idéia básica n Não é necessário que se armazenem todos
os dados na memória principal para se conseguir a ordenação
n Basta que se armazenem as chaves
![Page 62: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/62.jpg)
62
Keysorting n Método
1. Cria-se na memória interna um vetor, em que cada posição tem uma chave do arquivo e um ponteiro para o respectivo registro no arquivo (RRN ou byte inicial)
2. Ordena-se o vetor na memória interna
3. Cria-se um novo arquivo com os registros na ordem em que aparecem no vetor ordenado na memória principal
![Page 63: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/63.jpg)
63
Keysorting n Limitações
n Inicialmente, é necessário ler as chaves de todos os registros no arquivo
n Depois, para se criar o novo arquivo, devem-se fazer vários seeks no arquivo para cada posição indicada no vetor ordenado
n Mais uma leitura completa do arquivo n Não é uma leitura seqüencial n Alterna-se leitura no arquivo antigo e escrita no
arquivo novo
![Page 64: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/64.jpg)
64
Keysorting
n Questões
n Por que criar um novo arquivo?
n Não vale a pena usar o vetor ordenado como um índice?
![Page 65: Organização de Arquivoswiki.icmc.usp.br/images/4/40/SCC0203-1o-2012-13... · 2018. 9. 25. · Diferenças entre sistemas operacionais ! Diferenças entre arquiteturas de computadores](https://reader033.fdocumentos.tips/reader033/viewer/2022060816/6094f40dd470de117d284011/html5/thumbnails/65.jpg)
65
Questão delicada n Independentemente do método de
ordenação
n O que fazer com os espaços vazios originados de registros eliminados?
n E a estrutura de dados que os mantêm para que sejam reutilizados?
n Pinned records