Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

HASHING Katia Guimarães julho/2002
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Armazenamento e Organização de Arquivos
Arquitetura e organização de computadores
Sistemas operacionais
Sistemas operacionais
Sistemas operacionais
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
SISTEMAS DE INFORMAÇÃO
Ambientes Operacionais
Indice estruturado por Hash
RESUMO DA AULA 5 Profa. Sandra de Amo GBC053 – BCC
Organização de Arquivos Introdução
Gerenciamento do Disco Gerenciamento do Buffer
Gerenciamento de Arquivos, Páginas e Registros
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Revisão Prova 2 Métodos de Acesso: BTree e Hash AULA 20 Profa. Sandra de Amo GBC053 – BCC
Dispositivos de Entrada/Saída
Hashing Extensível o espaço de endereços disponíveis não é fixo
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Sistemas Operacionais II - Sistemas de Arquivos -.
Arquivos Extensíveis.
Dispositivos de Entrada/Saída Permitem a comunicação homem-máquina Dispositivos de entrada: Teclado, mouse Dispositivos de saída: Monitor de vídeo, impressora.
Pesquisa em Memória Primária
Pesquisa em Memória Primária
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Hashing (Espalhamento)
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Robson Godoi / Sandra Siebra
Listas Encadeadas.
Indexação de Arquivos Página de rosto.
Marco Antonio Montebello Júnior
Introdução à Programação
Sistemas Operacionais
Arquitectura de Computadores II
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Fundamentos da Arquitetura de Computadores
Pesquisa em memória primária: hashing
INF70 – Gerenciamento de Banco de Dados 2 Índices baseados em Hash Ilmério Reis da Silva UFU/FACOM/BCC.
Indices: Estruturas Auxiliares para Otimizar Acesso aos Dados
Algorítmos e estrutura de dados III
Sistemas Operacionais
Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC.
Universidade Católica de Pelotas Mestrado em Ciência da Computação
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Agenda Memória Secundária Disco Magnético.
Agenda - Aula 03 Introdução (Computador Digital) Memória
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 11: Implementação de Sistemas de Arquivos.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
INTRODUÇÃO À COMPUTAÇÃO
Sistemas Operacionais Entrada e Saída – Aula II Prof. Galvez.
ARQUITETURA DE COMPUTADORES II
Sistemas Operacionais: Sistema de Arquivos
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Subsistema de Entrada e Saída do Kernel
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Infra-Estrutura de Software
INTRODUÇÃO À COMPUTAÇÃO
Memória.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Estrutura de Dados Aula 3 - Listas
Sistemas Operacionais Multimídia. Sistemas de Arquivos Multimídia Duas abordagens para tratar mídias contínuas em sistemas de arquivos: –1a.: organização.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas de Arquivos Capítulo Arquivos 6.2 Diretórios 6.3 Implementação do sistema.
Transcrição da apresentação:

Cap. 5: Armazenamento de registros e Organização de Arquivos 5.1. Tipos de armazenamento 5.2. Dispositivos de armazenamento secundário 5.3. Acesso paralelizado: tecnologia RAID 5.4. Buferização (cache) de blocos 5.5. Alocação de registros de arquivo em disco 5.6. Operações em arquivos Organizações de arquivos 5.7. Arquivos não ordenados 5.8. Arquivos ordenados 5.9. Técnicas de “hashing”

5.1. Tipos de Armazenamento Memória primária Memória principal (DRAM) e cache (RAM) acesso muito rápido capacidade limitada Volátil Memória secundária Discos magnéticos ou óticos, fitas acesso mais lento maior capacidade Não volátil Obs: dados em memória secundária não podem ser processados pela UCP (devem ser antes transferidos para a memória primária)

Armazenamento de Bancos de Dados Por que em memória secundária (discos)? Volume de dados armazenados é grande demais para ficar em memória Bancos de Dados devem ser persistentes (a memória primária é volátil) Custo de armazenamento/unidade de dados = uma ordem de grandeza (dezenas de vezes) < para discos do que para memória primária.

5.2.Dispositivos de Armazenamento Secundário Parâmetros característicos de discos magnéticos: capacidade = no de superfícies x no de trilhas x setores/trilha x capacidade do setor (alguns megabytes a alguns gigabytes). tempo de localização = tempo de busca + retardo rotacional tempo de busca (seek time), anunciado pelo fabricante (10 a 60 mseg). retardo rotacional ou latência = (1/2) x tempo de rotação (8,33 ms para 3.600 rpm) tempo de acesso ao dado = tempo de localização + tempo de transferência de bloco tempo de transferência de bloco = B / tr B = tamanho do bloco tr = taxa de transferência = capacidade da trilha / tempo de rotação

