Sistemas Operacionais
Aula 5 – Gerenciamento de Memória
5. Gerenciamento de Memória
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Qual a importância da memória?
Seu objetivo básico é armazenar dados
Existem diversos tipos de memória em um sistema
de computação
5. Gerenciamento de Memória
Qual a importância da memória?
Cenário Ideal
Memória rápida
Infinitamente grande Não-volátil
Barata
5. Gerenciamento de Memória
Qual a importância da memória?
Tipos mais comuns
Memória principal (Random Access Memory) Disco rígido (HD)
Memórias cache (L1, L2) Registradores
5. Gerenciamento de Memória
Qual a importância da memória?
5. Gerenciamento de Memória
Qual a importância da memória?
5. Gerenciamento de Memória
Qual a importância da memória?
O foco da gerência de memória é a memória
principal (RAM)
Ela constitui o “espaço de trabalho” do sistema
Nela são mantidos processos, threads, canais de
5. Gerenciamento de Memória
Endereços, variáveis e funções
O programador usa referências a entidades
abstratas:
Variáveis Funções Parâmetros
Valores de retorno
Não há necessidade da manipulação de endereços de memória
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Endereços, variáveis e funções
Internamente cada variável ou trecho de código
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Endereços, variáveis e funções
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Endereços lógicos e físicos
Ao executar instruções, o processador escreve
endereços no barramento do computador
Para buscar instruções e operandos
Para ler e escrever valores na memória e nas
5. Gerenciamento de Memória
Endereços lógicos e físicos
Os endereços gerados pelo processador à medida
em que executa algum código são chamados
endereços lógicos
Não são necessariamente iguais aos endereços
5. Gerenciamento de Memória
Endereços lógicos e físicos
Há um mecanismo chamado Unidade de Gerência
de Memória (MMU) que determina os endereços físicos a partir de endereços lógicos
Isso garante maior segurança e estabilidade na
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Modelo de memória dos processos
TEXT: programa e sua ligação com as bibliotecas DATA: dados estáticos usados pelo programa –
variáveis globais
HEAP: área usada para armazenar dados através
de alocação dinâmica
STACK: área usada para manter a pilha de
5. Gerenciamento de Memória
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Em um sistema mono-processo, a alocação da
memória principal é simples
Reservar uma área da memória para o núcleo do
sistema operacional e alocar o processo na memória restante
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Nos sistemas multi-processos vários processos podem ser carregados na memória para execução simultânea
O espaço de memória deve ser dividido entre eles usando uma estratégia de alocação
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Partições fixas
Alocação contígua
Alocação por segmentos Alocação paginada
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Partições fixas
Divide a memória destinada aos processos em N
partições fixas
Elas podem ser de tamanhos iguais ou distintos
Em cada partição pode ser carregado um processo
A tradução entre endereços lógicos e endereços
físicos é feita através de um registrador de realocação
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Partições fixas
Vantagem: simplicidade Desvantagens:
Os processos podem ter tamanhos diferentes dos tamanhos das partições
O número máximo de processos na memória é limitado pelo número de partições
Processos maiores que o tamanho das partições não poderão ser carregados
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação contígua
O tamanho de cada partição pode ser ajustado para
se adequar à demanda de cada processo
Usa dois registradores
Registrador base – define o endereço inicial da
partição
Registrador limite – define o tamanho em bytes
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação contígua
Além de traduzir endereços lógicos em físicos, a
MMU propicia a proteção da memória
Um processo pi só acessa endereços lógicos
entre: [0, limite(pi) − 1]
Que corresponde aos endereços físicos entre:
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação contígua
Vantagem: simplicidade Desvantagens:
Pouco flexível
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação por segmentos
O espaço de memória de um processo é
fracionado em áreas, ou segmentos
Os segmentos podem ser alocados
separadamente na memória física
Os processos não são alocados como uma
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação por segmentos
Usa endereços lógicos bidimensionais [segmento:offset]
Segmento indica o número do segmento
desejado
Offset indica a posição desejada dentro do
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação por segmentos
Cada segmento tem seus próprios valores de
base e limite
Cada processo possui uma tabela de
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação paginada
Usar endereços bidimensionais é pouco intuitivo
Torna mais complexa a construção de compiladores Na alocação paginada, o espaço de endereçamento
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação paginada
Internamente, o espaço de endereços lógicos é dividido em pequenos blocos de mesmo tamanho chamados
páginas = 4KB
O espaço de memória física também é dividido em blocos de mesmo tamanho que as páginas: quadros
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação paginada
O mapeamento entre as páginas de um processo e os quadros correspondentes é feito através de uma tabela de páginas
Cada entrada corresponde a uma página e contém o número do quadro onde ela se encontra
5. Gerenciamento de Memória
Quais as estratégias de alocação?
Alocação paginada
Há um registrador no processador que define qual a tabela de página que está ativa no momento
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
Quais as estratégias de alocação?
5. Gerenciamento de Memória
O que é fragmentação?
Ao longo da execução do sistema
Áreas de memória são liberadas por processos que
concluem sua execução
Outras áreas são alocadas por novos processos
Podem surgir áreas livres (buracos) entre os
5. Gerenciamento de Memória
O que é fragmentação?
Fragmentação externa
Só afeta as estratégias de alocação que trabalham com blocos de tamanho variável
5. Gerenciamento de Memória
O que é fragmentação?
Duas soluções:
Minimizar sua ocorrência através de critérios de
escolha
Desfragmentar periodicamente a memória do
5. Gerenciamento de Memória
O que é fragmentação?
5. Gerenciamento de Memória
O que é fragmentação?
5. Gerenciamento de Memória
O que é fragmentação?
5. Gerenciamento de Memória
O que é fragmentação?
5. Gerenciamento de Memória
5. Gerenciamento de Memória
Compartilhamento de memória
5. Gerenciamento de Memória
Compartilhamento de memória
5. Gerenciamento de Memória
5. Gerenciamento de Memória
O que é memória virtual?
Os programas se tornam cada vez maiores e cada
vez mais processos executam simultaneamente
Não há memória suficiente
5. Gerenciamento de Memória
O que é memória virtual?
Áreas de memória pouco acessadas são transferidas
para um meio de armazenamento mais barato e abundante:
Disco rígido Memória flash
5. Gerenciamento de Memória
5. Gerenciamento de Memória
O que é memória virtual?
Retira da memória principal as páginas menos utilizadas
Salva elas em uma área reservada do disco (swap)
Quando um processo tenta acessar uma página que está no disco é feita uma troca para trazê-la à memória principal As trocas são feitas de acordo com um algoritmo de
5. Gerenciamento de Memória
Algoritmos de substituição de página
Algoritmo FIFO – retira a mais velha
Algoritmo ótimo – mais tempo sem ser usada Algoritmo LRU – menos recentemente usada
Algoritmo da segunda chance – da uma segunda
chance às páginas acessadas recentemente ( com FIFO)