SlideShare ist ein Scribd-Unternehmen logo
1 von 75
Downloaden Sie, um offline zu lesen
Sistemas operacionais modernos - Terceira edição
ANDREW S. TANENBAUM
Capítulo 3
Gerenciamento de
memória
Adaptado por:
Prof. Esp. Rodrigo Ronner
rodrigoronner@gmail.com
http://rodrigoronner.blogspot.com
Introdução
• Programas tendem a se expandir a fim de ocupar toda
a memória disponível;
• Programador deseja memória infinitamente grande,
rápida e não volátil;
• Por questões de preço, opta-se por utilizar uma hierarquia
de memória;
• Gerenciador de memória deve gerenciá-la de modo
eficiente;
• A multiprogramação implica em manter-se vários
processos em memória;
• A memória necessita ser alocada de forma eficiente
para permitir o máximo possível de processos;
• Existem diferentes técnicas para gerência de memória,
que dependem do hardware do processador.
Introdução
• Considerações:
– Recurso caro e escasso;
– Programas só executam se estiverem na memória principal;
– Quanto mais processos residentes na memória principal,
melhor será o compartilhamento do processador;
– Necessidade de uso otimizado;
– O S.O. não deve ocupar muita memória;
“É um dos fatores mais importantes em um projeto de S.O.”
Introdução
Considerações gerais
 Um sistema de memória possui pelo menos dois níveis
Memória principal: acessada pela CPU
Memória secundária: discos
 Programas são armazenados em disco
Executar um programa se traduz em transferi-lo da memória
secundária à memória primária
 Qualquer sistema operacional tem gerência de memória
Monotarefa: gerência é simples
Multitarefa: complexa
Introdução
 A memória divide-se em camadas:
■ Memória principal
● Relativamente cara
● Capacidade relativamente pequena
● Alto desempenho
■ Armazenamento secundário
■ Barato
■ Grande capacidade
■ Baixo desempenho
■ A memória principal precisa ser gerenciada
com cuidado.
Introdução
Hierarquia de memória.
Introdução
 A memória pode ser organizada de diferentes formas:
■ Um processo usa todo o espaço de memória.
■ Cada processo obtém uma partição na memória.
● Alocada dinâmica ou estaticamente.
 Tendência: a necessidade de memória das aplicações
tende a aumentar ao longo do tempo para atender à
capacidade de memória principal.
Introdução
 Estratégias para obter um desempenho
de memória ideal:
■ Gerenciamento executado por um gerenciador
de memória
● Que processo permanecerá na memória?
● A que quantidade de memória cada processo tem
acesso?
● Onde cada processo ficará na memória?
Introdução
 Memória principal
■ Deve armazenar apenas instruções de programa
necessárias no momento e dados.
 Armazenamento secundário
■ Armazena dados e programas que não são
constantemente necessários.
 Memória cache