Hardware de Disco Magnético trilha setor (arco de uma trilha} spindle atuador braço cilindro movimento do atuador cabeças de leitura/gravação

Superfície, trilha, setor

Discos Magnéticos Formatação lógica: blocos de 512 a 4096 bytes. Tempo de transferência bem menor que o tempo de busca e o retardo rotacional. Tempo total de acesso aos dados da ordem de milisegundos; tempo de processamento na memória principal da ordem de microsegundos. Objetivo das estruturas de arquivos: minimizar o número de acessos a disco

Dispositivos de Armazenamento Novas tecnologias: Discos óticos Tipo WORM (Write Once Read Many) Exemplo : CD-ROM Trilha única em alto/baixo relevo (“pits” e “lands”) 270.000 setores de 2 KB (527 MB úteis) Taxa de transferência 75 setores/seg = 150 KB/seg Discos magneto-óticos Permitem escrever várias vezes Possuem densidade muito maior do que discos magnéticos Tendem a substituir os disquetes magnéticos.

5.3. Acesso paralelizado: tecnologia RAID RAID = Redundant Array of Independent Disks Arquivo particionado nos vários discos Particionamento transparente Acesso em paralelo

5.4. Buferização (cache) de blocos Reduzir acessos a disco Possibilita a execução concorrente de tarefas E/S de um bloco concorre com processamento de outro bloco Dupla buferização: Possibilita leitura antecipada de blocos contíguos Escrita retardada de blocos contíguos

5.5. Alocação de registros de arquivo em disco Registros, Campos, Tipos de Dados entidades, seus atributos e relacionamentos coleção de itens de dados, onde cada item é composto de um ou mais bytes (caracteres) e corresponde a um campo do registro. Tipo de registro Campo Tipo de dado type EMPREGADO = record Nome : packed array[1..30] of character; CPF : packed array [1..11] of character; Salário : integer; Profissão : integer; Departamento : packed array[1..20] of character; end;

Arquivos, Registros de Tamanho Fixo e Variável Um arquivo é uma seqüência de registros. Usualmente, arquivos com registros de tamanho fixo (facilitam o armazenamento e o acesso). Arquivos com registros de tamanho variável campos com tamanho variável; campos com múltiplos valores; campos opcionais; registros de diferentes tipos. Registros de tamanho variável podem ser representados como registros de tamanho fixo, porém com desperdício de espaço.

Algumas Formas de Armazenamento de Registros registro de tamanho fixo Salário Profissão Nome CPF Departamento 1 31 42 46 50 69 registros com campos de tamanho variável Maria Silva 12345678900 xxxx xxxx Pessoal caracter separador 1 13 24 28 32 39 Nome=Maria Silva CPF=12345678900 Departamento=Pessoal 1 18 34 54 = separador de nome de campo / valor separador de campo separador de registro

Blocagem de Registros Fator de Blocagem bfr = B / R registros por bloco, onde B é o tamanho do bloco e R o tamanho do registro em bytes. Exemplo : bfr = 512 / 69 = 7 Espaço não usado em cada bloco (B - bfr x R) bytes. Exemplo : 512 - 7 x 69 = 29 Razões para blocagem de registros: reduz o número de operações de transferência de dados entre memórias secundária e primária; reduz o número de intervalos entre blocos (“interblock gaps”), aumentando, em conseqüência o uso do espaço do disco.

Organização Espalhada e Não Espalhada bloco i registro 1 registro 2 registro 3 bloco i+1 registro 4 registro 5 registro 6 organização não espalhada (“unspanned”) (usual para registros de tamanho fixo) bloco i registro 1 registro 2 registro 3 registro 4 p bloco i+1 reg. 4 registro 5 registro 6 registro 7 p organização espalhada (“spanned”) OBS: Quando o tamanho do registro é maior que o tamanho do bloco ( R > B), a organização espalhada é obrigatória.

Alocação de Blocos de Arquivo em Disco Alocação contígua: blocos de arquivos em blocos consecutivos de disco; leitura do arquivo inteiro muito rápida, mas expansão difícil. Alocação encadeada: cada bloco de arquivo contém um ponteiro para o próximo bloco de arquivo; fácil expansão, mas leitura do arquivo inteiro muito lenta. Combinações das duas técnicas: Alocação de “clusters” de blocos de discos consecutivos, também chamados segmentos ou “extents”, que são então encadeados. Alocação indexada, onde um ou mais blocos de índice contêm ponteiros para os blocos de arquivos.

