gerenciamento do disco gerenciamento do buffer

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

Upload: rooney-chaney

Post on 03-Jan-2016

82 views

Category:

Documents


5 download

DESCRIPTION

Gerenciamento do Disco Gerenciamento do Buffer. AULA 2 Profa. Sandra de Amo Gerenciamento de Banco de Dados – BCC. ARQUITETURA GERAL DE UM SGBD RELACIONAL. Hierarquia de Memória. Armazenamento Primário : cache e memória principal acesso rápido - opera dados Armazenamento Secundário - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gerenciamento do Disco Gerenciamento do Buffer

Gerenciamento do DiscoGerenciamento do Buffer

AULA 2

Profa. Sandra de Amo

Gerenciamento de Banco de Dados – BCC

Page 2: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23

ARQUITETURA GERALARQUITETURA GERALDE UM SGBD DE UM SGBD RELACIONALRELACIONAL

Page 3: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23 3

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

Page 4: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 4

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

Page 5: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 5

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)

Buscaaloca

Informa modif

Propaga modif

Page 6: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 BCC- 2013-1 6

Conteúdo da Aula

Gerenciador de Disco (Disk manager)

Gerenciador de Buffer (Buffer Manager)

Page 7: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23 7

Perguntas a serem respondidas:

Gerenciador de Disco

Como os dados são armazenados no disco

Como os dados são encontrados no disco

Gerenciador de Buffer

Como são trazidos para memória principal

Como os dados são organizados em uma unidade (página) de dados.

Como os dados são localizados em uma unidade (página) de dados.

Page 8: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 8

Estrutura do Disco

Movimento do braço

SetorTrilha

Bloco

Prato

Cilindro

Rotação

Braço do disco Cabeça

Page 9: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23

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 = 25600 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*2048 + 1024 bytes = 25600 bytes

Page 10: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23

1 bloco = 6 setores

1 setor

EXEMPLOS

1 bloco = 5,5 setores

1 setor 1/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 = 30 + 6/5 blocos

6/5 setores

Page 11: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 11

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

Page 12: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 BCC- 2014-1 12

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.

Page 13: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 BCC- 2014-1 13

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

Page 14: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 BCC- 2014-1 14

Ordem de proximidade em um disco

No mesmo bloco

Na mesma trilha

No mesmo cilindro

Em cilindros adjacentes

Page 15: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 15

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

Page 16: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 16

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

Page 17: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 17

Gerenciador de Espaço em Disco

Quais blocos estão em uso ? Quais dados estão em quais blocos ? Inserções e supressões de dados = criação de “buracos”. Blocos são alocados 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

Page 18: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 18

Buffer Pool = coleção de “frames” na memória principal

Memória

Principal

Disco

Frame livre

Página

DB

Page 19: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 BCC- 2013-1 19

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.

Page 20: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 20

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

Page 21: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 BCC- 2013-1 21

Algoritmo de Gerenciamento de BufferQuando 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.

Page 22: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23

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.

04/20/23 22

Page 23: Gerenciamento do Disco Gerenciamento do Buffer

04/20/2304/20/23 23

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

Page 24: Gerenciamento do Disco Gerenciamento do Buffer

04/20/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.

Page 25: Gerenciamento do Disco Gerenciamento do Buffer

Um frame começa a ser usado…

quando uma página é carregada na locação de memória correspondente ao frame.

Assim: Suponha dois frames F1 e F2 com as seguintes ações ocorridas:-tempo 1: Página P1 é trazida do disco para o frame F1-tempo 2: Página P2 é trazida do disco para o frame F2-tempo 3: um registro é modificado no frame F1

-Qual o frame mais recente ?-O frame F2, já que tempo1 < tempo2

04/20/23 BCC- 2013-1 25

Page 26: Gerenciamento do Disco Gerenciamento do Buffer

Exercicio 1 – Aula 3:

Considere a seguinte transação:

Begin transaction For i = 1,…, 100.000

Leia registro r com r.ID = i EndFor

Commit transaction

End transaction

04/20/23 BCC- 2013-1 26

Page 27: Gerenciamento do Disco Gerenciamento do Buffer

Para esta transação, a liberação de um frame ocorre em 2 situações: 1. Supondo um protocolo de lock que libera o frame

quando a transação encerrou suas ações nos dados contido no frame: neste caso o frame é automaticamente liberado, assim que todos os registros contidos no frame tiverem sido lidos.

1. Quando a transação necessitar do frame para carregar outros dados que não cabem na memória. Mesmo que não tenha terminado de ler todos os registros contidos no frame, este será liberado.

04/20/23 BCC- 2013-1 27

Page 28: Gerenciamento do Disco Gerenciamento do Buffer

Dados:

Arquivo tem 100.000 registros, organizados sequencialmente por ordem dos identificadores dos registros.

Cada página comporta no máximo 9091 registros

Arquivo tem 11 páginas

Logo: última página (P11) tem 9090 registros

Pergunta: quantas vezes são carregadas cada página, supondo uma politica de substituição LRU ?

28

Exercicio 1(b) – AULA 2

Page 29: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23

Exemplo : LRUBuffer Pool: 10 frames

1 2 3 4 5

6 7 8 9 10

P1 P2 P3 P4 P5

P6 P7 P8 P9 P10

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. 10 ...

Page 30: Gerenciamento do Disco Gerenciamento do Buffer

Resposta do Ex. 1(b) : política LRU Cada página é carregada uma única vez Custo de I/O = 11= número de páginas do

arquivo.

04/20/23 BCC- 2013-1 30

Page 31: Gerenciamento do Disco Gerenciamento do Buffer

Dados:

Arquivo tem 100.000 registros, organizados sequencialmente por ordem dos identificadores dos registros.

Cada página comporta no máximo 9091 registros

Arquivo tem 11 páginas

Logo: última página (P11) tem 9090 registros

Pergunta: quantas vezes são carregadas cada página, supondo uma politica de substituição MRU ?

31

Exercicio 1(b) – AULA 2

Page 32: Gerenciamento do Disco Gerenciamento do Buffer

04/20/23

Exemplo : MRUBuffer Pool: 10 frames

1 2 3 4 5

6 7 8 9 10

P1 P2 P3 P4 P5

P6 P7 P8 P9 P10

P11

Arquivo Sequencial em DISCO

Lista de Frames Livres = [ F1, ...., F10]

F1 F2 F3 F4 .... F10

E assim por diante até a pag. 10 ...F1 F2 F3 F4 .... F10

Page 33: Gerenciamento do Disco Gerenciamento do Buffer

P1, P2,…, P10 são carregadas 9091 vezes cada uma (= número de registros destas páginas).P11 é carregada 9090 vezes (= número de registros de P11).

Custo de I/O = 100.000

04/20/23 BCC- 2013-1 33

Resposta do Ex. 1(b) : política MRU