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

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

Bruno Iran Ferreira Maciel

Apresentações semelhantes


Apresentação em tema: "Bruno Iran Ferreira Maciel"— Transcrição da apresentação:

1 Bruno Iran Ferreira Maciel
Hierarquia de Memória Arquitetura de Computadores Aula 5 – Memória 28/08/2012 Bruno Iran Ferreira Maciel Mestrando em Ciências da Computação – Cin/UFPE

2 Revisão da aula passada
Memória principal Definição: “Parte do computador onde programas e dados são armazenados”. Bit (Binary Digit): Unidade básica de memória. 1 Bit pode armazenar os valores 0 ou 1. É possível realizar duas operações em uma MP: escrita e leitura.

3 Revisão da aula passada
Endereços de memória Memórias são organizadas em células Cada célula possui um número associado: endereço Programas referenciam uma célula a partir deste endereço Se uma memória possui n células, tais células possuirão os endereços 0 à n – 1.

4 Revisão da aula passada

5 Revisão da aula passada
Cálculos com a Capacidade de Memória O total de bits que podem ser armazenados na referida memória é T, sendo: T = N x M ou T = 2Ex M Do exemplo anterior temos: N = 512 células, M = 8 bits, E = 9 bits, T = 4096 bits N = 2E ->512 = 29 T = N x M = 2Ex M = 4096 bits = 4K bits

6 Memória principal Exemplo 1
Uma memória RAM tem um espaço máximo de endereçamento de 16K. Cada célula pode armazenar 16 bits. Qual o valor total de bits que podem ser armazenados nesta memória e qual o tamanho de cada endereço? Se o espaço máximo endereçável é 2K, então N = 2K 1 célula = 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 número que expressa um endereçamento, ou seja: os endereços de cada célula são números que têm 11 bits. T= N x M=211x16=215=32Kbit

7 Memória principal Exemplo 2
Uma memória RAM é fabricada com a possibilidade de armazenar um máximo de 256kbits. Cada célula pode armazenar 8 bits. Qual é o tamanho de cada endereço e qual é o total de células que podem ser utilizadas na RAM? Total de bits = T = 256K = 28x210= 218 1 célula=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

8 Aula de hoje Hoje vamos ver Memória cache Partição de memória
Paginação e Segmentação

9 Memória cache

10 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 está na cache e Se ele estiver na cache, como acessá-lo de forma rápida

11 Memória cache

12 Memória cache

13 Memória cache Problema: CPUs são mais rápidas que memórias do sistema
CPUs devem esperar vários ciclos p/ que o dado requerido seja carregado Problema de custo e não de engenharia: é possível construir memórias tão rápidas quanto a CPU (Precisam ficar dentro do chip da CPU). CUSTO MUITO ALTO

14 Organização da memória

15 Organização da memória

16 Partição de Memória

17 Participação de Memória
Esquema simples para dividir a memória disponível entre os processos Inicialmente as partições eram de tamanho fixo Embora as partições fossem de tamanho fixo, elas não necessariamente eram de mesmo tamanho Cada processo era carregado na menor partição disponível capaz de conté-lo Problema → desperdício de memória nas partições Solução → partições de tamanho variáveis

18 Participação de Memória
Partições de tamanho variável Memória é alocada de acordo com o tamanho requerido pelo processo Problema de buracos na memória quando da troca de processos Necessária a compactação (desfragmentação) da memória → reduz o desempenho do sistema

19 Participação de Memória
O endereço de um processo varia em cada vez que ele é trazido para a memória Existe uma distinção entre endereço físico e endereço físico e endereço lógico Endereço lógico → posição relativa ao início do programa Endereço físico → designa uma posição na memória principal Endereço físico → endereço lógico + endereço inicial do processo (endereço base)

20 Paginação

21 Paginação Nada mais e que o uso da swap, ou seja memória virtual, quando sua memória é usada por completo (enchida), o sistema passa para o disco uma porção da informaçã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ê está usando em primeiro plano.

22 Paginação Idéia → separar os conceitos de espaço de endereçamento e endereços de memória Bits de endereçamento não são efetivamente relacionados com as palavra de memória disponíveis Ex: máquina com 4096 palavras de memória e 16 bits de endereço (65536 endereços) Espaço de endereçamento→conjunto de endereços possíveis, independente da quantidade de posições de memória existente

