A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC.

Apresentações semelhantes


Apresentação em tema: "Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC."— Transcrição da apresentação:

1 Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC

2 2 Perguntas a serem respondidas: Como os dados são armazenados no disco Como são trazidos para memória principal Como os dados são encontrados nos arquivos Como a informação é organizada em uma página de dados

3 2/18/2014 BCC Conteúdo da Aula Gerenciador de Disco (Disk manager) Gerenciador de Buffer (Buffer Manager)

4 4 Hierarquia de Memória Armazenamento Primário : cache e memória principal acesso rápido - opera dados Armazenamento Secundário Discos magnéticos dados acessados com certa frequência Armazenamento Terciário fitas dados que não acessados com frequência

5 2/18/ Vantagens e Desvantagens Primários versus Secundários e Terciários ST : dispositivos mais lentos ST : mais baratos ST : grande capacidade de armazenamento ST : não volátil Fitas versus Discos Fita : armazenamento sequencial Fita : acesso mais lento do que o disco

6 2/18/ Estrutura do Disco Movimento do braço Setor Trilha Bloco Prato Cilindro Rotação Braço do disco Cabeça

7 Discussão sobre as unidades Setor: menor unidade. Configuração inerente ao disco, de fábrica Bloco = conjunto de setores. Tamanho pode ser configurado quando o disco for inicializado. Uma trilha é composta de um número INTEIRO de setores Um bloco é composto de um número INTEIRO de setores. Um bloco pode ficar parte em uma trilha e parte em outra, mas seu tamanho não pode ultrapassar o tamanho de uma trilha. Exemplo: Setor = 512 bytes Trilha = 50 setores = 50*512 bytes = bytes Podemos configurar um bloco como sendo igual a 4 setores. Logo: tamanho de um bloco = 2048 bytes Neste caso uma trilha contém 12 blocos e meio = 12* bytes = bytes

8 1 bloco = 6 setores 1 setor EXEMPLOS 1 bloco = 5,5 setores 1 setor1/2 setor NÃO !SIM 1 bloco 1 trilha = 5,5 blocos 1/2 bloco 1 bloco 1 trilha = 33 setores 3 setores 1 bloco 1 trilha = 5 + 1/5 blocos 1/5 bloco 1 bloco 1 trilha = /5 blocos 6/5 setores

9 2/18/ Disco Memória Principal Dados precisam estar na memória principal para serem operados. Unidade de transferência de dados entre disco e memória principal = bloco Se um único item num bloco é necessário, todo o bloco é transferido Ler ou escrever um bloco = operação de I/O Tempo de Acesso = busca + rotação + transferência

10 2/18/2014 BCC Tempos de Acesso Procura (ou busca) Tempo para mover as cabeças dos discos para a trilha na qual um bloco desejado está localizado. Rotação Tempo para que o bloco desejado se posicione sob a cabeça do disco = meia rotação em média; menor do que tempo de busca. Transferência Tempo para ler ou escrever no bloco = tempo de rotação do disco sobre o bloco.

11 2/18/2014 BCC Exemplo Disco Seagate Hawk 2XL 2.15GB Tempo de acesso médio = 15msec Tempo médio de procura = 9 msec Tempo máximo de procura = 22msec Tempo de latência rotacional = 5.55 msec Passagem de uma trilha p/ outra = 1 msec 512 bytes por setor, 4569 cilindros, 4 pratos duplos Taxa de transferência = 5 MB/sec Acesso a uma locação de memória < 5microsec

12 2/18/2014 BCC Ordem de proximidade em um disco No mesmo bloco Na mesma trilha No mesmo cilindro Em cilindros adjacentes

13 2/18/2014 BCC Tamanhos Trilha: tamanho é uma caracteristica do disco Não pode ser alterado Bloco: Tamanho pode ser configurado quando o disco é inicializado Deve ser um múltiplo do tamanho de 1 setor

14 2/18/2014 BCC Gerenciamento de espaço no disco Unidade de dados = 1 página 1 página = 1 bloco no disco Páginas frequentemente acessadas são armazenadas sequencialmente. Operação de I/O = leitura e escrita de uma página no disco

15 2/18/2014 BCC Gerenciador de Espaço em Disco Quais blocos estão em uso ? Que páginas estão em que blocos ? Inserções e supressões de páginas = criação de buracos. Páginas são alocadas quando da criação de arquivos. Gerenciamento de espaço livre 1a alternativa Lista de blocos livres. Ponteiro para primeiro bloco livre é estocado num local do disco. 2a alternativa Array de 0 e 1 : se o bloco i está livre ou não

