Instituto de Informática
-U
FRGS
Sistemas Operacionais
Gerência de memória
Aspectos de implementação
Aula 21
Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons.
Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/ Instituto
d
e Informática
-UFRGS
Introdução
A alocação não contígua resolve naturalmente o problema de
relocação do código executável
Código executável (saída do ligador) é do tipo absoluto
Ajuste de endereços é feito via hardware (amarração dinâmica) pela MMU Paginação, segmentação ou segmentação com paginação
Sistemas operacionais convencionais empregam paginação
Hardware de paginação mais simples de implementar
Software de gerenciamento mais simples, se comparado com a segmentação Segmentação tem que manter listas de lacunas livres e ocupadas, política
de alocação de lacunas (best-fit, worst-fit, first-fit), compactar, concatenar
2 (c) A. C arissimi -5 maio 17 Instituto d e Informática -UFRGS
Questões para a implementação da paginação
Alocação e gerenciamento do espaço em memória (quadros)
Tabela de páginas
Tamanho da tabela de páginas
Conteúdo da entrada da tabela de páginas
Bits para controle e para indicar o número do quadro
Desempenho da paginação
Local de armazenamento da tabela em tempo de execução Formatação do espaço de swap
(c) A. C arissimi -5 maio 17
Se fosse empregado segmentação ou segmentação com paginação os problemas de alocação e gerenciamento do espaço, dimensionamento de tabelas e local de armazenamento seriam similares.
Instituto
d
e Informática
-UFRGS
Alocação e gerenciamento de memória (paginação)
Alocação com memória real
Necessário alocar quantidade de quadros idêntico a quantidade de páginas Se não há memória disponível
Processo não é criado
Executa escalonador de médio prazo para efetuar swap
Gerenciamento da alocação
Manter informação de quantos quadros estão ocupados e quais quadros estão livres e ocupados
Contador de quadros ocupados
Criação do processo ou swap-in: incrementa contador em q quadros Término do processo ou swap-out: decrementa contador em q quadros
Bitmap para indicar quadros livres e ocupados
(c) A. C arissimi -5 maio 17
Instituto d e Informática -UFRGS
Tabelas de páginas
Implementação natural é um vetor
Uma entrada (elemento) para cada página
Cada entrada na tabela de páginas contém:
Bits de gerência (compartilhamento, validade, acesso leitura ou leitura/escrita) Número do quadro que a página ocupa
Problemas com tabelas de páginas
Quantidade de entradas equivale a de páginas do maior processo possível Tendência é as tabelas serem grandes e subutilizadas
Ex.: processador de 32 bits e páginas de 4 Kbyte = 1 mega entradas
Agravado pelo fato que cada processo tem sua própria tabela de páginas
5 (c) A. C arissimi -5 maio 17 Instituto d e Informática -UFRGS
Dimensionamento das tabelas de páginas
Objetivo é reduzir a área ocupada pelas tabelas de páginas
Usar tabelas de páginas de tamanho variável
É preciso saber a quantidade de entradas (tamanho)
Dimensionar conforme a necessidade, mas como armazenar a tabela? Lembrando que são dados que pertencem ao núcleo do sistema Estratégias possíveis para essa abordagem
Empregar uma área contígua em memória
Paginar a própria tabela de páginas (paginação multinível) Tabela de páginas invertida
6 (c) A. C arissimi -5 maio 17 Instituto d e Informática -UFRGS
Tabela em área contígua de memória
Memória RAM com gerência mista
Dividida em páginas (para os espaços de endereçamento de processos) Dividida em segmentos (para armazenar as tabelas de tamanho variável)
Necessário manter por processo
Ponteiro para inicio da tabela em memória Tamanho da tabela
Problemas de gerenciamento da segmentação
Fragmentação externa
Lista de lacunas livres e ocupadas Compactação e concatenação (c) A. C arissimi -5 maio 17 Instituto d e Informática -UFRGS
Paginação multinível
O objetivo final é dimensionar a tabela por demanda
Consiste em paginar a área de memória necessária a tabela
A tabela ocupa uma quantidade de páginas suficiente para a quantidade de entradas que ela possui
Organiza a tabela de páginas em níveis hierárquicos
Diretório(s) de tabelas de páginas Tabela de páginas propriamente dita
Diretórios de tabela de páginas podem ser em n níveis
Uma entrada do diretório da tabela de páginas de nível n aponta para um diretório de tabelas de páginas de nível n-1
O último nível (o mais a direita) é a tabela de páginas
(c) A. C arissimi -5 maio 17
Instituto d e Informática -UFRGS 9 (c) A. C arissimi -5 maio 17
Exemplo: Paginação em dois níveis Família 80x86
Características
Endereço lógico de 4 Gbytes (32 bits) com páginas de 4 kB (12 bits) Tamanho da tabela de páginas: 4 Gbytes / 4 kbytes = 1048576 entradas
d t 32 bits 10 12 p 10 d q Memória física
Diretório de tabela de páginas
Tabela de páginas Registrador Especial (CR3) 0 0 1023 1023 Instituto d e Informática -UFRGS 10 (c) A. C arissimi -5 maio 17
Paginação em três níveis
Arquiteturas de processadores de 64 bits
Nível 1 Nível 2 Nível 3 deslocamento
Tabela de página Diretório global Diretório intermediário d q Registrador Especial Memória física Instituto d e Informática -UFRGS
Tabela de páginas invertida
Estratégia
A tabela possui uma entrada por quadro da memória RAM, em vez de uma entrada por página (espaço de endereçamento do processo)
Endereço lógico é uma tupla (pid, página, deslocamento)
O índice da entrada que tem o endereço lógico é o quadro onde a página está
Prós e contras da estratégia
Poupa espaço usado para armazenamento de tabelas quando memória lógica dos processos excede a memória real (RAM)
Uso de swap ou memória virtual
A tradução de páginas para quadros é mais elaborada
Chave de pesquisa é (n, p): necessário varrer a tabela inteira pela ocorrência da página p pertencente ao processo n
(c) A. C arissimi -5 maio 17 Instituto d e Informática -UFRGS (c) A. C arissimi -5 maio 17
Esquema da tabela de páginas invertida
CPU pid d Tabela de páginas Pid | p i d Memória física Endereço lógico Endereço físico p i(equivale ao quadro q) 0 RAM
Instituto d e Informática -UFRGS 13 (c) A. C arissimi -5 maio 17
Desempenho na tradução do endereço lógico
Depende do local da tabela de páginas durante a execução do
processo
Compromisso entre tamanho da tabela e desempenho
Locais possíveis
Registradores no hardware do próprio processador (MMU)
Memória RAM
Disco (não prático em tempo de execução)
Instituto
d
e Informática
-UFRGS
Tabela de páginas* na MMU
A tabela é armazenada em um banco de registradores na MMU
Cada registrador é uma entrada da tabela de páginas Registradores devem ser atualizados a cada troca de contexto
Vantagem:
Tempo de acesso para tradução de endereço lógico em físico
Desvantagem:
Tamanho da tabela de páginas
Número de entradas (páginas) é limitado pelo hardware
Custo de implementação e viabilidade
14 (c) A. C arissimi -5 maio 17
*Raciocínio válido para segmentação e segmentação com paginação
Instituto d e Informática -UFRGS (c) A. C arissimi -5 maio 17
Tabela de páginas* em banco de registradores
end. Físico q d p d ULA UC GPRs end. lógico q
Memory Management Unit (MMU)
Tabela de páginas
Memória RAM
Processador
*Raciocínio válido para segmentação e segmentação com paginação
Banco de registradores0 n-1 Instituto d e Informática -UFRGS
Tabela de páginas em memória
Acessa tabela de páginas na memória RAM
Registrador especial para indicar onde ela inicia e termina na memória PTBR (Page Table Base Register)
PTLR (Page Table Length Register), se não for paginação multinível
Vantagem:
Tamanho da tabela de páginas não é limitado por hardware
Desvantagem:
Tempo de acesso
Necessário pelo menos dois acessos a RAM para acessar um endereço do espaço do processo (c) A. C arissimi -5 maio 17
Instituto
d
e Informática
-UFRGS
Tabela de páginas* em memória
17 (c) A. C arissimi -5 maio 17
*Raciocínio válido para segmentação e segmentação com paginação
End. Físico q d p d ULA UC GPRs End. lógico
Memory Management Unit (MMU)
Tabela de páginas Memória RAM Processador q PTBR + 1º acesso 2º acesso ≤ PTLR sim não INT Instituto d e Informática -UFRGS
Translation look-aside buffers (TLBs)
Solução que busca aliar
Desempenho da tradução de endereços lógicos para físicos via banco de registradores
Tabelas sem limitação de tamanho (armazenamento em memória)
Estratégia básica
Manter em banco de registradores (MMU) apenas a parte da tabela de páginas* que está em uso no momento (cópia parcial)
Implementação através de uma memória especial na MMU
Translation look-aside buffer – TLB
Memória associativa (acessada por conteúdo)
Cada entrada possui uma chave (key ou tag) e um valor
Compara todas as chaves simultaneamente e, se existir, retorna o valor
18 (c) A. C arissimi -5 maio 17
*Raciocínio válido para segmentação e segmentação com paginação
Instituto d e Informática -UFRGS (c) A. C arissimi -5 maio 17
Registradores associativos
Registradores associativos permitem a busca de valores por
conteúdo, não por endereços
Pesquisa paralela
Funcionamento:
Se valor “key” está na memória associativa, se obtém valor (value).
Key value p d q q d Endereço lógico Endereço físico Instituto d e Informática -UFRGS (c) A. C arissimi -5 maio 17
Tradução de endereços via TLB
End. Físico q d p d CPU End. lógico Página/quadro TLB Tabela de páginas Hit TLB Miss TLB Memória RAM PTBR
+
*Raciocínio válido para segmentação e segmentação com paginação
q p
q
PTLR ≤
Instituto d e Informática -U FRGS 21 (c) A. C arissimi -5 maio 17
Conceito de hit ratio (h) ou taxa de acerto
Probabilidade do dado referenciado se encontrar na memória
hit ratio (h) é a taxa de acerto e miss ratio (1-h) é a taxa de falhas Aplicável a diferentes hierarquias de memória (TLB, cache, RAM)
No caso da TLB
Probabilidade do endereço físico ser traduzido no acesso a TLB
CPU TLB h Mem. Mem. Mem. 1-h Acessa dado Acessa dado Acessa tabela na memória Também chamado de tempo
efetivo de acesso Instituto d e Informática -U FRGS 22 (c) A. C arissimi -5 maio 17
Exemplo da influência do hit ratio no desempenho
CPU TLB h Mem. Mem. Mem. 1-h Acessa dado Acessa dado Acessa tabela na memória Instituto d e Informática -UFRGS (c) A. C arissimi -5 maio 17
Aspectos relacionados com o uso de TLB: paginação
Melhora o desempenho no acesso a tabela de páginas
Tempo de acesso:1 a 3 ciclos de clock contra 100 a 200 ciclos da memória
Desvantagem é o seu custo (área de silício)
Tamanho limitado (de 8 a 4096 entradas)
Processadores atuais tem TLB organizadas em níveis
TLB pertence a MMU e é compartilhada por todos processos (forma exclusiva) Apenas as páginas em uso por um processo necessitam estar na TLB
Um acesso é feito em duas partes:
Se página está presente na TLB (hit) a tradução é feita
Se página não está presente na TLB (miss), consulta a tabela em memória e atualiza entrada na TLB
Se paginação multinível acessa os diferentes níveis
Instituto d e Informática -UFRGS (c) A. C arissimi -5 maio 17
Atenção: TLB não é cache de dados e/ou instruções
q d p d Página/Frame TLB Hit TLB Miss TLB Cache de dados/instruções PTBR + Tabela de páginas (Memória RAM) Memória RAM valor valor q
Instituto d e Informática -UFRGS
Leituras complementares
25 (c) A. C arissimi -5 maio 17
A. Tanenbaum. Sistemas Operacionais Modernos (4
aedição),
Pearson Brasil, 2016.
Capítulo 3: (seções 3.3.2 a 3.3.4)
A. Silberchatz, P. Galvin; Sistemas Operacionais. (7
aedição).
Campus, 2008.
Capítulo 8 (seções 8.4 e 8.5)