Descritores de Arquivo Conteúdo do descritor de arquivo (“header”): endereços no disco dos blocos de arquivo; descrições do formato de registro tamanhos de campos; ordem dos campos dentro de registros de tamanho fixo não espalhados; códigos de tipos de campos, caracteres separadores, códigos de tipos de registros para registros de tamanho variável; outras informações complementares.

5.6. Operações em arquivos Operações registro a registro Find (ou Locate) Read (ou Get) FindNext Delete Modify Insert

Operações em Arquivos Operações sobre conjuntos: FindAll FindOrdered Reorganize Operações de controle: Open Close

Organizações de Arquivos Organização de arquivo Estrutura dos dados de um arquivo em registros, blocos e estruturas de acesso. Método de acesso grupo de programas que permite a aplicação das operações no arquivo. Objetivo de uma boa organização de arquivo executar tão eficientemente quanto possível as operações mais freqüentes.

5.6. Arquivos de Registros não Ordenados Organização mais simples e básica, inserções de novos registros no fim do arquivo. Usada quando não se sabe exatamente como os dados serão usados no futuro. Vantagem: Inserção muito eficiente Desvantagens: Busca muito ineficiente (pesquisa seqüencial). Deleções causam desperdício de espaço, obrigando a freqüentes reorganizações. Arquivo relativo: organização não ordenada de registros de comprimento fixo usando blocos não espalhados e alocação contígua, onde o acesso a um registro é feito pela sua posição no arquivo.

5.7.Arquivos de Registros Ordenados Registros fisicamente ordenados em disco campo de ordenação, chave de ordenação do arquivo. Vantagens: Leitura dos registros na ordem dos valores do campo de ordenação extremamente eficiente. Achar o registro seguinte na ordem do campo de ordenação usualmente não requer um acesso adicional a bloco. Busca baseada no campo de ordenação mais eficiente (pesquisa binária). Desvantagens: Inserção e deleção de registros custosas Modificação do valor do campo de ordenação requer deleção e inserção.

Registros do Arquivo de Empregados: campo de ordenação Name

Algumas Opções de Implementação de Inserção e Deleção Deleção : usar marcadores de deleção (“deletion bits”) e reorganizar o arquivo periodicamente. Inserção : Arquivo principal ou mestre ordenado. Arquivo de overflow ou de transações não ordenado. Novos registros são inseridos no final do arquivo de transações. Pesquisa binária no arquivo mestre, pesquisa seqüencial no arquivo de transações Durante reorganização periódica, os dois arquivos são combinados. Vantagens? Desvantagens?

