gerenciamento do disco gerenciamento do buffer
Post on 03-Jan-2016
82 Views
Preview:
DESCRIPTION
TRANSCRIPT
Gerenciamento do DiscoGerenciamento do Buffer
AULA 2
Profa. Sandra de Amo
Gerenciamento de Banco de Dados – BCC
04/20/23
ARQUITETURA GERALARQUITETURA GERALDE UM SGBD DE UM SGBD RELACIONALRELACIONAL
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
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
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
04/20/2304/20/23 BCC- 2013-1 6
Conteúdo da Aula
Gerenciador de Disco (Disk manager)
Gerenciador de Buffer (Buffer Manager)
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.
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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.
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
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
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.
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
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
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
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
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 ...
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
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
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
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
top related