Sistemas operacionais
Paginação de memória
• O Espaço de Endereçamento lógico de um processo pode ser
não contínuo; aloca-se memória física ao processo sempre
que esta é disponível.
• A memória física (sistema) e a memória lógica (processo)
são divididos em blocos de tamanho fixo e idênticos:
o Memória física dividida
denominados de frames
em
blocos
de
tamanho
fixo
o Memória lógica divide em blocos de tamanho fixo denominados de
páginas
Paginação de memória
• Sistema mantém o registro de todos os frames livres.
• Para executar um processo do tamanho de n páginas,
basta encontrar n frames livres na memória
o
Páginas são carregadas em qualquer frame livre
• Necessidade de traduzir endereços lógicos (páginas) em endereços
físicos (frames)
o
o
Define-se uma tabela de página (page table) para traduzir
endereço lógico em físico.
• Elimina a fragmentação externa e reduz a fragmentação interna
Paginação de memória
Paginação de memória
Características da paginação
• Paginação é um tipo de relocação (via
hardware)
• Não gera fragmentação externa
• Fragmentação interna é restrita apenas a última
página
Paginação de memória
• Importante:
o Visão do usuário: espaço de endereçamento contíguo
o Visão do sistema: processo é “esparramado” na memória física
•
n páginas são alocadas a n frames implicando na criação
de uma tabela de correspondência
o Tabela de páginas
Facilita implementação de proteção e compartilhamento
Paginação de memória
Tamanho da página
Páginas grandes significam:
o Processos compostos por menos páginas (tabela de páginas
menores)
o Aumento da fragmentação interna na última página
Páginas pequenas significam:
o Processos compostos por mais páginas (tabela de página
maiores)
o Diminuição da fragmentação interna na última página.
Paginação de memória
• Objetivos conflitantes
Tamanho da página é imposto pelo
hardware (MMU)
Valores típicos variam entre 1 kbyte e 8
kbytes
Paginação de memória
Questões relacionadas com a gerência de páginas
• A gerência de memória deve manter controle de áreas livres e
ocupadas
Inclusão de mecanismos de proteção



Evitar que um processo acesse área (páginas) de outros
processos
Garantir que um processo acesse apenas endereços válidos
Garantir acessos autorizados a uma posição de memória
e.g.: páginas read-only, read-write, etc.
Inclusão de mecanismos de compartilhamento
 Permitir que dois ou mais processos dividam uma área comum
e.g.: páginas de código de um aplicativo do tipo editor de texto
Paginação de memória
Proteção
• Proteção de acesso é garantida por definição:

Processos acessam somente suas páginas (end. válidos)

Endereço inválido apenas na última página (Se houver fragmentação
interna)

Inclusão de bits de controle na tabela de página (por entrada).

Indicação se a página é de leitura, escrita ou executável

Proteção de memória é implementada associando-se um bit
de proteção a cada frame.
Paginação de memória
Bit Válido - Inválido anexado a cada entrada na tabela de página:
• “válido” indica que a página associada está no espaço de
endereçamento lógico do processo, assim, é a uma página legal.
• “inválido” indica que a página
endereçamento lógico do processo.
não
está
no
espaço
de
Paginação de memória
Exemplo de proteção
Paginação de memória
Compartilhamento de páginas
Código compartilhado
o Uma cópia do código (read-only, re-entrante) pode ser
compartilhada entre vários processos (e.g.; editores de texto,
compiladores, etc...)
o O código compartilhado pertence ao espaço lógico de todos os
processos
Dados e código próprios
o Cada processo possui sua própria área de código e seus dados
Paginação de memória
Exemplo de compartilhamento:
Segmentação de memória

Segmentação

Técnica de gerência de memória, onde os programas são
divididos logicamente e em sub-rotinas e estruturas de
dados e colocados em blocos de informações na memória

Segmentos – blocos de tamanhos diferentes com seu
próprio espaço de endereçamento.

Respeita a visão do programador.
Segmentação de memória

Segmentação

Segmentação X Paginação
 Paginação
com partes de tamanho fixo e
segmentos com blocos de tamanhos variados
 permite uma relação entre a lógica do