16 2/18/2014 BCC Interação Disco e Memória Principal: Esquema Geral DB Processador de Consultas Gerenciador de Buffer Solicita dados para consulta (leitura) ou alterações (escritura) Busca aloca Informa modif Propaga modif

17 2/18/2014 BCC Buffer Pool = coleção de páginas Memória Principal Disco Frame livre Página DB

18 2/18/2014 BCC Gerenciador de Buffer Testa se dado procurado está no buffer Traz página do disco para a memória Procura frame livre para alocar a página Aciona algoritmo para liberar frame Aloca página É informado se modificação foi feita na página. Caso o frame tiver que ser reutilizado, propaga modificação no disco.

19 2/18/2014 BCC Algoritmo de Gerenciamento 3 0 Frame no pool Dirty bit : página suja ou não Pin-count = número de vezes que a página contida no frame foi solicitada para consultas ou modificações mas não foi liberada ainda. Inicialmente : Dirtybit := 0 Pin-count := 0

20 2/18/2014 BCC Algoritmo de Gerenciamento de Buffer Quando o processador de consultas aciona o Buffer Manager para alocar uma página na memória principal: Testa se buffer pool contém a página desejada e incrementa o pin-count do frame onde a página está contida Se não : procura frame com pin-count = 0 Frame com pin-count = 0 : frame está liberado por transações que o utilizavam – nenhuma transação está utilizando a página contida no frame. Caso não encontre frame com pin-count = 0 Espera até que as transações sendo executadas liberem páginas em uso. Caso encontre diversos frames com pin-count = 0: utiliza politica de substituição para escolher qual frame será utilizado.

21 Algoritmo de Gerenciamento de Buffer Uma vez escolhido o frame: Se dirty-bit = 0, escreve página nova no frame. Se dirty-bit = 1: escreve página do frame no disco Escreve nova página no frame Incrementa pin-count do frame (já que alguma transação solicitou a página) Retorna o endereço (em memória principal) do frame contendo a página solicitada para o processador de consulta. A cada vez que uma transação libera um frame o pin-count do frame é decrementado. 2/18/2014 BCC

22 2/18/2014 BCC Políticas de Substituição de Páginas Que frames com pin-count = 0 escolher para substituição ? LRU : Least recently used Lista de ponteiros para frames com pin-count = 0 Ponteiros dos frames são adicionados no fim da lista MRU : Most recently used Lista de ponteiros para frames com pin-count = 0 Ponteiros dos frames são adicionados no início da lista Random

23 Lista de frames livres Frame_livres=[F1,F2,...,Fn] Politica LRU Frames livres são adicionados no final da lista O primeiro frame livre F1 é o que foi liberado menos recentemente. Politica MRU Frames livres são adicionados no inicio da lista O primeiro frame livre F1 é o que foi liberado mais recentemente.

24 Exemplo : LRU Buffer Pool: 10 frames P1P2P3P4P5 P6P7P8P9P10 P11 Arquivo Sequencial em DISCO Lista de Frames Livres = [ F1,...., F10] F2 F3 F4.... F10 F1 F3 F4.... F10 F1 F2 F1 F2.... F10 E assim por diante até a pag

25 Exemplo : MRU Buffer Pool: 10 frames P1P2P3P4P5 P6P7P8P9P10 P11 Arquivo Sequencial em DISCO Lista de Frames Livres = [ F1,...., F10] F1 F2 F3 F4.... F10 E assim por diante até a pag F1 F2 F3 F4.... F10

26 2/18/ Gerenciamento de Buffer versus SO SGBD necessita maior controle quando uma página é escrita no disco – problemas de gerenciamento de transações. SGBD pode estabelecer o padrão das páginas solicitadas por consultas SQL. SGBD pode pré-carregar as páginas antes de serem solicitadas Ler páginas em sequência de blocos é mais rápido do que ler as mesmas em diferentes momentos. Leitura de sequências de páginas pode ser feita concorrentemente com cálculos na CPU SGBD requer controle de recuperação de falhas – protocolo WAL.


Carregar ppt "Gerenciamento do Disco Gerenciamento do Buffer AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC."

Apresentações semelhantes


Anúncios Google