(ex: os três últimos dígitos do CPF 5.9.Técnicas de ‘Hashing” Hashing : Randomização, Aleatorização, Dispersão h(C) função de hashing espaço dos endereços espaço dos valores (ex: os três últimos dígitos do CPF 1.000 posições) (ex: CPF 1.000.000.000 possíveis valores)

Hashing Interno Estrutura de dados interna a um programa usada para acessar pequenos arquivos temporários com base no valor de um único campo. Implementação usual : array de registros CPF Nome Profissão Salário 123456000 456123001 234156002 567890998 089765999 000 001 002 998 999 ... Exemplo: h(CPF) = CPF mod 1000

Funções de Hashing Característica desejável: distribuição uniforme, isto é, uma chave qualquer C tem igual chance de “hashear” para qualquer posição. Algumas funções usuais: mod (mais usada em geral) meio do quadrado (usada em tabelas de símbolos) desdobramento (“folding”) análise de dígitos etc. [V. Lum, P. Yuen, M. Dodd. Key to Address Transform Techniques: a Fundamental Performance Study on Large Existing Formatted Files, Communications of the ACM, 14(4), April 1971]

Tratamento de Colisões Endereçamento aberto ou linear: A partir da posição de colisão, procurar uma posição subseqüente vaga. Encadeamento: Manter uma lista encadeada de registros de overflow para cada posição no espaço de endereços. Hashing múltiplo: Aplicar uma segunda função de hashing quando ocorrer uma colisão. Se ocorrer nova colisão, aplicar endereçamento aberto ou nova função de hashing.

Hashing Externo Hashing para arquivos em disco, registros armazenados em blocos de disco. Cada bloco ou grupo de blocos é chamado de “bucket”. Cada “bucket” contém vários “slots”. número do bucket endereço do bloco 1 2 M-2 M-1 Mapeamento de “buckets” em blocos de disco

Buckets de Overflow . . buckets principais buckets de overflow 340 460 buckets de overflow ponteiro 981 182 ponteiro ponteiro ponteiro bucket 1 321 761 91 ponteiro . bucket 2 22 72 522 652 ponteiro ponteiro ponteiro ponteiro . bucket 9 399 89 Os ponteiros são para registros dentro dos buckets de overflow ponteiro

Técnicas de Hashing com Expansão Dinâmica de Arquivos Grande problema dos esquemas de hashing estático: o espaço de endereços é fixo. O tratamento por área de overflow tende a diminuir a eficiência na pesquisa. Algumas técnicas modernas de hashing que permitem a expansão dinâmica dos arquivos. - Hashing Dinâmico - Hashing Extensível - Hashing Linear

Hashing Dinâmico BUCKETS COM DADOS

Hashing Dinâmico BUCKETS COM DADOS nó interno DIRETÓRIO nó folha 1

Hashing Dinâmico BUCKETS COM DADOS nó interno DIRETÓRIO nó folha 1 1

Hashing Dinâmico BUCKETS COM DADOS nó interno DIRETÓRIO nó folha 1 1 1

Hashing Dinâmico BUCKETS COM DADOS nó interno DIRETÓRIO nó folha 1 1 1 1 1 1 1

Hashing Dinâmico BUCKETS COM DADOS nó interno DIRETÓRIO nó folha 1 1 1 1 1 1 1 1

Hashing Extensível BUCKETS COM DADOS d’=0 DIRETÓRIO

Hashing Extensível BUCKETS COM DADOS d’=1 DIRETÓRIO 1 d’=1 d = 1

Hashing Extensível BUCKETS COM DADOS d’=2 DIRETÓRIO 00 01 10 11 d’=2

Hashing Extensível BUCKETS COM DADOS d’=2 DIRETÓRIO 00 01 10 11 d’=2

Hashing Extensível BUCKETS COM DADOS d’=3 DIRETÓRIO d’=3 000 001 010 011 100 101 110 111 d’=2 d’=2 d = 3 d’=2

Hashing Extensível BUCKETS COM DADOS d’=3 DIRETÓRIO d’=3 000 001 010 011 100 101 110 111 d’=2 d’=2 d = 3 d’=3 d’=3

Hashing Extensível Vantagens Desvantagem Desempenho não se degrada Buckets adicionais alocados quando necessário Reorganizações são pequenas (exceto quando diretório é duplicado ou dividido) Desvantagem Necessidade de consulta prévia ao diretório

Hashing Linear M (numero de buckets base) = 2 10 8 M (numero de buckets base) = 2 11 n (limite inf. p/ h0) = 0 1 13 h0 = C mod 2

Hashing Linear 10 8 M = 2 21 overflow 11 1 n = 0 13 h0 = C mod 2

Hashing Linear M = 2 n = 1 h0 = C mod 2 h1 = C mod 4 (buckets 0 e 2) 8 M = 2 11 1 21 13 n = 1 10 2 h0 = C mod 2 h1 = C mod 4 (buckets 0 e 2)

Hashing Linear M = 2 n = 1 h0 = C mod 2 h1 = C mod 4 (buckets 0 e 2) 16 overflow Hashing Linear 8 20 11 M = 2 1 21 13 n = 1 10 2 h0 = C mod 2 h1 = C mod 4 (buckets 0 e 2)

Hashing Linear M = 4 n (limite agora p/ h1)= 0 h1 = C mod 4 8 16 20 13 16 20 13 M = 4 1 21 n (limite agora p/ h1)= 0 10 2 h1 = C mod 4 11 3

Hashing Linear n = 0 h1 = C mod 4 12 overflow 8 16 20 13 1 21 10 2 11 16 20 13 n = 0 1 21 h1 = C mod 4 10 2 11 3

Hashing Linear n = 1 h1 = C mod 4 h2 = C mod 8 (buckets 0 e 4) 8 16 13 16 13 n = 1 1 21 h1 = C mod 4 10 2 h2 = C mod 8 (buckets 0 e 4) 11 3 20 4 12

Hashing Linear M = 4 n = 2 h1 = C mod 4 h2 = C mod 8 (buckets 0 e 4) 24 16 M = 4 n = 2 1 h1 = C mod 4 10 2 h2 = C mod 8 (buckets 0 e 4) h2 = C mod 8 (buckets 1 e 5) 11 3 20 4 12 13 5 21

Hashing Linear Vantagens Desvantagem Expansão e redução dinâmica do número de buckets Não precisa de diretório Redistribuição eventual do overflow Desvantagem Overflow ainda necessário Obs: possibilidade de divisão ou combinação segundo o fator de carga

Outras Organizações Registros Mistos Agrupamento de registros relacionados Contigüidade ou ponteiros físicos X referências lógicas Usual em SGBDs objetos (e SGBDs legados) Necessidade de identificação do tipo de registro Árvores-B Qualquer estrutura de dados adaptável a dispositivos de armazenamento persistente de dados