programa e sua divisão na memória.
Segmentação de memória

Segmentação

Cada entrada na tabela de segmentos possuí o endereço
do segmento na memória física, informações sobre o
tamanho do segmento, sua proteção e se ele está na
memória ou não.

O Sistema Operacional mantém uma tabela com as áreas
livres e ocupadas da memória.
Segmentação de memória

Segmentação

A escolha da área livre a ser ocupada por um processo a
ser carregado na memória pode ser a mesma utilizada no
item Alocação Particionada Dinâmica (best-fit, worst-fit ou
first-fit).

Apenas os segmentos referenciados são transferidos para
a memória real.
Os programas devem ser bem modularizados para uma
maior eficiência.

Segmentação de memória

Segmentação com Paginação

Permite a divisão lógica dos programas e segmentos e,
cada segmento é dividido fisicamente em páginas.

Um endereço é formado pelo número do segmento, pelo
número de página, contida nesse segmento, e pelo
deslocamento dentro dessa página.

O endereço físico é obtido somando-se a posição inicial
do frame e o deslocamento.
Paginação de memória
Implementação da tabela de páginas
• Sistema operacional deve manter:
o Frames livres/alocados
o Número de frames e de páginas de um processo o Uma entrada para
cada frame e para cada processo
• Como implementar a tabela de páginas?
o Registradores e Memória
Paginação de memória
Implementação da tabela de páginas via registradores
Tabela de páginas é mantida por um conjunto de
registradores
o Cada página um registrador
o No descritor de processo devem ser mantidas cópias dos
registradores
Troca de contexto: atualização dos registradores
Desvantagem é o número de registradores
Paginação de memória
Cada acesso necessita, no mínimo, dois acessos a memória
Paginação de memória
Page-faults:





Quando é pedida uma página que não se encontra na memória
principal, ocorre uma page fault
Uma page fault é uma exceção que causa bloqueio ao processo em
questão
Inicia-se o de carregamento da página em falta, da memória
secundária para a memória principal
Efetuam-se as alterações necessárias na page table, de modo a esta
continuar consistente
Pode ser necessário transferir uma outra página para a memória
secundária, de modo a libertar-se uma page frame – nesse caso
corre-se o algoritmo de substituição de páginas
Paginação de memória
Algoritmos de substituição de páginas
O algoritmo ideal:



Sempre que for necessária uma substituição de páginas, a que
deveria sair será aquela que só será utilizada daqui a mais tempo
Este algoritmo não é realizável, pois os S.O.s não conseguem prever
o futuro...
A aproximação é tentar descartar as páginas que são pouco
utilizadas, ou que já não são utilizadas há muito tempo, na esperança
de que não venham a ser utilizadas brevemente
Paginação de memória
Algoritmos de substituição de páginas
FIFO (First-in, first-out)



A página a substituir é a que se encontra carregada há mais tempo
na memória principal
Algoritmo de fácil implementação, bastando ter uma lista com índices
de páginas, com a mais antiga no topo e a mais recente no fim
À medida que as páginas vão sendo carregadas na memória, os seus
índices vão também sendo acrescentados ao fim da lista mantida
pelo algoritmo
Problema: a página que foi carregada há mais tempo pode estar a ser
utilizada...
Paginação de memória
Algoritmos de substituição de páginas
Bit de referência




A cada frame e associado um bit “R” com valor inicial 0.
Quando uma página é referenciada o Bit “R” é alterado para 1.
Ao fim de algum tempo todas as páginas tem bit “R” igual a 1. Neste
momento deve entrar em ação um algoritmo de “esquecimento” que
torna todos os bits 1 em 0.
O frame escolhido para a substituição é aquele primeiro que ao ser
verificado tiver o bit “R” igual a 0.
Paginação de memória
Algoritmos de substituição de páginas
Segunda chance



Algoritmo baseado no FIFO, mas que utiliza o bit de referência (R)
Antes de uma página ser descartada, analisa-se o bit R e, caso este
se encontre a “1”, então é posto a “0”, mas a página não é
descartada, analisando-se a próxima.
A página a descartar será a primeira que for encontrada com R=0
Download

Apresentação 13 (A2)