1. Sistemas Operacionais
-Gerência de Memória
Ernesto Massa
(slides fornecidos pela Prentice Hall
e adaptados para esta disciplina)
1
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
2. Gerenciamento de Memória
Idealmente, o que se deseja é dispor de
uma memória que seja
Grande, rápida e não volátil.
Hierarquia de memórias
Cache
pequena quantidade de memória rápida, de
alto custo.
Memória Principal
Quantidade considerável de velocidade média,
custo médio.
Armazenamento em disco
Velocidade e custo baixos.
Pearson Education
2
Sistemas Operacionais Modernos – 2ª Edição
3. Gerenciamento de Memória
Algumas funções do Gerenciador de
memória:
Controlar quais as unidades de memória estão
ou não estão em uso, para que sejam alocadas
quando necessário;
Liberar as unidades de memória que foram
desocupadas por um processo que finalizou;
Tratar do Swapping entre memória principal e
memória secundária.
Transferência temporária de processos
residentes na memória principal para memória
secundária.
Pearson Education
3
Sistemas Operacionais Modernos – 2ª Edição
4. Gerenciamento Básico de Memória:
Monoprogramação
Sistema operacional com apenas
um processo de usuário
(a) Inicialmente utilizados em Mainframes
(b) Sistemas Embarcados
(c) Primeiros Microcomputadores Pessoais
Pearson Education
4
Sistemas Operacionais Modernos – 2ª Edição
5. Alocação Contígua Simples
Alocação implementada nos Memória principal
primeiros sistemas e ainda
usada nos monoprogramáveis;
Sistema
A Memória é dividida em duas Operacional
áreas:
Área do Sistema Operacional
Área do Usuário
Um usuário não pode usar uma Área de
área maior do que a disponível; Programas
Sem proteção: do usuário
Um usuário pode acessar a área
do Sistema Operacional.
Pearson Education
5
Sistemas Operacionais Modernos – 2ª Edição
6. Alocação Contígua Simples
Registrador de proteção delimita Memória principal
as áreas do sistema operacional
e do usuário; Sistema
Sistema verifica acessos à Reg Operacional
memória em relação ao
endereço do registrador;
A forma de alocação era
Área de
simples, mas não permitia Programas
utilização eficiente de do usuário
processador e memória;
Pearson Education
6
Sistemas Operacionais Modernos – 2ª Edição
7. Alocação Contígua Simples
Programas de usuário Memória principal
limitados pelo tamanho da
memória principal disponível. Sistema
Operacional
Solução: Overlay
Dividir o programa em
Área do
módulos; Módulo
Permitir execução Principal
independente de cada
módulo, usando a mesma Área de
área de memória; Overlay
Área de Overlay
Área de memória comum
onde módulos compartilham A B C
Pearson Education mesmo espaço.
7
Sistemas Operacionais Modernos – 2ª Edição
8. Multiprogramação:
Alocação Particionada
Multiprogramação.
Necessidade do uso da memória por vários usuários
simultaneamente.
Ocupação mais eficiente do processador;
A memória foi dividida em pedaços de tamanho
fixo chamados partições;
O tamanho de cada partição é estabelecido na
inicialização do sistema;
Para alteração do particionamento, é necessário
uma nova inicialização com uma nova
configuração.
Pearson Education
8
Sistemas Operacionais Modernos – 2ª Edição
9. Alocação Particionada Estática
Proteção: Memória principal
Registradores com limites
inferior e superior de Sistema
memória acessível. Reg Operacional
Programas não ocupam
totalmente o espaço das Reg Partição A
partições, gerando uma
fragmentação interna.
Partição B
Partição C
Pearson Education
9
Sistemas Operacionais Modernos – 2ª Edição
10. Alocação Particionada Estática
Alocação Particionada Estática Absoluta:
Compiladores gerando código absoluto;
Endereços relativos ao início da memória;
Programas exclusivos para partições
específicas.
Alocação Particionada Estática Relocável:
Compiladores gerando código relocável;
Endereços relativos ao início da partição;
Programas podem rodar em qualquer partição.
Pearson Education
10
Sistemas Operacionais Modernos – 2ª Edição
11. Multiprogramação
com Partições Fixas (Estática)
Partições fixas de memória
(a) Filas de entrada para cada partição
(b) Fila única de entrada
Pearson Education
11
Sistemas Operacionais Modernos – 2ª Edição
12. Alocação Particionada Dinâmica
Não existe o conceito de Memória principal
partição dinâmica.
O espaço utilizado por um
Sistema
programa é a sua partição.
Operacional
Não ocorre fragmentação
interna.
Processo A
Ao terminarem, os programas
deixam espalhados espaços
pequenos de memória, Processo C
provocando a fragmentação
Processo F
externa.
Processo E
Pearson Education
12
Sistemas Operacionais Modernos – 2ª Edição
13. Considerações sobre
Relocação e Proteção
Não se sabe com certeza onde o
programa será carregado na memória
As Localizações de endereços de variáveis e de
código de rotinas não podem ser absolutos
Soluções:
Instruções do programa são modificadas
segundo a partição de memória em que ele
será carregado
Uma solução para relocação e proteção: uso de
registradores com valores base e limite
As localizações de endereços são somadas ao
valor base antes de serem mapeadas na
memória física
Referência a endereços superiores ao limite
indicam erro.
Pearson Education
13
Sistemas Operacionais Modernos – 2ª Edição
14. Alocação Dinâmica:
Troca de Processos (ou Swapping)
Alterações na alocação de memória à
medida que processos entram e saem da
memória
Regiões sombreadas correspondem a
regiões de memória não utilizadas
naquele instante
Pearson Education
14
Sistemas Operacionais Modernos – 2ª Edição
15. Alocação Dinâmica:
Troca de Processos (ou Swapping)
Um processo residente na memória é levado para
o disco (Swapped-Out), dando lugar a outro;
O processo Swapped-Out retorna à memória
(Swapped-In), sem “perceber” o que ocorreu.
Sistema Memória principal Sistema
Operacional Operacional
programa A Swap Out programa A
programa B Swap In programa H
programa E programa E
B B programa A
programa B
programa G
Pearson Education
15
Sistemas Operacionais Modernos – 2ª Edição
16. Memória Extra
Alocação de espaço para uma área de
dados em expansão
Alocação de espaço para uma pilha e uma
área de dados, ambos em expansão
Pearson Education
16
Sistemas Operacionais Modernos – 2ª Edição
17. Gerenciamento de Memória com
Mapas de Bits e Lista Encadeada
Parte da memória com 5 segmentos de processos e 3
segmentos de memória livre
pequenos riscos simétricos denotam as unidades de
alocação
regiões sombreadas denotam segmentos livres
Mapa de bits correspondente
Mesmas informações em uma lista encadeada
Pearson Education
17
Sistemas Operacionais Modernos – 2ª Edição
18. Gerenciamento de Memória
com Listas Encadeadas
Quatro combinações de vizinhança
para o processo X em término de
execução
Pearson Education
18
Sistemas Operacionais Modernos – 2ª Edição
19. Algoritmos de
Alocação de Memória
Best-Fit (melhor ajuste):
Worst-Fit (pior ajuste):
First-Fit (primeiro ajuste):
Next-Fit (próximo ajuste):
Todos melhoram em performance se existirem listas
distintas para processos e espaços, embora o
algoritmo fique mais complexo.
Listas ordenadas por tamanho de espaço melhoram a
performance.
Pearson Education
19
Sistemas Operacionais Modernos – 2ª Edição
20. Modelagem de Multiprogramação
Utilização da CPU como uma função do
número de processos na memória
Pearson Education
20
Sistemas Operacionais Modernos – 2ª Edição
21. Análise de Desempenho de
Sistemas de Multiprogramação
Chegada de 4 jobs e suas necessidades de trabalho
Utilização da CPU por até 4 jobs com 80% de espera por
E/S
Sequência de
eventos entre a
chegada e o
término dos jobs
Note que os
números
mostram
quanto tempo
da CPU cada
job obtém em
cada intervalo
Pearson Education
21
Sistemas Operacionais Modernos – 2ª Edição
22. Memória Virtual
Técnica onde memória principal e secundária são
combinadas de forma a “emular” uma memória de
tamanho maior que a memória principal (real);
A memória secundária é usada como extensão da
memória principal;
Permite um maior número de processos
compartilhando a memória principal;
Não vincula o endereçamento dos programas aos
endereços físicos da memória principal;
Programas não ficam mais limitados ao tamanho da
memória principal disponível;
Minimiza o problema de fragmentação.
Pearson Education
22
Sistemas Operacionais Modernos – 2ª Edição
23. Memória Virtual
Memória Principal
Espaço de
Espaço de Endereçamento: Endereçamento Real
Memória Virtual
Espaço de
Endereçamento Virtual
Mapeamento
Estrutura Vetorial
Memória
Secundária
Pearson Education
23
Sistemas Operacionais Modernos – 2ª Edição
24. Memória Virtual
Mapeamento:
Realizado por hardware + S.O. nos sistemas atuais,
através da MMU (Memory Management Unit -
Unidade de Gerenciamento de Memória).
Cada processo com uma tabela de mapeamento
própria.
No momento da execução, o endereço virtual é
mapeado para o endereço físico, pois o processador
só acessa endereços do espaço real;
Nas trocas de contexto, um registrador é
responsável por indicar qual a tabela que deve ser
utilizada.
Pearson Education
24
Sistemas Operacionais Modernos – 2ª Edição
25. Memória Virtual
Memória Principal
Espaço de
Paginação: Endereçamento Real
Espaço Virtual
do Processo A Tabela de
Páginas de A
Memória Virtual
Espaço Virtual
Tabela de
do Processo B
Páginas de B
Memória Page In
Secundária
Page Fault
Pearson Education
25
Sistemas Operacionais Modernos – 2ª Edição
26. Memória Virtual
Localização e função da MMU
(Memory Management Unit)
Pearson Education
26
Sistemas Operacionais Modernos – 2ª Edição
27. Memória Virtual
Memória Virtual por Paginação:
Memória Virtual e Real divididas em blocos de
mesmo tamanho (páginas);
Páginas virtuais;
Páginas reais ou frames;
As tabelas de páginas mapeiam os blocos de
informações:
Quanto maior o bloco, menor o tamanho das
tabelas;
Quanto maior o bloco, maior o tempo de
transferência do bloco entre memória principal e
secundária.
Pearson Education
27
Sistemas Operacionais Modernos – 2ª Edição
28. Memória Virtual
Memória Virtual por Paginação:
Endereço Virtual = Nº da página virtual +
deslocamento;
Um bit de validade (na tabela de páginas) indica se
a página já se encontra na memória principal ou
não.
Taxa de Paginação = Nº de Page Fault em um
intervalo de tempo.
Quando ocorre um page fault, o processo em
questão passa ao estado de espera.
Pearson Education
28
Sistemas Operacionais Modernos – 2ª Edição
29. Memória Virtual
Endereçamento Virtual:
Memória Principal
Espaço de
Espaço Virtual Endereçamento Real
do Processo A
Memória Virtual
Página virtual deslocamento
1 203
... ...
2 067
Endereço
Físico
Tabela de 2 203
Páginas de A
Memória Page In
Validade End. do Frame
Secundária
1 2
0 -- SO29
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
30. Memória Virtual
Paginação
A relação entre
endereços
virtuais e
endereços físicos
de memória dada
pela tabela de
páginas
Pearson Education
30
Sistemas Operacionais Modernos – 2ª Edição
31. Tabelas de Páginas
Operação interna
de uma MMU
com 16 páginas
de 4KB
Pearson Education
31
Sistemas Operacionais Modernos – 2ª Edição
32. Tabelas de Páginas
Entrada típica de uma tabela de
páginas
Pearson Education
32
Sistemas Operacionais Modernos – 2ª Edição
33. Tabelas de Páginas
Tabelas de páginas muito grandes
podem ser inviáveis
Se armazenadas na MMU ocupariam
muito espaço;
Se mantidas em memória, degradariam
o acesso à memória.
Uma das soluções é a utilização de
tabelas de páginas em níveis.
Pearson Education
33
Sistemas Operacionais Modernos – 2ª Edição
34. Tabelas de Páginas
Endereço de 32 bits
com 2 campos para
endereçamento de
tabelas de páginas
Tabelas de páginas
com 2 níveis
Tabelas de páginas
podem existir com
diversos níveis, mas
não é comprovada a
eficiência de tabelas
com mais de três
níveis.
Pearson Education
34
Sistemas Operacionais Modernos – 2ª Edição
35. Memória Associativa ou TLB
TLB (translation lookaside buffer)
para acelerar a paginação
Pearson Education
35
Sistemas Operacionais Modernos – 2ª Edição
36. Algoritmos de
Substituição de Páginas
A falta de página força uma escolha
Qual página deve ser removida para que seja
possível a alocação de espaço para a página a ser
trazida para a memória?
Se a página escolhida foi modificada, deve
primeiro ser salva
se não tiver sido modificada é apenas sobreposta
Melhor não escolher uma página que está sendo
muito usada
provavelmente ela precisará ser trazida de volta em
pouco tempo
Pearson Education
36
Sistemas Operacionais Modernos – 2ª Edição
37. O Algoritmo Ótimo
Substitui a página necessária o mais
tarde possível
ótimo mas não realizável
Estimada através do registro do uso
das páginas em execuções
anteriores
Pearson Education
37
Sistemas Operacionais Modernos – 2ª Edição
38. Algoritmo NUR
Não Usada Recentemente
Cada página tem os bits Referenciada (R)
e Modificada (M)
Bits são colocados em 1 quando a página é
referenciada e modificada
As páginas são classificadas
Classe 0: não referenciada, não modificada
Classe 1: não referenciada, modificada
Classe 2: referenciada, não modificada
Classe 3: referenciada, modificada
NUR remove página aleatoriamente da
classe de ordem mais baixa que não
estiver vazia
Pearson Education
38
Sistemas Operacionais Modernos – 2ª Edição
39. Algoritmo FIFO
Mantém uma lista encadeada de todas as
páginas
A página mais antiga é colocada no início da
lista
A página que chegou por último é colocada no
final da lista
Na ocorrência de page fault
A página no início da lista é removida
A nova página é adicionada no final da lista
Desvantagem
A página há mais tempo na memória pode
estar sendo utilizada com muita freqüência
Pearson Education
39
Sistemas Operacionais Modernos – 2ª Edição
40. Algoritmo de Substituição de Página
Segunda Chance (SC)
Operação do algoritmo segunda chance
Listas de páginas em ordem FIFO
Exemplo: estado da lista em situação de page fault no
instante 20, com o bit de Referenciação da página A em 1
(números representam instantes de carregamento das
páginas na memória)
Pearson Education
40
Sistemas Operacionais Modernos – 2ª Edição
42. Menos Recentemente
Usada (MRU)
Assume que páginas usadas recentemente logo
serão usadas novamente
Retira da memória as páginas que há mais tempo
não são utilizadas
Uma lista encadeada de páginas deve ser mantida
A página mais recentemente usada no início da
lista, a menos usada no final da lista
A atualização da lista deve ser feita a cada
referência à memória
Alternativamente manter contador em cada
entrada da tabela de página
Escolhe página com contador de menor valor
Zera o contador periodicamente
Pearson Education
42
Sistemas Operacionais Modernos – 2ª Edição
43. O Algoritmo de Substituição de
Página do Conjunto de Trabalho
O algoritmo do conjunto de trabalho
Pearson Education
43
Sistemas Operacionais Modernos – 2ª Edição
44. O Algoritmo de Substituição
de Página WSClock
Operação
do Algoritmo
WSClock
Pearson Education
44
Sistemas Operacionais Modernos – 2ª Edição
45. Políticas de
Substituição de Páginas:
Seleção de qual, entre as diversas páginas
alocadas deve ser liberada.
Necessidade de verificação se a página foi
alterada (bit de modificação)
No caso da página liberada tiver sofrido
modificação, esta deverá antes ser gravada no
Arquivo de Paginação (page out).
Note que as páginas de código não podem ser
modificadas, logo não sofrem page out.
Pearson Education
45
Sistemas Operacionais Modernos – 2ª Edição
46. Políticas de
Substituição de Páginas:
Política de Substituição Local:
Apenas as páginas do processo que gerou o page
fault são candidatas à relocação.
Política de Substituição Global:
Todas as páginas de todos os processos são
candidatas à relocação.
Algumas páginas nunca são candidatas à relocação,
como por exemplo as do núcleo do S.O.
Pearson Education
46
Sistemas Operacionais Modernos – 2ª Edição
47. Políticas de
Busca de Páginas
Determinação de quando uma página deve ser
carregada para a memória.
Paginação por demanda:
Transferência de páginas para memória principal
quando são referenciadas.
Apenas as páginas necessárias são transferidas.
Paginação antecipada:
Além da página referenciada, são carregadas
outras páginas que também podem (ou não) ser
referenciadas futuramente.
Economia de tempo na cópia do conjunto de
páginas.
Risco de trabalho desnecessário.
Pearson Education
47
Sistemas Operacionais Modernos – 2ª Edição
48. Políticas de
Alocação de Páginas:
Determina quantos frames cada processo pode
manter na memória principal.
Alocação Fixa:
Número máximo de frames (páginas) por processo.
Caso o limite seja atingido, alguma página deve ser
descartada.
O limite de páginas é determinado na criação do
processo.
Limite de páginas mal dimensionado:
Se for pequeno:
Muitos page faults;
Degradação do sistema;
Se for grande:
Espaço ocupado maior que o necessário;
Reduz o grau de multiprogramação.
Pearson Education
48
Sistemas Operacionais Modernos – 2ª Edição
49. Políticas de
Alocação de Páginas:
Alocação Variável:
O número máximo de frames de um processo
pode variar em função de sua taxa de
paginação.
Processos com alta taxa de paginação podem
aumentar o seu limite máximo de frames.
Processos com baixa taxa de paginação
podem ter os seus limites máximos de frames
reduzido.
Pearson Education
49
Sistemas Operacionais Modernos – 2ª Edição
50. Políticas de Alocação X
Políticas de Substituição
Relacionamento entre as Políticas de Alocação e
Políticas de Substituição de páginas.
Alocação Fixa:
Substituição Local.
Alocação Variável:
Substituição Global.
Substituição Local.
O SO avalia a taxa de paginação de um processo e altera
o seu limite máximo de frames.
Pearson Education
50
Sistemas Operacionais Modernos – 2ª Edição
51. Considerações sobre
Tamanho de Página
Tamanho de página pequeno
Vantagens
Menos fragmentação interna
Menos programa não usados na memória
Desvantagens
Os programas precisam de mais páginas,
tabelas de página maiores...
Pearson Education
51
Sistemas Operacionais Modernos – 2ª Edição
52. Política de Limpeza
Processo que executa em background, um
daemon de paginação
Inspeciona periodicamente o estado da
memória
Quando apenas algumas molduras de
página estão disponíveis
Seleciona páginas a serem removidas usando
um algoritmo de substituição
Pearson Education
52
Sistemas Operacionais Modernos – 2ª Edição
53. Espaços Separados de
Instruções e Dados
Espaço de endereçamento único
X
Espaços separados de instruções (I) e
dados (D)
Pearson Education
53
Sistemas Operacionais Modernos – 2ª Edição
54. Páginas Compartilhadas
Dois processos que
compartilham o
mesmo código de
programa e, por
conseqüência, a
mesma tabela de
páginas para
instruções
Pearson Education
54
Sistemas Operacionais Modernos – 2ª Edição
55. Segmentação
Espaço de
endereçamento
unidimensional
com tabelas
crescentes
Uma tabela pode
atingir outra
Pearson Education
55
Sistemas Operacionais Modernos – 2ª Edição
56. Segmentação
Permite que cada tabela cresça ou
encolha, independentemente
Pearson Education
56
Sistemas Operacionais Modernos – 2ª Edição
57. Implementação de
Segmentação Pura
(a)-(d) Desenvolvimento de fragmentação externa
(e) Remoção da fragmentação via compactação
Pearson Education
57
Sistemas Operacionais Modernos – 2ª Edição
58. Segmentação
Memória principal
Programa Segmento; S.O.
Var A: array...
C: ... Procedimento X
Programa Principal
Procedimento X;
... Função Y
End;
Function Y; Array A
... programa A
End;
Variável C
Begin
...
End. ...
Pearson Education
58
Sistemas Operacionais Modernos – 2ª Edição
59. Segmentação
A Segmentação possui funcionamento análogo à
Paginação.
Mapeamento:
Os segmentos são mapeados através da
tabela de mapeamento de segmento (TMS);
O Endereço virtual é formado pelo:
Número do segmento;
Deslocamento dentro do segmento;
Pearson Education
59
Sistemas Operacionais Modernos – 2ª Edição
60. Segmentação com Paginação
Técnica onde os processos são divididos
logicamente em Segmentos e cada segmento é
dividido fisicamente em Páginas.
Endereço virtual é formado por:
Número do segmento;
Número de página dentro do segmento;
Deslocamento dentro da página.
Pearson Education
60
Sistemas Operacionais Modernos – 2ª Edição