Hierarquia de MemóriaArquitetura de Computadores
Aula 5 – Memória28/08/2012
Bruno Iran Ferreira MacielMestrando em Ciências da Computação – Cin/UFPE
Revisão da aula passada
Memória principalDefinicão: “Parte do computador onde programas e dados são
armazenados”.
Bit (Binary Digit): Unidade basica de memória. 1 Bit pode armazenar os valores 0 ou 1.
É possível realizar duas operacões em uma MP: escrita e leitura.
Revisão da aula passada
Enderecos de memória Memórias são organizadas em celulas Cada celula possui um numero associado: endereco Programas referenciam uma celula a partir deste
endereco Se uma memória possui n celulas, tais celulas possuirão
os enderecos 0 a n – 1.
Revisão da aula passada
Calculos com a Capacidade de Memória O total de bits que podem ser armazenados na
referida memória e T, sendo: T = N x M ou T = 2Ex M Do exemplo anterior temos: N = 512 celulas, M = 8 bits, E = 9 bits, T = 4096 bits N = 2E ->512 = 29 T = N x M = 2Ex M = 4096 bits = 4K bits
Revisão da aula passada
Memória principal
Exemplo 1Uma memória RAM tem um espaco maximo de enderecamento de 16K. Cada celula pode armazenar 16 bits. Qual o valor total de bits que podem ser armazenados nesta memória e qual o tamanho de cada endereco?
Se o espaco maximo enderecavel e 2K, então N = 2K 1 celula = 16 bits. Então: M = 16 bits = 24 bits N=2E, N=16K=21x1024=21x210=211
Se N=2E e 211,então: 2E=211 e E=11 E = quantidade de bits de cada numero que expressa um enderecamento,
ou seja: os enderecos de cada celula são numeros que têm 11 bits. T= N x M=211x16=215=32Kbit
Memória principal
Exemplo 2Uma memória RAM e fabricada com a possibilidade de armazenar um maximo de 256kbits. Cada celula pode armazenar 8 bits. Qual e o tamanho de cada endereco e qual e o total de celulas que podem ser utilizadas na RAM?
Total de bits = T = 256K = 28x210= 218 1 celula=8bits=M=23
Sendo T=NxM ,então:N=T/M=218/23=215
Se N=2E,então:215=2E, E=15 N = 215= 25x210= 32k
Aula de hoje
Hoje vamos ver
Memória cacheParticão de memóriaPaginacão e Segmentacão
Memória cache
Memória cache
Significado da palavra cache – Lugar seguro para guardar (esconder coisas)Considerando que a cache só pode ter parte dos dados do nível mais abaixo, por causa do menor tamanho, temos dois problemas:
Como identificar se o dado procurado esta na cache e Se ele estiver na cache, como acessa-lo de forma rapida
Memória cache
Memória cache
Memória cache
Problema: CPUs são mais rapidas que memórias do sistema
CPUs devem esperar varios ciclos p/ que o dado requerido seja carregado
Problema de custo e não de engenharia: e possível construir memórias tão rapidas quanto a CPU (Precisam ficar dentro do chip da CPU). CUSTO MUITO ALTO
Organizacão da memória
Organizacão da memória
Particão de Memória
Participacão de Memória
Esquema simples para dividir a memória disponível entre os processos
Inicialmente as particões eram de tamanho fixo Embora as particões fossem de tamanho fixo, elas não
necessariamente eram de mesmo tamanho Cada processo era carregado na menor particão
disponível capaz de conte-lo Problema → desperdício de memória nas particões Solucão → particões de tamanho variaveis
Participacão de Memória
Particões de tamanho variavel
Memória e alocada de acordo com o tamanho requerido pelo processo
Problema de buracos na memória quando da troca de processos
Necessaria a compactacão (desfragmentacão) da memória → reduz o desempenho do sistema
Participacão de Memória
O endereco de um processo varia em cada vez que ele e trazido para a memória
Existe uma distincão entre endereco físico e endereco físico e endereco lógico
Endereco lógico → posicão relativa ao início do programa Endereco físico → designa uma posicão na memória principal
Endereco físico → endereco lógico + endereco inicial do processo (endereco base)
Paginacão
Paginacão
Nada mais e que o uso da swap, ou seja memória virtual, quando sua memória e usada por completo (enchida), o sistema passa para o disco uma porcão da informacão dos aplicativos que estão em segundo plano contida nos pentes de memória para o disco, afim de abrir mais na memória ram (pentes) para os aplicativos que você esta usando em primeiro plano.
Paginacão
Ideia → separar os conceitos de espaco de enderecamento e enderecos de memória
Bits de enderecamento não são efetivamente relacionados com as palavra de memória disponíveis
Ex: maquina com 4096 palavras de memória e 16 bits de endereco (65536 enderecos)
Espaco de enderecamento→conjunto de enderecos possíveis, independente da quantidade de posicões de memória existente
Paginacão
Antigamente Os enderecos que referenciavam as posicões de memória
acima das posicões físicas existente eram inuteis Existia o espaco de enderecamento util e o espaco de
enderecamento inutil
Paginacão
Mapeamento entre os endereco virtuais e físicos
Paginacão
Paginação → overlay automático do programa na memória principal
Cada overlay é chamada de página Temos o espaço de endereços virtuais e o espaço de endereços físicos Um mapa de memória (ou tabela de páginas) relaciona os endereços
virtuais com os endereços físicos É um mecanismo transparente que dá ao programador a ilusão de uma
memória principal grande, com endereços contíguos e lineares, do mesmo tamanho do espaço de endereços virtuais
Paginacão
O sistema operacional mantem uma tabela de paginas para cada um dos processos em execucão
Cada endereco virtual e composto por um numero de pagina e por um endereco relativo dentro dessapagina
Implementacão da Paginacão
Programas e dados ficam no disco (memória secundaria)
Programa no disco → original Pedacos do programa na memória principal → cópia do
original O programa original deve estar sempre atualizado
O espaco de enderecamento virtual e dividido emum conjunto de paginas de mesmo tamanho
Tamanho das paginas → 512 a 64Kb
Implementacão da Paginacão
O espaco de enderecamento físico tambem e divido em pedacos de mesmo tamanho das paginas
Moldura de paginas → pedacos da memória principal onde as paginas são armazenadas
Implementacão da Paginacão
Implementacão da Paginacão
Implementacão da Paginacão
Enderecos gerados pela CPU são divididos em: Numero da pagina (p) - Usando como um índice em uma
tabela de paginas, a qual contem o endereco o endereco base de cada pagina na memória física.
Deslocamento de pagina (d) - combinado com o endereco base para definir o endereco na memória física que sera enviado para a unidade de memória.
Implementacão da Paginacão
Implementacão da Paginacão
Tamanho das paginas
Implementacão da Paginacão
Tamanho das paginas: exemplo
Implementacão da Paginacão
Tamanho das paginas: exemplo
Implementacão da Paginacão
No nosso exemplo temos que mapear enderecos virtuais de 32 bits em enderecos físicos de 15 bits
15 bits → 12 bits para o deslocamento dentro da pagina e 3 bits para determinar em qual moldura esta a pagina
Implementacão da Paginacão
Implementacão da Paginacão
A Unidade de Gerenciamento de Memória divide o endereco lógico em duas partes
20 bits representando o numero da pagina virtual 12 bits representando o deslocamento na pagina
O n° da pagina virtual e usado na tabela de paginas Primeiro e verificado se a pagina esta na memória principal
atraves do valor do bit de residência Se a pagina estiver na memória e verificada em que moldura de
pagina ela esta armazenada
Caso não esteja na memória a pagina tem que ser buscada
Implementacão da Paginacão
Segmentacão
Segmentacão
A paginacão e um sistema de memória virtual unidimensional
Seus enderecos variam de 0 a um endereco maximo
Para alguns problemas seria interessante a existência de dois ou mais espacos de enderecamento virtual separados
Ex: compilador que gera muitas tabelas Tabela de símbolos Tabela com o código-fonte Tabela de constantes Pilha
Segmentacão
Segmentacão
Cadasegmento constitui um espaco de enderecamento separado
O crescimento ou encolhimento de um segmento ocorre de maneira independente, não influindo nos outros segmentos
Especificacão de um endereco Composto de duas partes → numero de um segmento e
um endereco desse segmento
Segmentacão
Uma memória segmentada permite que cada tabela cresca ou encolha independente das outras tabelas
Segmentacão
O segmento e uma entidade lógica e o programa deve estar ciente de sua existênciaVantagens de uma memória segmentada Vantagens de uma memória segmentada
Facilita o trato com estruturas de dados que crescem ou encolhem durante a execucão do programa
A modificacão de um segmento não acarreta na modificacão de nenhum outro segmento (os enderecos não se modificam)
Facilita o compartilhamento de procedimento de E/S ou de dados entre varios programas
Segmentacão
Segmentos diferente possuem tipo de protecão diferentes
Um segmento de código só pode ser executado, não sendo possível ler ou escrever nesse segmento
Um segmento de dados pode ser lido ou escrito, mas não pode ser executado
Segmentacão
Comparacão da tecnicas de paginacão e segmentacão
Implementacão da Segmentacão
A segmentacão pode ser implementada de duas maneirasPor swappingPor paginacão
Implementacão da Segmentacão
Segmentacão por swapping Um conjunto de segmentos deve estar na memória
principal Se um segmento que não estiver na memória for
referenciado, ele deve ser carregado na memória Se a memória estiver cheia, um ou mais segmentos
devem ser retirados (atualizando o original, se preciso) da memória para se carregar o novo segmento
Esse esquema e muito parecido com a paginacão por demanda
Implementacão da Segmentacão
Segmentacão difere da paginacão Paginas tem um tamanho fixo Segmentos não possuem tamanho fixo
Tratamento de “buracos” na memória Mover os segmentos após o buraco, deixando um grande
buraco no fim da memória Ou espera-se que a fragmentacão atinja contornos
críticos, para então realizar a desfragmentacão
Implementacão da Segmentacão
Segmentacão por swapping Segmentos inteiros são movidos entre a memória
principal e o disco, sob demanda
Segmentacão por paginacão Os segmentos são divididos em paginas Trabalha no esquema de paginacão por demanda É necessario uma tabela de paginas para cada
segmento A memória virtual dos processadores Intel a partir do 386
usam segmentacão por paginacão
Perguntas
?
Exercício
Não tivemos exercício hoje
Top Related