pesquisa em memória secundária · quantidade de memória secundária. organização do fluxo...
TRANSCRIPT
![Page 1: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/1.jpg)
Pesquisa em Memória Secundária
Prof. Jonas Potros
![Page 2: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/2.jpg)
Pesquisa em Memória Secundária
Pesquisa em memória secundária: arquivos que contém mais
registros do que a memória interna pode armazenar.
Algoritmos e estruturas de dados para o processamento em memória
secundária deve considerara alguns aspectos:
Custo para acessar um registro é algumas ordens de grandeza maior do que o
custo de processamento na memória primária.
![Page 3: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/3.jpg)
Pesquisa em Memória Secundária
Medida de complexidade: custo de transferir dados entre a memóriaprincipal e secundária (minimizar o número de transferências).
Exemplo: o tempo necessário para a localização e a leitura de um número inteiro em discomagnético pode ser suficiente para obter a média aritmética algumas centenas de númerosinteiros ou mesmo para ordená-los na memoria principal.
Memórias secundárias: apenas um registro pode ser acessado em um dadomomento(acesso sequencial).
Memórias primárias: acesso a qualquer registro de um arquivo a um custouniforme (acesso direto).
As características da arquitetura e do sistema operacional da máquinatornam os métodos de pesquisa dependentes de parâmetros que afetamseus desempenhos.
![Page 4: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/4.jpg)
Memória Virtual
Normalmente implementado como uma função do sistema operacional.
Modelo de armazenamento em dois níveis, devido à necessidade de grandes quantidades de memória e o alto custo da memória principal (principal e virtual).
Compromisso entre velocidade e custo é encontrado com uso deuma pequena quantidade de memória principal e uma grandequantidade de memória secundária.
Organização do fluxo entre a memória principal e secundária éextremamente importante.
Programador pode endereçar grandes quantidades de dados,deixando para o sistema a responsabilidade de transferir o dado damemória secundária.
![Page 5: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/5.jpg)
Memória Virtual
Organização de fluxo : transformar o endereço usado pelo programador na localização física de memória correspondente.
Espaço de Endereçamento: endereços usados pelo programador.
Espaço de Memória: localizações de memória no computador.
O espaço de endereçamento 𝑁 e o espaço de memória 𝑀 podem servistos como um mapeamento de endereços do tipo:
𝑓 ∶ 𝑁 → 𝑀
O mapeamento permite ao programador usar um espaço deendereçamento que pode ser maior que o espaço de memóriaprimária disponível.
![Page 6: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/6.jpg)
Memória Virtual
Existem vários meios de implementar sistemas de memória virtual.Dentre eles, o sistema de paginação, no qual o espaço deendereçamento é divido em páginas de igual tamanho em geralmúltiplo de 512 bytes, e a memoria principal é dividida de formasemelhante em Molduras de Páginas de igual tamanho.
As molduras de páginas contêm algumas páginas ativas enquanto orestante das páginas estão residentes em memória secundária(páginas inativas).
![Page 7: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/7.jpg)
Memória Virtual: Sistema de Paginação
O mecanismo possui duas funções:
1. Mapeamento de endereços: determinar qual página um programa está endereçando, encontrar a moldura, se existir, que contenha a página.
2. Transferência de páginas: transferir páginas da memória secundária para a memória primária e transferi-las de volta para a memória secundária quando não estão mais sendo utilizadas.
![Page 8: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/8.jpg)
Memória Virtual: Sistema de Paginação
Endereçamento da página: uma parte dos bits é interpretada como um número de página e a outra parte como o número do byte dentro da página.
Exemplo: se o espaço de endereçamento possui 24 bits, então amemoria virtual é de 224 𝑏𝑦𝑡𝑒𝑠 ; se o tamanho da página é de512 𝑏𝑦𝑡𝑒𝑠(29), então 9 bits são utilizados para representar o númerode bytes dentro da página e os 15 bits restantes são utilizados pararepresentar o número da página.
![Page 9: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/9.jpg)
Memória Virtual: Sistema de Paginação
Mapeamento de endereços: realizado através de uma Tabela de Páginas.
– a 𝑝 − é𝑠𝑖𝑚𝑎 entrada contém a localização 𝑝′ da Moldura de Página contendo a página número 𝑝 desde que esteja na memória principal.
O mapeamento de endereços é: 𝑓(𝑒) = 𝑓(𝑝, 𝑏) = 𝑝′ + 𝑏, onde e é o endereço do programa, 𝑝 é o número da página e 𝑏 o número do byte.
![Page 10: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/10.jpg)
Memória Virtual: Mapeamento de Endereços
![Page 11: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/11.jpg)
Memória Virtual: Reposição de Páginas
• Se não houver uma moldura de página vazia: uma página deverá ser removida da memória principal.
• Ideal: remover a página que não será referenciada pelo período de tempo mais longo no futuro.– tentamos inferir o futuro a partir do comportamento passado.
![Page 12: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/12.jpg)
Memória Virtual: Políticas de Reposição de Páginas
• Menos Recentemente Utilizada (LRU):– um dos algoritmos mais utilizados;
– remove a página menos recentemente utilizada.
– parte do princípio que o comportamento futuro deve seguir o passado recente;
• Menos Frequentemente Utilizada (LFU):– remove a página menos frequentemente utilizada;
– inconveniente: uma página recentemente trazida da memória secundária tem um baixo número de acessos registrados e pode ser removida;
• Ordem de Chegada (FIFO):– remove a página que está residente há mais tempo;
– algoritmo mais simples e barato de manter;
– desvantagem: ignora o fato de que a página mais antiga pode ser a mais referenciada;
![Page 13: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/13.jpg)
Acesso Sequencial Indexado
• Utiliza o princípio da pesquisa sequencial, cada registro é lidosequencialmente até encontrar uma chave maior ou igual a chave depesquisa.
• Providências necessárias para aumentar a eficiência:– o arquivo deve ser mantido ordenado pelo campo chave do registro (o custo para ordenar é caro);
– um arquivo de índices contendo pares de valores < 𝑥, 𝑝 > deve ser criado, onde 𝑥 representa uma chave e 𝑝 representa o endereço da página na qual o primeiro registro contém a chave 𝑥;
![Page 14: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/14.jpg)
Acesso Sequencial Indexado
![Page 15: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/15.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Chaves
Amanda, Barbara, Betânia, Bianca,Bruno, Carlos, Constantino, David,Dener, Elias
![Page 16: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/16.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Constantino, David
Bloco 3 Dener, Elias
![Page 17: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/17.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Inserir Carol
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Constantino, David
Bloco 3 Dener, Elias
![Page 18: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/18.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Inserir Carol
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Constantino, David
Bloco 3 Dener, Elias
![Page 19: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/19.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Inserir Carol
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Constantino, David
Bloco 3 Dener, Elias
Bloco 4
![Page 20: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/20.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Inserir Carol
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Constantino, David
Bloco 3 Dener, Elias
Bloco 4
![Page 21: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/21.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Inserir Carol
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos,
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 22: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/22.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Inserir Carol
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 23: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/23.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 24: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/24.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 25: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/25.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 26: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/26.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 27: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/27.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 28: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/28.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino, David
![Page 29: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/29.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3 Dener, Elias
Bloco 4 Constantino,
![Page 30: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/30.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3
Bloco 4 Constantino, Dener, Elias
![Page 31: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/31.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3
Bloco 4 Constantino, Dener, Elias
![Page 32: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/32.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3
Bloco 4 Constantino, Dener, Elias
![Page 33: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/33.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Remover David
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3
Bloco 4 Constantino, Dener, Elias
Disponível
![Page 34: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/34.jpg)
Exemplo: Acesso Sequencial Indexado
Chave: nomes
Fator de bloco: 4 nomes/bloco
Bloco 1 Amanda, Barbara, Betânia, Bianca
Bloco 2 Bruno, Carlos, Carol
Bloco 3
Bloco 4 Constantino, Dener, Elias
Disponível
![Page 35: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/35.jpg)
Acesso Sequencial Indexado: Disco Magnético
Dividido em círculos concêntricos (trilhas).
Cilindro: todas as trilhas verticalmente alinhadas e que possuem o mesmo diâmetro.
Latência rotacional: tempo necessário para que o início do bloco contendo o registro a ser lido passe pela cabeça de leitura/gravação.
Tempo de busca (seek time): tempo necessário para que o mecanismo de acesso desloque de uma trilha para outra (maior parte do custo para acessar dados).
Acesso sequencial indexado = acesso indexado + organização sequencial;
Aproveitando características do disco magnético e procurando minimizar o número de deslocamentos do mecanismo de acesso, com esquema de índices de cilindros e de páginas.
![Page 36: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/36.jpg)
Acesso Sequencial Indexado: Disco Magnético
![Page 37: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/37.jpg)
Acesso Sequencial Indexado: Disco Magnético
Para localizar o registro que contenha uma chave de pesquisa são necessários os seguintes passos:
1. localize o cilindro correspondente à chave de pesquisa no índice de cilindros;
2. desloque o mecanismo de acesso até o cilindro correspondente;
3. leia a página que contém o índice de páginas daquele cilindro;
4. leia a página de dados que contém o registro desejado.
![Page 38: Pesquisa em Memória Secundária · quantidade de memória secundária. Organização do fluxo entre a memória principal e secundária é extremamente importante. Programador pode](https://reader031.vdocuments.net/reader031/viewer/2022022109/5c4c706d93f3c34aee556ac2/html5/thumbnails/38.jpg)