Si t O i i
F RGS
Sistemas Operacionais
c a - U F
Gerência de memória
Fatores adicionais
o rmáti c d e Inf o tituto d Ins t
Aula 15
Desempenho da paginação por demanda p p g ç p
Uma referência está sempre associada a uma página
Página pertence ao espaço de endereçamento do processo Pá i tá d ó i ( á i álid )
Página está carregada na memória (página válida)
Página está na área de swap (página inválida → falta de página)
Página não está na memória nem no swap (nova alocação → falta de página)
UFRGS
Página não está na memória, nem no swap (nova alocação → falta de página)
Comportamento típico da áreas dinâmicas (pilha e heap)
Informações obtidas na entrada da tabela de páginas
rmática -U
ç p g
Bits de controle
-16uto de Info arissimi -19-out-Institu
Sistemas Operacionais 2
A. Ca
Quando carregar uma página?
Q g p g
Sistema operacional controla as páginas de cada processo
Quais páginas estão na memória principal (RAM) ou real
Q i á i tã ó i dá i (á d di )
Quais páginas estão na memória secundária (área de swap no disco)
Momento da carga de páginas
Na inicialização do processo
UFRGS
Na inicialização do processo
Páginas iniciais de código e área para pilha
A medida que o processo executa e acessa páginas que ainda não estão na
rmática -U
q p p g q
memória
Procedimento de falta de página (page-fault)
-16uto de Info
E se não houver memória disponível?
Necessário tirar uma página da memória para “abrir” espaço
Políticas de substituição de páginas
arissimi -19-out-Institu
Políticas de substituição de páginas
Sistemas Operacionais 3
A. Ca
Falta de página (page-fault) p g (p g )
Na tradução de endereços consulta o bit de presença, se:
válido: realiza a tradução
i álid i t ã d f lt d á i ( f lt)
inválido: gera interrupção de falta de páginas (page fault)
Tratador de falta de páginas (page-fault)
Há quadros livres disponíveis?
UFRGS
Há quadros livres disponíveis?
SIM: realiza page-in (carga da página faltante)
NÃO: executada política de substituição de página
rmática -U
p ç p g
Faz page-out * da página selecionada para substituição
Realiza page-in da página faltante
-16uto de Info
Atualiza tabela de página do(s) processo(s) envolvido(s)
Processo em falta de página passa para o estado “bloqueado”
arissimi -19-out-Institu
Sistemas Operacionais 4
*Necessário apenas se a página foi modificada (“suja”), senão o page-inpode ser sobreescrever o quadro.
A. Ca
Esquema geral da paginação por demanda q g p g ç p
Sequência de eventos
Sisop
3
mov ax,m
i
1 2
RAM
UFRGS
i Fn
4
6 Área de swap
ou imagem executável Tabela de página
rmática -U
F 5
-16uto de Info
F0
Páginas associadas ao núcleo do sistema operacional são “pinadas” na memória,
arissimi -19-out-Institu
Sistemas Operacionais 5
g p p ,
isso é, NUNCA vão provocar falta de página.
A. Ca
Ordem de grandeza da duração de tarefas g ç
Acionamento do sistema operacional (trap)
1 a 100 us
Determinar se a interrupção foi por falta de página
1 a 100 us
T d (l it ) d á i ó i
UFRGS
Tempo de acesso (leitura) de uma página para memória
Cerca de 8 ms (melhor caso)
Depende do disco e da fila de requisição de E/S
rmática -U
Depende do disco e da fila de requisição de E/S
-16uto de Info arissimi -19-out-Institu
Sistemas Operacionais 6
A. Ca
Tempo de acesso efetivo à memória p
Tempo de acesso à memória “percebido” por um processo
Tempo consumido pela MMU para a tradução (inclui o hit/miss ratio na TLB e eventuais tempo de acesso tabela de página em memória)
eventuais tempo de acesso tabela de página em memória)
Tempo consumido pela gerência de memória virtual (considera as operações page-in, page-out , substituição de página e tempo de bloqueio)
UFRGS
Valores médios
Baseado na probabilidade da entrada estar na TLB e a página estar
rmática -U
na memória
-16uto de Info arissimi -19-out-Institu
Sistemas Operacionais 7
A. Ca
Tempo efetivo de acesso considerando TLB p
Mais precisamente:
TLB MEM
TLB MEM
efetivo
pr t t pr pr t t
t
2
1 2 2
TLB MEM TFP TLB MEM
MEM TLB
MEM TLB efetivo
t t
t t t pr
p p p
1
12
1 2
2
UFRGS
Onde:
rmática -U
pr
1: probabilidade da página estar em memória
pr
2: probabilidade da entrada da página estar na TLB (hit ratio)
t : tempo de acesso a memória
-16uto de Info
t
mem: tempo de acesso a memória
t
TLB: tempo de acesso a TLB
t
TPF: tempo de tratamento de page fault
arissimi -19-out-Institu TPF
p p g
Sistemas Operacionais 8
A. Ca
Desempenho da paginação por demanda (aproximação) p p g ç p ( p ç )
Depende da taxa de falta de páginas (p)
Pode ser aproximado por: t h t t 1 h t n t
Tempo médio de acesso a tabelas e dado
p t p t
t 1
atlb amem
atlb amem
medio
h t t h t n t
t 1
UFRGS
onde:
acesso page faultefetivo
p t p t
t 1
_rmática -U
t
acessoé tempo médio para acessar página na memória
t
page_faulté o tempo médio para o tratamento da falta de páginas e acessar a posição de memória que a provocou
-16uto de Info
posição de memória que a provocou
p é a probabilidade de taxa de falta de páginas (0 p 1.0)
p = 0: todas as referências NÃO provocam faltas de páginas
arissimi -19-out-Institu
p p p g
p = 1, todas as referência provocam uma falta de página
Sistemas Operacionais 9
A. Ca
Exemplo p
Valores
ns
t
acesso 200 t
page_fault 8 ms
Valores Típicos
ms p ns p
t
efetivo ( 1 ) 200 ( ) 8
UFRGS
f
Se desejarmos limitar o aumento do tempo médio de execução em 10% (a=0,1)
rmática -U
ns t
efetivo 220
220 8
) ( 200 ) 1
(
400.000 Instruções entre
PFs!
uto de Info
220 8 ) ( 200 ) 1 ( ms p ns p
0000025
0 1
PFs!
Institu
0000025 , 0 p
000 . 400
1
ou p
Desempenho da paginação p p g ç
O desempenho depende de dois fatores
De manter uma baixa taxa de faltas de páginas
Número de vezes que há cargas de páginas Número de vezes que há cargas de páginas
Diminuir o tempo de acesso ao disco
Tempo gasto para carregar as páginas
P t b i t d f lt d á i
UFRGS
Para manter uma baixa taxa de faltas de páginas
Depende da aplicação!
Para diminuir o tempo de acesso ao disco
rmática -U
Para diminuir o tempo de acesso ao disco
Usar partição de swap
Organiza os dados no disco de forma diferente do sistema de arquivos i l ibilit d i á id
-16uto de Info
convencional possibilitando um acesso mais rápido
t p t
p
t ( 1 ) ( )
arissimi -19-out-Institu
fault page acesso
efetivo
p t p t
t ( 1 ) ( )
_11 Sistemas Operacionais
A. Ca
Pré-paginação p g ç
Trazer para a memória todo o working set do processo
Normalmente, ocorre quando o processo passa de suspenso para apto Obj ti é d i ú d f lt ( )i i i d ã
Objetivo é reduzir o número de page-fault no (re)inicio da execução
Questão sobre pré-paginação x faltas de página
Quantas página dentre aquelas pré paginadas são efetivamente usadas?
UFRGS
Quantas página dentre aquelas pré-paginadas são efetivamente usadas?
Comparação de custos
rmática -Uuto de InfoInstitu
Efetividade da pré-paginação p p g ç
Questão é:
Custo de pré-paginar é menor que o custo de tratar as page-faults?
Considerando que:
s páginas são pré-páginadas para a memória, mas apenas uma fração α é usada ( 0 ≤ α ≤ 1)
UFRGS
usada ( 0 ≤ α ≤ 1)
Custo a ser avaliado:
Custo de “economizar” α.s page-faults é maior ou menor que o custo de
rmática -U
pré-paginar, desnecessariamente (1-α) páginas?
-16uto de Info arissimi -19-oct.Institu
Sistemas Operacionais 13
A. Ca
Área de swapp
O swap é um porção de área do disco
Arquivo P ti ã ífi
Partição específica
Sistema de arquivos possui uma estrutura de gerenciamento
Arquivos são representados por metadados (nome localização no disco
UFRGS
Arquivos são representados por metadados (nome, localização no disco proprietário, data modificação, permissões de acesso, etc)
Arquivos são organizados em diretórios
rmática -U
Acessar arquivos implica percorrer estruturas de dados
Procedimento que pode ser penalizante em tempo
-16uto de Info
Partição de swap
Customizada para armazenar páginas (unidade ou grupos múltiplos de 2)
Oferece melhor desempenho ao custo da flexibilidade
arissimi -19-oct.Institu
Oferece melhor desempenho ao custo da flexibilidade
Sistemas Operacionais 14
A. Ca
Influência do tamanho da página p g
Páginas possuem tamanho múltiplos de 2
Tipicamente variam entre 2
12e 2
22
Fatores a serem considerados na definição do tamanho da página
Tamanho da tabela de páginas
Fragmentação interna
UFRGS
Fragmentação interna
Tempo para page-in e page-out
Localidade
rmática -U
Alcance da TLB
uto de InfoInstitu
Tamanho da tabela de páginas p g
Tamanho da tabela de páginas
Quanto maior a página, menor a tabela
Fragmentação interna
Quanto menor as páginas, menor a fragmentação
Em média metade da última página será desperdiçada
UFRGS
Em média, metade da última página será desperdiçada
Quanto maior a página, maior o desperdício
Tempo para page-in e page-out
rmática -U
Tempo para page in e page out
Quanto maior a página, mais eficiente é a transferência
O tempo total de transferência é seek+ latência rotacional + read/write
uto de Info
Dobrar a página, dobra o tempo de read/write
Logo, parece ser preferível páginas pequenas
M k l tê i t i l é it i d d/ it
Institu
Mas o seek e a latência rotacional é muito maior do que o read/write
Portanto, páginas grandes tendem a amortizar custos de leitura
Localidade
Quanto menor a página, mais preciso será o mecanismo de detecção de localidade
Páginas grandes
Contém dados fora da localidade que serão trazidas para a memória
Representa um desperdício de espaço e de tempo
UFRGS
Representa um desperdício de espaço e de tempo
Com páginas menores
Melhor resolução
rmática -U
Melhor resolução
Permite isolar, precisamente, a memória realmente necessária
uto de InfoInstitu
Estrutura do Programa: questão de localidade g q
Tamanho da página = 128 palavras Tamanho da página = 128 palavras O SO aloca menos de 128 páginas para o programa
Cada linha de “data” está em uma página
UFRGSrmática -U
A cada palavra zerada, é gerada um falta de página
Zera todas as palavras de uma página antes de passar para a próxima
uto de Info
é gerada um falta de página Resultado
128 x 128 = 16.384 faltas de páginas
antes de passar para a próxima Resultado
128
faltas de páginas
Institu
Importância dos programas de sistema (compiladores, ligadores e carregadores) considerar e otimizar a localidade de estrutura de dados e de programas.
Alcance da TLB
Quantidade de memória que a TLB pode endereçar (referências)
Número de entradas da TLB multiplicado pelo tamanho da página Sit ã id l ki t d b TLB
Situação ideal: working set de um processo caber na TLB
Tradução de endereço lógico em físico sem acessar a tabela de páginas em memória
UFRGS
Para aumentar o alcance
Aumentar a TLB fisicamente (custo)
rmática -U
Aumentar o tamanho da página (fragmentação interna, localidade, custo de transferência, etc...)
S l ã lt ti
-16uto de Info
Solução alternativa
Prover tamanho de páginas diferentes (4 KB, 32 KB, 64 KB)
Desvantagem: deve ser feito controle em software (sistema operacional)
arissimi -19-oct.Institu
Desvantagem: deve ser feito controle em software (sistema operacional)
Sistemas Operacionais 19
A. Ca
Memory-mapped files y pp
Consiste em “mapear” um bloco de disco em memória ocupando uma ou mais páginas
A i ( t d l ) f t d d d t
Arquivo (parte dele) passa a fazer parte do espaço de endereçamento
Chamada de sistema específica (ex. mmap)
Princípio básico
UFRGS
Princípio básico
Primeiro acesso funciona similar a ocorrência de um page-fault
Acessos subsequentes são feitos em memória
rmática -U
q
Acelera o desempenho de leitura e escrita
MAS escritas não são feitas imediatamente no disco
-16uto de Info
Política de atualização
arissimi -19-oct.Institu
Sistemas Operacionais 20
A. Ca
Alocação de memória para o núcleo ç p
Áreas de código e dados do núcleo não participam da paginação por demanda
Nú l i it ó i t t d d d d t h dif t
Núcleo requisita memória para estruturas de dados de tamanhos diferentes
Usar memória sem desperdiçar (fragmentação)
Determinados dispositivos interagem diretamente em área física de memória
UFRGS
Determinados dispositivos interagem diretamente em área física de memória
Endereço conhecido (mapeado) e contíguo
Usos de buffer em requisições de E/S
rmática -U
Duas estratégias para alocação de memória
Sistema buddy
-16uto de Info
Alocação via slab
arissimi -19-oct.Institu
Sistemas Operacionais 21
A. Ca
Sistema buddyy
Aloca memória de um segmento de tamanho fixo composto por várias páginas contíguas
M ó i é l d bl d tê i d 2
Memória é alocada em blocos de potência de 2
Porção alocada corresponde a potência de 2 que satisfaz a requisição
Ex : alocar 11 KB de dados implica alocar uma porção de 16 KB
UFRGS
Ex.: alocar 11 KB de dados, implica alocar uma porção de 16 KB
Exemplo:
Segmento de memória de 256 KB (equivale a 64 páginas de 4 KB)
rmática -U
g ( q p g )
Requisição de 21 KB (contíguo) leva a alocação de 32 KB
256 KB → 2 blocos de 128 KB → 1 bloco de 128 KB é dividido em dois d 64 KB d bl d 64 KB é bdi idid d i d 32 KB
-16uto de Info
de 64 KB → um dos blocos de 64 KB é subdividido em dois de 32 KB
arissimi -19-oct.
Problema: fragmentação
Institu
Sistemas Operacionais 22
A. Ca
Alocação slab ç
Considera uma hierarquia para alocação de memória
Slab é formado por uma ou mais páginas contiguas
C h é f d i l b bj t
Cache é formada por um ou mais slabs e armazenam objetos
Associa uma cache para cada classe de objetos do núcleo
Ex : cache para PCBs cache para descritores de arquivos cache para
UFRGS
Ex.: cache para PCBs, cache para descritores de arquivos, cache para semáforos, etc...
Princípio
rmática -U
p
Cache é criada para conter um certo número de objetos
Número de objetos depende do tamanho do slab
-16uto de Info
Ex: slab 12 KB é composto por 3 páginas contíguas e pode armazenar até
6 objetos de 2 KB cada um
arissimi -19-oct.Institu
Sistemas Operacionais 23
A. Ca
Vantagens da alocação slab g ç
Reduz/elimina a fragmentação
Cada estrutura de dados é associada a uma cache, cada cache é composta por um ou mais slabs que são divididos em porções do tamanho do objeto por um ou mais slabs, que são divididos em porções do tamanho do objeto que representa
Alocação de memória retorna a quantidade para o objeto
UFRGS
Acelera a requisição de memória
Os objetos são criados antes de sua efetiva utilização
rmática -U
Tão logo o objeto não é mais necessário ele é marcado como free
-16uto de Info arissimi -19-oct.Institu
Sistemas Operacionais 24
A. Ca
Exemplo: uso de slabs p no Linux
Slab possui 3 estados
Full: todos os objetos estão marcados como ocupados E t t d bj t ã d li
Empty: todos os objetos são marcados como livres
Partial: há objetos livres e ocupados no slab
Na alocação
UFRGS
Na alocação
Busca por um objeto livre em um partial slab, se não encontra, aloca um objeto de empty slab
rmática -U
Se não há empty slab, aloca nova área contigua e para formar um novo slab e associa a cache daquela classe de objetos
P i d i l d
-16uto de Info
Possui dois alocadores
SLOB: para sistemas com pouca memória (pequeno, médio e grande)
SLUB: implementação do método slab com otimizações
arissimi -19-oct.Institu
SLUB: implementação do método slab com otimizações
Sistemas Operacionais 25
A. Ca