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

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

Gerenciamento do Disco Gerenciamento do Buffer

Apresentações semelhantes


Apresentação em tema: "Gerenciamento do Disco Gerenciamento do Buffer"— 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 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 Conteúdo da Aula Gerenciador de Disco (Disk manager)
Gerenciador de Buffer (Buffer Manager) 3/25/2017 BCC

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 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 3/25/2017

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

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 EXEMPLOS SIM NÃO ! 1 bloco = 6 setores 1 setor 1 bloco = 5,5 setores
1 trilha = 5,5 blocos 1/2 bloco 1/5 bloco 1 bloco 1 trilha = 5 + 1/5 blocos 1 bloco 1 trilha = 33 setores 3 setores 1 bloco 6/5 setores 1 trilha = /5 blocos

9 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 3/25/2017

10 Tempos de Acesso Procura (ou busca) Rotação Transferência
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. 3/25/2017 BCC

11 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 3/25/2017 BCC

12 Ordem de proximidade em um disco
No mesmo bloco Na mesma trilha No mesmo cilindro Em cilindros adjacentes 3/25/2017 BCC

13 Tamanhos Trilha: Bloco: 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 3/25/2017 BCC

14 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 3/25/2017 BCC

15 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 3/25/2017 BCC

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

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

18 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. 3/25/2017 BCC

19 Algoritmo de Gerenciamento
Frame no pool 3 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 3/25/2017 BCC

20 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. 3/25/2017 BCC

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. 3/25/2017 BCC

22 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 Ponteiros dos frames são adicionados no início da lista Random 3/25/2017 BCC

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 Arquivo Sequencial em DISCO Buffer Pool: 10 frames P1 P2
3 4 5 P6 P7 P8 P9 P10 6 7 8 9 10 Lista de Frames Livres = [ F1, ...., F10] P11 F2 F3 F F10 F1 F3 F F10 F1 F2 E assim por diante até a pag F1 F F10

25 Exemplo : MRU Arquivo Sequencial em DISCO Buffer Pool: 10 frames P1 P2
3 4 5 P6 P7 P8 P9 P10 6 7 8 9 10 Lista de Frames Livres = [ F1, ...., F10] P11 F1 F2 F3 F F10 F1 F2 F3 F F10 E assim por diante até a pag

26 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. 3/25/2017


Carregar ppt "Gerenciamento do Disco Gerenciamento do Buffer"

Apresentações semelhantes


Anúncios Google