■ Sua velocidade é extremamente alta.
■ Normalmente se localiza no próprio processador.
■ Os dados mais comumente usados são copiados para o
cache para que possam ser acessados mais
rapidamente.
■ Uma pequena quantidade de cache é suficiente para
melhorar o desempenho.
● Isso se deve à localidade temporal.
Introdução
Formas antigas de alocação
(particionamento da RAM)
•Alocação contígua simples (monoprogramação)
–Usa toda a memória livre como um bloco único
•Alocação particionada (multiprogramação)
–Estática (ou de partições fixas)
• Vários blocos de tamanhos predefinidos
• Pode ser:
–Absoluta
–Relocável
–Dinâmica (ou de partições variáveis)
• Não usa o conceito de blocos
• Aloca processos de forma adjacente
•Gerenciador de memória: controla particionamento da RAM
–Quais partes estão alocadas para processos em execução?
–Quais partes estão livres para novos processos?
Sem abstração de memória
• Cada programa simplesmente considera a memória física.
• 3 modelos de organização:
• ( a ) Antigos computadores de grande porte
• ( b ) Sistemas embarcados
• ( c ) primeiros computadores pessoais com MS-DOS
Abstração de memória: espaço de endereçamento
Desvantagens da exposição da memória física:
• Danos intencionais ou acidentais
• Difícil executar múltiplos programas simultaneamente
Solução
• Espaço de endereçamento, ou seja, conjunto de endereços que
um processo pode usar para endereçar a memória
Registrador-base e limite
• Utilizados em versões simples da
realocação dinâmica
• Limitam o endereçamento de um processo
Troca de memória
• Quantidade de RAM p/ todos os processos > memória pode comportar
• Solução:
• Swapping
• Memória virtual
• Alocação e desalocação de processos criam “buracos” na memória
• Podem ser combinados com a compactação de memória
OBS: Não usada em virtude do tempo de processamento gasto
• Tamanho do espaço de locação
• Se o processo possui tamanho fixo e Inalterável = alocação é simples, SO
Alocará exatamente aquilo que é necessário, nem mais nem menos.
• Se processo possui tamanho variável = alocação extra é uma boa
idéia.
Obs: Processos tendem a crescer, caso próximo espaço esteja ocupado
Deverá ser movido para outro endereço o comporte.
Troca de memória
• 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
Troca de memória
a) Alocação de espaço para uma área de dados em expansão.
b) Alocação de espaço para uma pilha e uma área de dados, ambos em expansão.
Gerenciando a Memória Livre
• Mapa de bits
• Tamanho da unidade de locação é inversamente proporcional ao
tamanho do mapa de bits;
• Unidade grande = muita memória desperdiçada;
• Simples;
• Problema para encontrar sequência de bits livres (busca muito lenta);
Quando a memória é atribuída dinamicamente, o sistema operacional
deve gerenciá-la. De modo geral há dois modos de verificar a utilização
Da memória: mapas de bits e listas encadeadas.
•Lista encadeada
• Lista com posições de memória livre e ocupada
Gerenciamento de memória com mapa de
bits
Gerenciando a Memória Livre
• Lista encadeada
• Lista com posições de memória livre
• Algoritmos de busca usados:
• First fit (primeiro encaixe)
• Next fit (próximo encaixe)
• Best fit (melhor encaixe)
• Mais lento
• Desperdiça mais memória
• Worst fit (pior encaixe)
• Pesquisas mostram não ser uma boa idéia
• Todos os 4 poderiam ser mais rápidos se houvessem listas
separadas para segmentos livres e segmentos ocupado de
memória.
• Quick fit (encaixe mais rápido)
• Mantém listas separadas p/ alguns tamanhos de memória
mais solicitados.
Algoritmo da primeira alocação (first fit)
• Procura-se pelo primeiro espaço na lista o
suficientemente grande para armazenar o processo
• É um algoritmo rápido pois ele gasta o tempo mínimo
em procura
• Se o processo não ocupa todo o espaço o restante é
disponibilizado como buraco na lista
• A pesquisa por espaço sempre inicia na parte baixa de
memória, independentemente dos locais escolhidos
para alocar os dados
Algoritmo da próxima alocação (next fit)
• Semelhante ao first-fit
• Funciona da mesma maneira que o algoritmo first fit, exceto pelo fato
de sempre memorizar a posição em que encontra um segmento de
memória disponível de tamanho suficiente.
• Quando o algoritmo next fit torna a ser chamado para encontrar um
novo segmento de memória livre, ele inicializará sua busca a partir
desse ponto, em vez de procurar sempre a partir do início da lista, tal
como faz algoritmo first fit.
• Simulações feitas por Bays (1977) mostraram que o algoritmo next fit
fornece um desempenho ligeiramente inferior ao do algoritmo first fit.
Algoritmo da melhor alocação (best fit)
• Busca em toda a lista o espaço cujo o tamanho
seja o mais próximo possível do tamanho do
processo
• Este algoritmo é mais lento que o anterior
pois precisa pesquisar em toda a lista para
descobrir qual a melhor opção
Algoritmo da pior alocação (worst fit)
• Procura pelo maior espaço capaz de
armazenar o processo, de tal forma que o
espaço restante seja grande o suficiente para
armazenar outro processo.
Algoritmo Rápido(Quick Fit)
• Quick Fit (O que mais rápido couber)
• Mantém lista separada para alguns tamanhos
de segmentos disponíveis;
• Em geral os tamanhos mais solicitados.
Exercícios
1. Considere as estratégias para escolha da partição dinamicamente, conceitue as estratégias best-
fit e worst-fit especificando prós e contras de cada uma.
2. Pra que servem os registradores base e limite?
3. Qual a principal diferença entre o modelo de multiprogramação com partições fixas e o modelo
de multiprogramação com troca de processos.
4. Qual a principal desvantagem do gerenciamento de memória com mapa de bits?
5. Diferencie os algoritmos first fit e next fit.
6. O algoritmo best fit sempre busca o melhor espaço livre que suporte a alocação do processo. Por
esta razão é um dos algoritmos que melhor aproveita os espaços de endereçamento. Verdadeiro ou
Falso. Justifique.
7. Quais as dificuldades de se trabalhar com listas encadeadas de unidades de memória livres e
ocupadas separadas?
8. Quais são as principais dificuldades encontradas para gerenciar uma memória sem abstração?
9. Considere um sistema com swapping, no qual as seguintes partições vazia de tamanho fixo estão
na memória, nas ordem apresentada: 20K, 14K, 35K, 8K, 17K, 39K, 22K, e 27K. Se um processo
solicitar a alocação de uma área de memória de 21K, o algoritmo de alocação de memória que faz
alocação minimizando a fragmentação interna é
A. Next-Fit
B. First-Fit
C. Worst-Fit
D. Best-Fit
E. Quick-Fit
Memória virtual - paginação
• Tamanho dos softwares aumenta mais rápido que o tamanho das memórias;
• Processo é dividido em Páginas;
• Unidades de Endereçamento Virtual = Páginas;
• Unidades de Memória Física = Molduras de Página;
• A Memória é dividida em Molduras (ou Frames) de mesmo tamanho;
• Páginas/Molduras são de pequeno tamanho (e.g., 1K);
• Processo não precisa ocupar área contígua em memória;
• Processo não precisa estar completamente na MP;
• MMU - Mapeia endereços virtuais em endereços físicos.
Memória virtual - paginação
Paginação: Como Funciona?
• Para minimizar a informação necessária à conversão, a memória virtual é
logicamente dividida em páginas
– Endereço virtual = (no da página , deslocamento)
– São necessários 4 bits para referenciar todas as 16 páginas do processo
• End. virtual = (no da página [4 bits] , deslocamento [16 – 4 bits])
– Instrução MOV REG, 0
• O end. virtual 0 é enviado à MMU
• No exemplo seguinte (end. virtuais de 16 bits=> processos de até 64k;
memória física de 32k; páginas/molduras de 4k)
• Ela detecta que esse end. virtual situa-se na página virtual 0 (de 0 a 4095) que, de acordo
com o seu mapeamento, corresponde à moldura de página 2 (end. físicos de 8192 – 12287
Memória virtual - paginação
• Exemplo
– Computador capaz de gerar
endereços virtuais de 16
bits (0 -> 64k).
– Memória física de apenas
32k => programas não
podem ser carregados por
completo na memória física
– Solução: dividir o
programa em Páginas
Paginação: Como Funciona?
• MOV REG, 20500
– Qual é a página?
• Pag. 5, que contém os endereços de 20k (20480) até 24k-1 (24575)
– Esta página está em qual moldura?
• Na moldura 3, que contém end. Físicos de 12k (12288) a 16k-1
(16384)
– Qual o deslocamento do endereço 20500
dentro da página?
• Desl. = End. virtual – End. virtual do 1 byte da página
• = 20500 – 20480= 20
– Qual será o endereço físico
correspondendo ao end. virt. 20500?
• = End. do 1o byte da moldura + desloca
• = 12288 + 20 = 12308
Deslocamento: é a posição do byte dentro do segmento.
• Uma tabela de páginas armazena mapeamento de memória.
– A tabela diz quais páginas estão na memória física.
– A tabela é armazenada na MMU da UCP.
• O conteúdo da tabela de páginas depende do mecanismo de
paginação.
– Numero do frame, bits de proteção, modificação, referência,
18
Paginação: Como Funciona?
• Tabela de Páginas: 32 bits
Número da Moldura de Página
Identifica a página virtual;
Campo mais importante;
34
Gerenciamento de Memória Memória
Virtual
• Tabela de Páginas: 32 bits
Número da Moldura de Página
Bit de Residência:
Se valor igual 1, então entrada válida para uso;
Se valor igual 0, então entrada inválida, pois
página virtual correspondente não está na memória;
35
Gerenciamento de Memória Memória
Virtual
• Tabela de Páginas: 32 bits
Número da Moldura de Página
Bits de Proteção:
Indicam tipos de acessos permitidos:
1 bit  0 – leitura/escrita
1 – leitura
3 bits  0 – Leitura
1 – Escrita
2 - Execução
36
Gerenciamento de Memória Memória
Virtual
• Tabela de Páginas: 32 bits
Número da Moldura de Página
Bit de Modificação:
Controla o uso da página;
Se valor igual a 1, página foi escrita;
página é copiada para o disco
Se valor igual a 0, página não foi modificada;
página não é copiada para o disco;
37
Gerenciamento de Memória Memória
Virtual
• Tabela de Páginas: 32 bits
Número da Moldura de Página
Bit de Referência:
Controla o uso da página;
Auxilia o SO na escolha da página que deve deixar a MP;
Se valor igual a 1, página foi referenciada (leitura/escrita);
Se valor igual a 0, página não referenciada;
38
Gerenciamento de Memória Memória
Virtual
• Tabela de Páginas: 32 bits
Número da Moldura de Página
Bit de Cache:
Permite desabilitar o uso da memória Cache;
Paginação: Como Funciona?
• Cada processo tem sua Tabela de Páginas;
• Tabela de Páginas faz o mapeamento página x moldura;
• Tabela de páginas pode estar só parcialmente na MP.
Paginação: Como Funciona?
• O que acontece se o programa faz um acesso a uma página
que não está mapeada na memória?
– Ocorre uma Page Fault => a MMU força uma interrupção;
• Ação do S.O.
– Escolher uma página pouco usada, que encontra-se em alguma moldura da memória principal;
– Salvar esta página no disco (caso ela tenha sido modificada);
– Carregar a página virtual referenciada pela instrução na moldura recém liberada;
– Atualizar o mapeamento da tabela de páginas e reiniciar a instrução causadora da interrupção;
Acelerando a paginação
Problemas na implementação da paginação:
• O mapeamento do endereço virtual para o endereço físico deve
ser rápido;
• Se o espaço virtual for grande, a tabela de páginas será grande;
• Endereços virtuais hoje: 32bits, 64bits;
• Cada processo precisa sua tabela.
Buffers para Tradução de Endereços - TLB
• Mapeia endereços físicos sem passar pela tabela de páginas
• Apenas endereços mais usados
Localizado na MMU
Numero pequeno de entradas-8
Entrada contém info da página
Semelhante a TP
Ex: loop referenciando 19,20,21
Dados : 129, 130
Indices : 140
Pilha : 860 e 861
Quando EV é apresentado a
MMU, verifica se página esta
presente e o acesso é válido.
Gerenciamento da TLB por software
• TLB feita pelo SO e não por hardware
• TLB grande = eficiência da TLB por software aceitável, com
MMU simples com > área no CPU p/ outros recursos
• Estratégias p/ melhorar o desempenho
- SO usa intuição para descobrir páginas usadas e antecipar
carregamento.
• Ausência na TLB
- Soft miss (ausência leve)
- Hard miss (ausência completa)
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.
Tabela de Página
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
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.
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.
Tabela de Páginas de dois níveis
Endereço de 32 bits
E.E.V. = 4 GB
0
1
2
3
4
5
1023
Tabela de páginas
de nível 2
Tabela de
páginas para
os 4MB do
topo da
memória
(pilha)
PT1 PT2
Deslocamento
10 10 12 Bits
...
...
0
1
2
3
4
5
1023
Tabela de
páginas
de nível 1
(Código do
Programa)
(Dados do
Programa)
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
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
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
Fragmentação Interna
• Problema da alocação fixa é uso ineficiente da memória principal;
• Um processo, não importando quão pequeno seja, ocupa uma partição inteira;
• A fragmentação interna ocorre quando uma parte da memória é perdida devido a
memória alocada a um processo ser maior que a solicitada, causando uma diferença
de tamanho, e esta diferença ficará inutilizável entre os blocos de memória até que o
processo termine.
Fragmentação externa
• A execução de processos pode criar pedaços livres de memória;
• Pode haver memória disponível, mas não contígua;
• A fragmentação externa acontece quando há falta de espaço
contíguo na memória, apesar de haver espaço total suficiente na
memória.
Fragmentação externa
Soluções possíveis fragmentação externa
• Reunir espaços adjacentes de memória
• Empregar compactação
• Relocar as partições de forma a eliminar os espaços entre elas e criando uma
área contígua
Desvantagem:
• Consumo do processador
• Acesso a disco
Acionado somente quando ocorre fragmentação
Necessidade de código relocável
Exercícios
1. O que é falta de página?
2. Qual a função da TLB?
3. Diferencie soft miss e hard miss.
4. Como funciona a tabela de páginas multinível?
5. Explique como acontece Fragmentação Interna
e externa, exemplifique?
Algoritmos de Substituição de Páginas
• A falta de página força uma escolha
- qual página deve ser removida?
- alocação de espaço para a página a ser trazida para a
memória
• A página 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 precisará ser trazida de volta logo
slide 26 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
Algoritmo de substituição de páginas
• Algoritmo ótimo de substituição de página.
• Algoritmo de substituição de página não usado recentemente.
• Algoritmo de substituição de página primeiro a entrar, primeiro
a sair.
• Algoritmo de substituição de página segunda chance.
• Algoritmo de substituição de página de relógio.
• Algoritmo de substituição de página usado menos
recentemente.
• Algoritmo de substituição de página de conjunto de trabalho.
• Algoritmo de substituição de página WSClock.
Algoritmo de Substituição de Páginas Ótimo
• Se uma página será usada após 10000
instruções, e outra após 5000, a primeira deve
ser substituída numa falta de página;
• Problema: não há como o SO saber quando
uma página será novamente acessada;
• E se a próxima instrução for para acessar a
primeira página citada acima?
• Algoritmo impossível de ser implementado.
slide 28 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
O Algoritmo de Substituição de Página
Não Usada Recentemente (NUR)
slide 29 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
• A escolha da página que não foi recentemente utilizada
(not-recently-used) é bastante semelhante ao esquema LRU.
• Existe um flag, que permite ao sistema a implementação do
algoritmo.
• O flag de referência indica quando a página foi referenciada
ou não, e está associado a cada entrada na tabela de páginas.
• Inicialmente, todas as páginas estão com o flag indicando
que não foram referenciadas (0).
• À medida que as páginas são referenciadas, o flag associado
a cada página é modificado pelo hardware (1).
• Depois de um certo tempo, é possível saber quais páginas
foram referenciadas ou não.
Algoritmo de Substituição de Página
Primeira a Entrar, Primeira a Sair
• Mantém uma lista encadeada de todas as páginas
- página mais antiga na cabeça da lista
- página que chegou por último na memória no final da lista
• Na ocorrência de falta de página
• página na cabeça da lista é removida
• nova página adicionada no final da lista
• Desvantagem
- página há mais tempo na memória pode ser usada com
muita freqüência
• Raramente usado em sua configuração pura
slide 31 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
Thrashing
• Se um processo tem poucas páginas, sua taxa
de page faults é alta. Isto ocasiona:
– Má utilização da CPU
• Thrashing  processo gasta mais tempo
fazendo swap in e swap out de páginas do que
realizando suas operações
Thrashing
Aumentando o número de processos na memória, diminui o número de páginas
físicas que cada um recebe. O funcionamento do sistema pode chegar a um ponto
em que a UCP não tem o que executar, pois todos os processos ficam bloqueados
esperando por busca de página no disco.
Exercícios
1. Porque o algoritmo ótimo de substituição de página não pode ser
implementado na prática?
2. Diferencie o algoritmo de substituição de página não usado
recentemente e o algoritmo de substituição de página menos
usado recentemente.
3. Qual o principal problema encontrado no algoritmo de
substituição de página primeiro a entrar, primeiro a sair?
4. Como funciona o algoritmo de substituição de página segunda
chance?
5. Explique o funcionamento do algoritmo de substituição de página
de conjunto de trabalho.
slide 47 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
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.
• Em alguns casos ter 2 ou mais espaços de
endereçamento separados é melhor do que ter apenas 1
• Exemplo: Um compilador tem muitas tabelas que são
construídas conforme a compilação ocorre, possivelmente
incluindo:
• O código-fonte sendo salvo para impressão (em sistema em
lotes).
• A tabela de símbolos - os nomes e atributos das variáveis.
• A tabela com todas as constantes usadas, inteiras e em ponto
flutuante.
• A árvore sintática, a análise sintática do programa.
• A pilha usada pelas chamadas de rotina dentro do compilador.
• A memória virtual discutida até agora é unidimensional
porque o endereçamento Virtual vai de 0 a alguma
endereço máximo, um após o outro.
Memória Virtual por Segmentação
• Em um endereçamento único, podemos chegar em uma situação
onde haverá entradas livres para determinada tabela e espaço
esgotado para outros.
Memória Virtual por Segmentação
• 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
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
• 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
• 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
Segmentação
Linux em 32 bits
• Na arquitetura x86 de 32 bits, o Linux pode endereçar até 4 GiB de
memória virtual. Este espaço é dividido em dois: o espaço do núcleo
(kernel space) e o espaço do usuário (user space).
• O primeiro é único e protegido das aplicações comuns, e armazena,
além do próprio código do núcleo, uma estrutura que descreve toda a
memória física; este espaço é limitado a um gibibyte (1024 MiB).
• Cada aplicação recebe um espaço de endereçamento de até 3 GB para
armazenar o código e os dados do programa.
• Caso a memória física seja menor do que a necessária para conter
todas as aplicações, o Linux pode alocar espaço em meios de
armazenamento diversos (disco rígido, dispositivo de rede e outros).
Este espaço é tradicionalmente conhecido como espaço de troca (swap
space), embora o mecanismo adotado seja a paginação.
Estudo de Caso: Windows e Linux
Windows em 32 bits
• Analogamente ao Linux, as versões atuais do Windows de 32
bits usam um espaço de endereçamento de 4 GB divididos
em duas partes. Por padrão, o Windows reserva 2 GB para o
núcleo e permite que cada aplicação use até 2 GB.
• Entretanto, é possível alterar essa configuração, e permitir
que uma aplicação use até 3 GB. Neste caso, obviamente, o
espaço do núcleo será reduzido para um GB.
• Diferentemente do Linux, o Windows usa apenas arquivos
para paginação (paging files).
• Pode usar até 16 desses arquivos, e cada um pode ocupar até
4095 MiB de espaço em disco.
Estudo de Caso: Windows e Linux
Exercícios
1. Explique com suas palavras o tratamento de falta
de página
2. O que é retenção de página?
3. Diferencie os tipos de mapeamentos na memória
secundária.
4. Qual a vantagem de existir a segmentação?
5. Na sua opinião, quem é melhor: segmentação ou
paginação

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Process management in operating system | process states | PCB | FORK() | Zomb...
Process management in operating system | process states | PCB | FORK() | Zomb...Process management in operating system | process states | PCB | FORK() | Zomb...
Process management in operating system | process states | PCB | FORK() | Zomb...Shivam Mitra
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadoresPimentel
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSCleber Ramos
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoriaguestaff6d2
 
Gerencia de Memoria Virtual
Gerencia de Memoria VirtualGerencia de Memoria Virtual
Gerencia de Memoria VirtualGabriela Almeida
 
Process Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionProcess Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionShivam Mitra
 
2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoria2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoriaComputação Depressão
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisMauro Duarte
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de HardwareMiguel Correia
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamentocamila_seixas
 

Was ist angesagt? (20)

Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Process management in operating system | process states | PCB | FORK() | Zomb...
Process management in operating system | process states | PCB | FORK() | Zomb...Process management in operating system | process states | PCB | FORK() | Zomb...
Process management in operating system | process states | PCB | FORK() | Zomb...
 
SO-09 Entrada e Saída: Hardware
SO-09 Entrada e Saída: HardwareSO-09 Entrada e Saída: Hardware
SO-09 Entrada e Saída: Hardware
 
Aula 5 bios
Aula 5 biosAula 5 bios
Aula 5 bios
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Aula 5 manipulacao de arquivos e pastas
Aula 5   manipulacao de arquivos e pastasAula 5   manipulacao de arquivos e pastas
Aula 5 manipulacao de arquivos e pastas
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Sistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFSSistemas de Arquivos FAT x NTFS
Sistemas de Arquivos FAT x NTFS
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Gerencia de Memoria Virtual
Gerencia de Memoria VirtualGerencia de Memoria Virtual
Gerencia de Memoria Virtual
 
Process Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionProcess Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race condition
 
2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoria2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoria
 
NUMA overview
NUMA overviewNUMA overview
NUMA overview
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 

Ähnlich wie Gerenciamento de memória cap 03 (ii unidade)

Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria37193694
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memóriaelliando dias
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualMauro Melo
 
Resumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosResumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosJoo200
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSilvano Oliveira
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoriaJailson Silva
 
Memória Virtual - Aspectos Básicos
Memória Virtual - Aspectos BásicosMemória Virtual - Aspectos Básicos
Memória Virtual - Aspectos Básicosblumenschein
 
Memoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoMemoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoErichBraganca
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoriaCarlos Melo
 

Ähnlich wie Gerenciamento de memória cap 03 (ii unidade) (20)

Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memória
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Gestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptxGestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptx
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Resumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosResumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicos
 
Gerenciamento memoria
Gerenciamento memoriaGerenciamento memoria
Gerenciamento memoria
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdfSO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
SO03 - Sistemas-Operacionais - Gerencia de Memoria.pdf
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Memória Virtual - Aspectos Básicos
Memória Virtual - Aspectos BásicosMemória Virtual - Aspectos Básicos
Memória Virtual - Aspectos Básicos
 
Aula 04 instalação de hardware
Aula 04 instalação de hardwareAula 04 instalação de hardware
Aula 04 instalação de hardware
 
Memoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoMemoria Virtual - Gerenciamento
Memoria Virtual - Gerenciamento
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoria
 
memorias
memoriasmemorias
memorias
 
S.o aula 2324
S.o aula 2324S.o aula 2324
S.o aula 2324
 

Mehr von Faculdade Mater Christi

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)Faculdade Mater Christi
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)Faculdade Mater Christi
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)Faculdade Mater Christi
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)Faculdade Mater Christi
 
