Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

20
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Memória Aula 14 Regiane Kawasaki [email protected]

description

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação. SISTEMAS OPERACIONAIS Memória Aula 14 Regiane Kawasaki [email protected]. Implementação da Tabela de Páginas. SO deve manter: Molduras livres \ alocadas; - PowerPoint PPT Presentation

Transcript of Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Page 1: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Universidade Federal do ParáInstituto de Ciências Exatas e NaturaisFaculdade de Computação

SISTEMAS OPERACIONAIS

MemóriaAula 14

Regiane [email protected]

Page 2: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Implementação da Tabela de Páginas SO deve manter:

Molduras livres \ alocadas; Números de frames e páginas de um processo; Uma entrada para cada moldura e para cada

processo.

Implementação da Tabela de Páginas: Via Registradores Via Memória Memória Associativa

Page 3: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Implementação da tabela de páginas via registradores

Tabela de páginas é mantida por um conjunto de registradores: Uma entrada para cada página virtual. Quando processo é inicializado, o SO carrega os

registradores com a tabela de página do processo. Vantagens:

Direto. Não requer referências à memória durante

mapeamento. Desvantagens:

Implementação cara. Necessidade de carregar a tabela de páginas

completa a cada troca de contexto.

Page 4: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Tabela de páginas é mantida em memória Registrador:

Indica início da tabela - Page-table Base Register (PTBR).

Informa número de entradas - Page-table Length Register (PTLR).

Cada operação necessita de, no mínimo, dois acessos à memória.

Implementação da tabela de páginas via memória

Page 5: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Implementação da tabela de páginas em memória

Page 6: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Memória Associativa (Translation look-aside buffers – TLBs)

Meio termo entre implementação via registradores e via memória.

Baseado em uma memória cache especial (TLB) composta por um banco de registradores (memória associativa).

A ideia é manter a tabela de páginas em memória com uma cópia parcial da tabela em um banco de registradores (TLB): Página acessada está na TLB (hit): similar a

solução de registradores; Página acessada não está na TLB (miss): similar

a solução via memória.

Page 7: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Implementação de Tabela de Páginas via TLB

Page 8: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Aspectos relacionados com o uso da TLB

Melhora o desempenho no acesso à tabela de páginas

Desvantagem: Uma única TLB (pertencente à MMU) é

compartilhada entre todos os processos.

Um acesso pode ser feito em duas partes: Se a página está presente na TLB a tradução é

feita; Se a página não está presente na TLB, consulta a

tabela em memória e atualiza a entrada na TLB.

Page 9: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Como lidar com espaço de endereço virtual muito extenso:1. Tabelas de Páginas Multinível Objetivo:

Evitar que todas as páginas fiquem na memória o tempo todo.

Endereço virtual: Exemplo:

Considere um endereço virtual de 32 bits, dividido em um campo PT1 de 10 bits; um campo PT2 de 10 bits e o campo Deslocamento de 12 bits.

Total de páginas virtuais PT1 + PT2 = 20 bits = 220

Tamanho de cada página Deslocamento = 12 bits = 212 = 4kB

...PT1 PT2 PTn Deslocamento

Page 10: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Como lidar com espaço de endereço virtual muito extenso:1. Tabelas de Páginas Multinível

Suponha que um processo necessite de 12 MB: 4 MB da base da memória para o código do

programa; 4 MB para os dados do programa; 4 MB do topo da memória para a pilha.

Page 11: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

11

Tabela de Páginas de dois níveis

Endereço de 32 bitsE.E.V. = 4 GB

0

1234

5

1023

Tabela de páginasde nível 2

Tabela de páginas para os 4MB do topo da

memória(pilha)

PT1 PT2Deslocamento

10 10 12 Bits

. .

.

. .

.

0

12

3

4

5

1023

Tabela de páginas

de nível 1

(Código doPrograma)

(Dados doPrograma)

Page 12: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Como lidar com espaço de endereço virtual muito extenso:1. Tabelas de Páginas Multinível

Neste caso, embora o espaço de endereçamento possua mais de um milhão de páginas virtuais, somente quatro tabelas de páginas são realmente necessárias:

A tabela de nível 1 e as três tabelas de nível 2 referentes aos endereços de 0 a 4 M (código do programa), de 4 M a 8 M (para os dados) e aos 4 M do topo (para a pilha).

Os bits presente/ausente nas 1021 entradas da tabela de páginas de nível 1 são marcado com 0.

Pode ser expandido para três, quatro ou mais níveis.

Page 13: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Como lidar com espaço de endereço virtual muito extenso:2. Tabelas de Páginas Invertidas

Para espaços de endereçamento virtuais de 32 bits, a tabela de páginas multinível funciona razoavelmente bem. Entretanto, essa situação muda drasticamente, à medida que surgem computadores de 64 bits.

Espaço de endereçamento virtual = 264 bytes Se tamanho da página = 4 KB. Tabela de páginas com 252 entradas (Inviável!!!).

Possível solução:

TABELA DE PÁGINAS INVERTIDAS

Page 14: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Como lidar com espaço de endereço virtual muito extenso:2. Tabelas de Páginas Invertidas

Cada entrada informa que o par (processo, página virtual) está localizado na moldura de página.

: Endereço virtual de 64 bits Página de 4 KB 1 GB de RAM

Tabela de página invertida = 1GB / 4KB = 218 = 262.144 entradas

Page 15: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

Como lidar com espaço de endereço virtual muito extenso:2. Tabelas de Páginas Invertidas Tabela baseada na memória real (moldura), ao

invés do espaço de endereçamento virtual. Vantagem:

Economia de espaço na memória RAM

Desvantagens: Tradução de virtual para físico torna-se muito mais

difícil; Deve-se pesquisar em toda a tabela de páginas

invertidas a entrada (n, p), onde o processo n referencia a página virtual p, a cada referência à memória, e não somente nas faltas de páginas.

Possível solução: Memória Associativa

Page 16: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

16

Memória Virtual por Segmentação Técnica de gerenciamento de memória onde o

espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes chamados Segmentos.

Paginação: Um programa é dividido em páginas de tamanho fixo, sem qualquer ligação com a sua estrutura.

Segmentação: Existe uma relação entre a lógica do programa e sua alocação na MP.

Page 17: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

17

Geralmente, a definição do segmento é realizada pelo compilador, a partir do código fonte do programa.

Cada segmento pode representar um procedimento, uma função, vetor, pilha etc.

O espaço de endereçamento virtual de um processo possui um número máximo de segmentos que podem existir, onde cada segmento pode variar de tamanho dentro de um limite.

Memória Virtual por Segmentação

Page 18: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

18

O tamanho do segmento pode variar durante a execução do programa, facilitando a implementação de estruturas de dados dinâmicas.

O mecanismo de mapeamento é muito semelhante ao da Paginação: Segmentos são mapeados através de Tabelas de

Segmentos. Os endereços virtuais são compostos pelo número do

segmento virtual (entrada da tabela de segmentos) + Deslocamento.

Memória Virtual por Segmentação

Page 19: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

19

Para que a Segmentação funcione de forma eficiente, os programas devem estar bem modularizados.

Para alocar os segmentos na MP, o SO mantém uma tabela com as áreas livres e ocupadas na memória.

Quando um novo segmento é referenciado, o SO seleciona um espaço livre suficiente para que o segmento seja carregado na MP.

Memória Virtual por Segmentação

Page 20: Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação

20

Alocação de segmentos segue os algoritmos já estudados:

FIRST-FIT BEST-FIT NEXT-FIT WORST-FIT QUICK- FIT

Memória Virtual por Segmentação