23 Paginação Antigamente
Os endereços que referenciavam as posições de memória acima das posições físicas existente eram inúteis Existia o espaço de endereçamento útil e o espaço de endereçamento inútil

24 Paginação Mapeamento entre os endereço virtuais e físicos

25 Paginaçã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

26 Paginação O sistema operacional mantém uma tabela de páginas para cada um dos processos em execução Cada endereço virtual é composto por um número de página e por um endereço relativo dentro dessa página

27 Implementação da Paginação
Programas e dados ficam no disco (memória secundária) Programa no disco → original Pedaços do programa na memória principal → cópia do original O programa original deve estar sempre atualizado O espaço de endereçamento virtual é dividido em um conjunto de páginas de mesmo tamanho Tamanho das páginas → 512 a 64Kb

28 Implementação da Paginação
O espaço de endereçamento físico também é divido em pedaços de mesmo tamanho das páginas Moldura de páginas → pedaços da memória principal onde as páginas são armazenadas

29 Implementação da Paginação

30 Implementação da Paginação

31 Implementação da Paginação
Endereços gerados pela CPU são divididos em: Número da página (p) - Usando como um índice em uma tabela de páginas, a qual contém o endereço o endereço base de cada página na memória física. Deslocamento de página (d) - combinado com o endereço base para definir o endereço na memória física que será enviado para a unidade de memória.

32 Implementação da Paginação

33 Implementação da Paginação
Tamanho das páginas cc

34 Implementação da Paginação
Tamanho das páginas: exemplo cc

35 Implementação da Paginação
Tamanho das páginas: exemplo cc

36 Implementação da Paginação
No nosso exemplo temos que mapear endereços virtuais de 32 bits em endereços físicos de 15 bits 15 bits → 12 bits para o deslocamento dentro da página e 3 bits para determinar em qual moldura está a página

37 Implementação da Paginação

38 Implementação da Paginação
A Unidade de Gerenciamento de Memória divide o endereço lógico em duas partes 20 bits representando o número da página virtual 12 bits representando o deslocamento na página O n° da página virtual é usado na tabela de páginas Primeiro é verificado se a página esta na memória principal através do valor do bit de residência Se a página estiver na memória é verificada em que moldura de página ela está armazenada Caso não esteja na memória a página tem que ser buscada

39 Implementação da Paginação

40 Segmentação

41 Segmentação A paginação é um sistema de memória virtual unidimensional
Seus endereços variam de 0 a um endereço máximo Para alguns problemas seria interessante a existência de dois ou mais espaços de endereçamento virtual separados Ex: compilador que gera muitas tabelas Tabela de símbolos Tabela com o código-fonte Tabela de constantes Pilha

42 Segmentação

43 Segmentação Cada segmento constitui um espaço de endereçamento separado O crescimento ou encolhimento de um segmento ocorre de maneira independente, não influindo nos outros segmentos Especificação de um endereço Composto de duas partes → número de um segmento e um endereço desse segmento

44 Segmentação Uma memória segmentada permite que cada tabela cresça ou encolha independente das outras tabelas

45 Segmentação O segmento é uma entidade lógica e o programa deve estar ciente de sua existência Vantagens de uma memória segmentada Vantagens de uma memória segmentada Facilita o trato com estruturas de dados que crescem ou encolhem durante a execução do programa A modificação de um segmento não acarreta na modificação de nenhum outro segmento (os endereços não se modificam) Facilita o compartilhamento de procedimento de E/S ou de dados entre vários programas

46 Segmentação Segmentos diferente possuem tipo de proteçã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

47 Segmentação Comparação da técnicas de paginação e segmentação

48 Implementação da Segmentação
A segmentação pode ser implementada de duas maneiras Por swapping Por paginação

49 Implementação da Segmentação
Segmentaçã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 é muito parecido com a paginação por demanda

50 Implementação da Segmentação
Segmentação difere da paginação Páginas 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 fragmentação atinja contornos críticos, para então realizar a desfragmentação

51 Implementação da Segmentação
Segmentação por swapping Segmentos inteiros são movidos entre a memória principal e o disco, sob demanda Segmentação por paginação Os segmentos são divididos em páginas Trabalha no esquema de paginação por demanda É necessário uma tabela de páginas para cada segmento A memória virtual dos processadores Intel a partir do 386 usam segmentação por paginação

52 Perguntas ?

53 Exercício Não tivemos exercício hoje


Carregar ppt "Bruno Iran Ferreira Maciel"

Apresentações semelhantes


Anúncios Google