Capítulo 10 detecção e correção de erros
Capítulo 10   detecção e correção de errosCapítulo 10   detecção e correção de erros
Capítulo 10 detecção e correção de errosFaculdade Mater Christi
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processosFaculdade Mater Christi
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógicoFaculdade Mater Christi
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuaisFaculdade Mater Christi
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocolFaculdade Mater Christi
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Faculdade Mater Christi
 

Mehr von Faculdade Mater Christi (15)

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)
 
Capítulo 10 detecção e correção de erros
Capítulo 10   detecção e correção de errosCapítulo 10   detecção e correção de erros
Capítulo 10 detecção e correção de erros
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Capítulo 2 modelos de redes
Capítulo 2   modelos de redesCapítulo 2   modelos de redes
Capítulo 2 modelos de redes
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocol
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 

Gerenciamento de memória cap 03 (ii unidade)

  • 1. Sistemas operacionais modernos - Terceira edição ANDREW S. TANENBAUM Capítulo 3 Gerenciamento de memória Adaptado por: Prof. Esp. Rodrigo Ronner rodrigoronner@gmail.com http://rodrigoronner.blogspot.com
  • 2. Introdução • Programas tendem a se expandir a fim de ocupar toda a memória disponível; • Programador deseja memória infinitamente grande, rápida e não volátil; • Por questões de preço, opta-se por utilizar uma hierarquia de memória; • Gerenciador de memória deve gerenciá-la de modo eficiente;
  • 3. • A multiprogramação implica em manter-se vários processos em memória; • A memória necessita ser alocada de forma eficiente para permitir o máximo possível de processos; • Existem diferentes técnicas para gerência de memória, que dependem do hardware do processador. Introdução
  • 4. • Considerações: – Recurso caro e escasso; – Programas só executam se estiverem na memória principal; – Quanto mais processos residentes na memória principal, melhor será o compartilhamento do processador; – Necessidade de uso otimizado; – O S.O. não deve ocupar muita memória; “É um dos fatores mais importantes em um projeto de S.O.” Introdução
  • 5. Considerações gerais  Um sistema de memória possui pelo menos dois níveis Memória principal: acessada pela CPU Memória secundária: discos  Programas são armazenados em disco Executar um programa se traduz em transferi-lo da memória secundária à memória primária  Qualquer sistema operacional tem gerência de memória Monotarefa: gerência é simples Multitarefa: complexa Introdução
  • 6.  A memória divide-se em camadas: ■ Memória principal ● Relativamente cara ● Capacidade relativamente pequena ● Alto desempenho ■ Armazenamento secundário ■ Barato ■ Grande capacidade ■ Baixo desempenho ■ A memória principal precisa ser gerenciada com cuidado. Introdução
  • 8.  A memória pode ser organizada de diferentes formas: ■ Um processo usa todo o espaço de memória. ■ Cada processo obtém uma partição na memória. ● Alocada dinâmica ou estaticamente.  Tendência: a necessidade de memória das aplicações tende a aumentar ao longo do tempo para atender à capacidade de memória principal. Introdução
  • 9.  Estratégias para obter um desempenho de memória ideal: ■ Gerenciamento executado por um gerenciador de memória ● Que processo permanecerá na memória? ● A que quantidade de memória cada processo tem acesso? ● Onde cada processo ficará na memória? Introdução
  • 10.  Memória principal ■ Deve armazenar apenas instruções de programa necessárias no momento e dados.  Armazenamento secundário ■ Armazena dados e programas que não são constantemente necessários.  Memória cache ■ Sua velocidade é extremamente alta. ■ Normalmente se localiza no próprio processador. ■ Os dados mais comumente usados são copiados para o cache para que possam ser acessados mais rapidamente. ■ Uma pequena quantidade de cache é suficiente para melhorar o desempenho. ● Isso se deve à localidade temporal. Introdução
  • 11. Formas antigas de alocação (particionamento da RAM) •Alocação contígua simples (monoprogramação) –Usa toda a memória livre como um bloco único •Alocação particionada (multiprogramação) –Estática (ou de partições fixas) • Vários blocos de tamanhos predefinidos • Pode ser: –Absoluta –Relocável –Dinâmica (ou de partições variáveis) • Não usa o conceito de blocos • Aloca processos de forma adjacente •Gerenciador de memória: controla particionamento da RAM –Quais partes estão alocadas para processos em execução? –Quais partes estão livres para novos processos?
  • 12. Sem abstração de memória • Cada programa simplesmente considera a memória física. • 3 modelos de organização: • ( a ) Antigos computadores de grande porte • ( b ) Sistemas embarcados • ( c ) primeiros computadores pessoais com MS-DOS
  • 13. Abstração de memória: espaço de endereçamento Desvantagens da exposição da memória física: • Danos intencionais ou acidentais • Difícil executar múltiplos programas simultaneamente Solução • Espaço de endereçamento, ou seja, conjunto de endereços que um processo pode usar para endereçar a memória
  • 14. Registrador-base e limite • Utilizados em versões simples da realocação dinâmica • Limitam o endereçamento de um processo
  • 15. Troca de memória • Quantidade de RAM p/ todos os processos > memória pode comportar • Solução: • Swapping • Memória virtual • Alocação e desalocação de processos criam “buracos” na memória • Podem ser combinados com a compactação de memória OBS: Não usada em virtude do tempo de processamento gasto • Tamanho do espaço de locação • Se o processo possui tamanho fixo e Inalterável = alocação é simples, SO Alocará exatamente aquilo que é necessário, nem mais nem menos. • Se processo possui tamanho variável = alocação extra é uma boa idéia. Obs: Processos tendem a crescer, caso próximo espaço esteja ocupado Deverá ser movido para outro endereço o comporte.
  • 16. Troca de memória • 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
  • 17. Troca de memória a) Alocação de espaço para uma área de dados em expansão. b) Alocação de espaço para uma pilha e uma área de dados, ambos em expansão.
  • 18. Gerenciando a Memória Livre • Mapa de bits • Tamanho da unidade de locação é inversamente proporcional ao tamanho do mapa de bits; • Unidade grande = muita memória desperdiçada; • Simples; • Problema para encontrar sequência de bits livres (busca muito lenta); Quando a memória é atribuída dinamicamente, o sistema operacional deve gerenciá-la. De modo geral há dois modos de verificar a utilização Da memória: mapas de bits e listas encadeadas. •Lista encadeada • Lista com posições de memória livre e ocupada
  • 19. Gerenciamento de memória com mapa de bits
  • 20. Gerenciando a Memória Livre • Lista encadeada • Lista com posições de memória livre • Algoritmos de busca usados: • First fit (primeiro encaixe) • Next fit (próximo encaixe) • Best fit (melhor encaixe) • Mais lento • Desperdiça mais memória • Worst fit (pior encaixe) • Pesquisas mostram não ser uma boa idéia • Todos os 4 poderiam ser mais rápidos se houvessem listas separadas para segmentos livres e segmentos ocupado de memória. • Quick fit (encaixe mais rápido) • Mantém listas separadas p/ alguns tamanhos de memória mais solicitados.
  • 21. Algoritmo da primeira alocação (first fit) • Procura-se pelo primeiro espaço na lista o suficientemente grande para armazenar o processo • É um algoritmo rápido pois ele gasta o tempo mínimo em procura • Se o processo não ocupa todo o espaço o restante é disponibilizado como buraco na lista • A pesquisa por espaço sempre inicia na parte baixa de memória, independentemente dos locais escolhidos para alocar os dados
  • 22. Algoritmo da próxima alocação (next fit) • Semelhante ao first-fit • Funciona da mesma maneira que o algoritmo first fit, exceto pelo fato de sempre memorizar a posição em que encontra um segmento de memória disponível de tamanho suficiente. • Quando o algoritmo next fit torna a ser chamado para encontrar um novo segmento de memória livre, ele inicializará sua busca a partir desse ponto, em vez de procurar sempre a partir do início da lista, tal como faz algoritmo first fit. • Simulações feitas por Bays (1977) mostraram que o algoritmo next fit fornece um desempenho ligeiramente inferior ao do algoritmo first fit.
  • 23. Algoritmo da melhor alocação (best fit) • Busca em toda a lista o espaço cujo o tamanho seja o mais próximo possível do tamanho do processo • Este algoritmo é mais lento que o anterior pois precisa pesquisar em toda a lista para descobrir qual a melhor opção
  • 24. Algoritmo da pior alocação (worst fit) • Procura pelo maior espaço capaz de armazenar o processo, de tal forma que o espaço restante seja grande o suficiente para armazenar outro processo.
  • 25. Algoritmo Rápido(Quick Fit) • Quick Fit (O que mais rápido couber) • Mantém lista separada para alguns tamanhos de segmentos disponíveis; • Em geral os tamanhos mais solicitados.
  • 26. Exercícios 1. Considere as estratégias para escolha da partição dinamicamente, conceitue as estratégias best- fit e worst-fit especificando prós e contras de cada uma. 2. Pra que servem os registradores base e limite? 3. Qual a principal diferença entre o modelo de multiprogramação com partições fixas e o modelo de multiprogramação com troca de processos. 4. Qual a principal desvantagem do gerenciamento de memória com mapa de bits? 5. Diferencie os algoritmos first fit e next fit. 6. O algoritmo best fit sempre busca o melhor espaço livre que suporte a alocação do processo. Por esta razão é um dos algoritmos que melhor aproveita os espaços de endereçamento. Verdadeiro ou Falso. Justifique. 7. Quais as dificuldades de se trabalhar com listas encadeadas de unidades de memória livres e ocupadas separadas? 8. Quais são as principais dificuldades encontradas para gerenciar uma memória sem abstração? 9. Considere um sistema com swapping, no qual as seguintes partições vazia de tamanho fixo estão na memória, nas ordem apresentada: 20K, 14K, 35K, 8K, 17K, 39K, 22K, e 27K. Se um processo solicitar a alocação de uma área de memória de 21K, o algoritmo de alocação de memória que faz alocação minimizando a fragmentação interna é A. Next-Fit B. First-Fit C. Worst-Fit D. Best-Fit E. Quick-Fit
  • 27. Memória virtual - paginação • Tamanho dos softwares aumenta mais rápido que o tamanho das memórias; • Processo é dividido em Páginas; • Unidades de Endereçamento Virtual = Páginas; • Unidades de Memória Física = Molduras de Página; • A Memória é dividida em Molduras (ou Frames) de mesmo tamanho; • Páginas/Molduras são de pequeno tamanho (e.g., 1K); • Processo não precisa ocupar área contígua em memória; • Processo não precisa estar completamente na MP; • MMU - Mapeia endereços virtuais em endereços físicos.
  • 28. Memória virtual - paginação
  • 29. Paginação: Como Funciona? • Para minimizar a informação necessária à conversão, a memória virtual é logicamente dividida em páginas – Endereço virtual = (no da página , deslocamento) – São necessários 4 bits para referenciar todas as 16 páginas do processo • End. virtual = (no da página [4 bits] , deslocamento [16 – 4 bits]) – Instrução MOV REG, 0 • O end. virtual 0 é enviado à MMU • No exemplo seguinte (end. virtuais de 16 bits=> processos de até 64k; memória física de 32k; páginas/molduras de 4k) • Ela detecta que esse end. virtual situa-se na página virtual 0 (de 0 a 4095) que, de acordo com o seu mapeamento, corresponde à moldura de página 2 (end. físicos de 8192 – 12287
  • 30. Memória virtual - paginação • Exemplo – Computador capaz de gerar endereços virtuais de 16 bits (0 -> 64k). – Memória física de apenas 32k => programas não podem ser carregados por completo na memória física – Solução: dividir o programa em Páginas
  • 31. Paginação: Como Funciona? • MOV REG, 20500 – Qual é a página? • Pag. 5, que contém os endereços de 20k (20480) até 24k-1 (24575) – Esta página está em qual moldura? • Na moldura 3, que contém end. Físicos de 12k (12288) a 16k-1 (16384) – Qual o deslocamento do endereço 20500 dentro da página? • Desl. = End. virtual – End. virtual do 1 byte da página • = 20500 – 20480= 20 – Qual será o endereço físico correspondendo ao end. virt. 20500? • = End. do 1o byte da moldura + desloca • = 12288 + 20 = 12308 Deslocamento: é a posição do byte dentro do segmento.
  • 32. • Uma tabela de páginas armazena mapeamento de memória. – A tabela diz quais páginas estão na memória física. – A tabela é armazenada na MMU da UCP. • O conteúdo da tabela de páginas depende do mecanismo de paginação. – Numero do frame, bits de proteção, modificação, referência, 18 Paginação: Como Funciona? • Tabela de Páginas: 32 bits Número da Moldura de Página Identifica a página virtual; Campo mais importante;
  • 33. 34 Gerenciamento de Memória Memória Virtual • Tabela de Páginas: 32 bits Número da Moldura de Página Bit de Residência: Se valor igual 1, então entrada válida para uso; Se valor igual 0, então entrada inválida, pois página virtual correspondente não está na memória;
  • 34. 35 Gerenciamento de Memória Memória Virtual • Tabela de Páginas: 32 bits Número da Moldura de Página Bits de Proteção: Indicam tipos de acessos permitidos: 1 bit  0 – leitura/escrita 1 – leitura 3 bits  0 – Leitura 1 – Escrita 2 - Execução
  • 35. 36 Gerenciamento de Memória Memória Virtual • Tabela de Páginas: 32 bits Número da Moldura de Página Bit de Modificação: Controla o uso da página; Se valor igual a 1, página foi escrita; página é copiada para o disco Se valor igual a 0, página não foi modificada; página não é copiada para o disco;
  • 36. 37 Gerenciamento de Memória Memória Virtual • Tabela de Páginas: 32 bits Número da Moldura de Página Bit de Referência: Controla o uso da página; Auxilia o SO na escolha da página que deve deixar a MP; Se valor igual a 1, página foi referenciada (leitura/escrita); Se valor igual a 0, página não referenciada;
  • 37. 38 Gerenciamento de Memória Memória Virtual • Tabela de Páginas: 32 bits Número da Moldura de Página Bit de Cache: Permite desabilitar o uso da memória Cache;
  • 38. Paginação: Como Funciona? • Cada processo tem sua Tabela de Páginas; • Tabela de Páginas faz o mapeamento página x moldura; • Tabela de páginas pode estar só parcialmente na MP.
  • 39. Paginação: Como Funciona? • O que acontece se o programa faz um acesso a uma página que não está mapeada na memória? – Ocorre uma Page Fault => a MMU força uma interrupção; • Ação do S.O. – Escolher uma página pouco usada, que encontra-se em alguma moldura da memória principal; – Salvar esta página no disco (caso ela tenha sido modificada); – Carregar a página virtual referenciada pela instrução na moldura recém liberada; – Atualizar o mapeamento da tabela de páginas e reiniciar a instrução causadora da interrupção;
  • 40. Acelerando a paginação Problemas na implementação da paginação: • O mapeamento do endereço virtual para o endereço físico deve ser rápido; • Se o espaço virtual for grande, a tabela de páginas será grande; • Endereços virtuais hoje: 32bits, 64bits; • Cada processo precisa sua tabela.
  • 41. Buffers para Tradução de Endereços - TLB • Mapeia endereços físicos sem passar pela tabela de páginas • Apenas endereços mais usados Localizado na MMU Numero pequeno de entradas-8 Entrada contém info da página Semelhante a TP Ex: loop referenciando 19,20,21 Dados : 129, 130 Indices : 140 Pilha : 860 e 861 Quando EV é apresentado a MMU, verifica se página esta presente e o acesso é válido.
  • 42.
  • 43. Gerenciamento da TLB por software • TLB feita pelo SO e não por hardware • TLB grande = eficiência da TLB por software aceitável, com MMU simples com > área no CPU p/ outros recursos • Estratégias p/ melhorar o desempenho - SO usa intuição para descobrir páginas usadas e antecipar carregamento. • Ausência na TLB - Soft miss (ausência leve) - Hard miss (ausência completa)
  • 44. 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.
  • 46. 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
  • 47. 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.
  • 48. 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.
  • 49. Tabela de Páginas de dois níveis Endereço de 32 bits E.E.V. = 4 GB 0 1 2 3 4 5 1023 Tabela de páginas de nível 2 Tabela de páginas para os 4MB do topo da memória (pilha) PT1 PT2 Deslocamento 10 10 12 Bits ... ... 0 1 2 3 4 5 1023 Tabela de páginas de nível 1 (Código do Programa) (Dados do Programa)
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. Fragmentação Interna • Problema da alocação fixa é uso ineficiente da memória principal; • Um processo, não importando quão pequeno seja, ocupa uma partição inteira; • A fragmentação interna ocorre quando uma parte da memória é perdida devido a memória alocada a um processo ser maior que a solicitada, causando uma diferença de tamanho, e esta diferença ficará inutilizável entre os blocos de memória até que o processo termine.
  • 54. Fragmentação externa • A execução de processos pode criar pedaços livres de memória; • Pode haver memória disponível, mas não contígua; • A fragmentação externa acontece quando há falta de espaço contíguo na memória, apesar de haver espaço total suficiente na memória.
  • 55. Fragmentação externa Soluções possíveis fragmentação externa • Reunir espaços adjacentes de memória • Empregar compactação • Relocar as partições de forma a eliminar os espaços entre elas e criando uma área contígua Desvantagem: • Consumo do processador • Acesso a disco Acionado somente quando ocorre fragmentação Necessidade de código relocável
  • 56. Exercícios 1. O que é falta de página? 2. Qual a função da TLB? 3. Diferencie soft miss e hard miss. 4. Como funciona a tabela de páginas multinível? 5. Explique como acontece Fragmentação Interna e externa, exemplifique?
  • 57. Algoritmos de Substituição de Páginas • A falta de página força uma escolha - qual página deve ser removida? - alocação de espaço para a página a ser trazida para a memória • A página 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 precisará ser trazida de volta logo slide 26 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
  • 58. Algoritmo de substituição de páginas • Algoritmo ótimo de substituição de página. • Algoritmo de substituição de página não usado recentemente. • Algoritmo de substituição de página primeiro a entrar, primeiro a sair. • Algoritmo de substituição de página segunda chance. • Algoritmo de substituição de página de relógio. • Algoritmo de substituição de página usado menos recentemente. • Algoritmo de substituição de página de conjunto de trabalho. • Algoritmo de substituição de página WSClock.
  • 59. Algoritmo de Substituição de Páginas Ótimo • Se uma página será usada após 10000 instruções, e outra após 5000, a primeira deve ser substituída numa falta de página; • Problema: não há como o SO saber quando uma página será novamente acessada; • E se a próxima instrução for para acessar a primeira página citada acima? • Algoritmo impossível de ser implementado. slide 28 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
  • 60. O Algoritmo de Substituição de Página Não Usada Recentemente (NUR) slide 29 © 2009 Pearson Prentice Hall. Todos os direitos reservados. • A escolha da página que não foi recentemente utilizada (not-recently-used) é bastante semelhante ao esquema LRU. • Existe um flag, que permite ao sistema a implementação do algoritmo. • O flag de referência indica quando a página foi referenciada ou não, e está associado a cada entrada na tabela de páginas. • Inicialmente, todas as páginas estão com o flag indicando que não foram referenciadas (0). • À medida que as páginas são referenciadas, o flag associado a cada página é modificado pelo hardware (1). • Depois de um certo tempo, é possível saber quais páginas foram referenciadas ou não.
  • 61. Algoritmo de Substituição de Página Primeira a Entrar, Primeira a Sair • Mantém uma lista encadeada de todas as páginas - página mais antiga na cabeça da lista - página que chegou por último na memória no final da lista • Na ocorrência de falta de página • página na cabeça da lista é removida • nova página adicionada no final da lista • Desvantagem - página há mais tempo na memória pode ser usada com muita freqüência • Raramente usado em sua configuração pura slide 31 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
  • 62. Thrashing • Se um processo tem poucas páginas, sua taxa de page faults é alta. Isto ocasiona: – Má utilização da CPU • Thrashing  processo gasta mais tempo fazendo swap in e swap out de páginas do que realizando suas operações
  • 63. Thrashing Aumentando o número de processos na memória, diminui o número de páginas físicas que cada um recebe. O funcionamento do sistema pode chegar a um ponto em que a UCP não tem o que executar, pois todos os processos ficam bloqueados esperando por busca de página no disco.
  • 64. Exercícios 1. Porque o algoritmo ótimo de substituição de página não pode ser implementado na prática? 2. Diferencie o algoritmo de substituição de página não usado recentemente e o algoritmo de substituição de página menos usado recentemente. 3. Qual o principal problema encontrado no algoritmo de substituição de página primeiro a entrar, primeiro a sair? 4. Como funciona o algoritmo de substituição de página segunda chance? 5. Explique o funcionamento do algoritmo de substituição de página de conjunto de trabalho. slide 47 © 2009 Pearson Prentice Hall. Todos os direitos reservados.
  • 65. 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.
  • 66. • Em alguns casos ter 2 ou mais espaços de endereçamento separados é melhor do que ter apenas 1 • Exemplo: Um compilador tem muitas tabelas que são construídas conforme a compilação ocorre, possivelmente incluindo: • O código-fonte sendo salvo para impressão (em sistema em lotes). • A tabela de símbolos - os nomes e atributos das variáveis. • A tabela com todas as constantes usadas, inteiras e em ponto flutuante. • A árvore sintática, a análise sintática do programa. • A pilha usada pelas chamadas de rotina dentro do compilador. • A memória virtual discutida até agora é unidimensional porque o endereçamento Virtual vai de 0 a alguma endereço máximo, um após o outro. Memória Virtual por Segmentação
  • 67. • Em um endereçamento único, podemos chegar em uma situação onde haverá entradas livres para determinada tabela e espaço esgotado para outros. Memória Virtual por Segmentação
  • 68. • 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
  • 69. 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
  • 70. • 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
  • 71. • 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
  • 73. Linux em 32 bits • Na arquitetura x86 de 32 bits, o Linux pode endereçar até 4 GiB de memória virtual. Este espaço é dividido em dois: o espaço do núcleo (kernel space) e o espaço do usuário (user space). • O primeiro é único e protegido das aplicações comuns, e armazena, além do próprio código do núcleo, uma estrutura que descreve toda a memória física; este espaço é limitado a um gibibyte (1024 MiB). • Cada aplicação recebe um espaço de endereçamento de até 3 GB para armazenar o código e os dados do programa. • Caso a memória física seja menor do que a necessária para conter todas as aplicações, o Linux pode alocar espaço em meios de armazenamento diversos (disco rígido, dispositivo de rede e outros). Este espaço é tradicionalmente conhecido como espaço de troca (swap space), embora o mecanismo adotado seja a paginação. Estudo de Caso: Windows e Linux
  • 74. Windows em 32 bits • Analogamente ao Linux, as versões atuais do Windows de 32 bits usam um espaço de endereçamento de 4 GB divididos em duas partes. Por padrão, o Windows reserva 2 GB para o núcleo e permite que cada aplicação use até 2 GB. • Entretanto, é possível alterar essa configuração, e permitir que uma aplicação use até 3 GB. Neste caso, obviamente, o espaço do núcleo será reduzido para um GB. • Diferentemente do Linux, o Windows usa apenas arquivos para paginação (paging files). • Pode usar até 16 desses arquivos, e cada um pode ocupar até 4095 MiB de espaço em disco. Estudo de Caso: Windows e Linux
  • 75. Exercícios 1. Explique com suas palavras o tratamento de falta de página 2. O que é retenção de página? 3. Diferencie os tipos de mapeamentos na memória secundária. 4. Qual a vantagem de existir a segmentação? 5. Na sua opinião, quem é melhor: segmentação ou paginação