Sistemas Operacionais
Gerência de Memória
Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula
Gerência de Memória
Metas
Algoritmos
2
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Programas só executam se estiverem na memória principal; Funções do Gerenciador de Memória:
Controlar alocação de processos;
Novos processos;
Múltiplos processos;
Término de processo;
Crescimento e diminuição
Dados e Pilha
3
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Modelos
Partições
Estáticas (Fixas)
Dinâmicas (Variáveis)
(Swapping)
Paginação
Segmentação
4
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Endereço Lógico X Físico
Problema:
Usuário cria programa. Ex.: prog1.c
O Compilador gera código intermediário
Cl –c prog1.c prog1.obj Esse código gera Executável?
Não é possível encontrar o endereço da função soma().
#include
void main() { int x; x = soma (10, 20); printf("X = %d", x);
}
5
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Endereço Lógico X Físico
Problema:
Usuário cria programa. Ex.: soma.c
O Compilador gera código intermediário
Cl –c soma.c soma.obj Esse código gera Executável?
Não é possível encontrar o endereço de início de execução main(). int soma(int x, int y) { return x + y;
}
6
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Endereço Lógico X Físico
Problema:
Como gerar prog1.exe?
Compilando-os e ligando-os
Cl prog1.c soma.c
Entendendo...
7
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Endereço Lógico X Físico
Todo processo referencia endereço lógico
O compilador não sabe onde o programa vai executar na memória Logo, seu primeiro endereço é 0
O que significa chamar soma()?
Executar um CALL para seu endereço de memória
Endereço lógico
8
Gerência de Memória
www.edeyson.com.br
Gerência de Memória
Alocação Contígua Simples