Upload
vuongnhi
View
213
Download
0
Embed Size (px)
Citation preview
Professor: José Valdemir dos Reis Junior
Disciplina: SISTEMAS OPERACIONAIS
UNIVERSIDADE FEDERAL DO PIAUI – UFPI
Colégio Técnico de Teresina – CTT
Idealmente, o que todo programador deseja é dispor de uma memória que seja grande, rápida e volátil; Situação ideal:
Memória rápida; Memória infinitamente grande; não-volátil; baixo custo.
O gerenciador de memória trata a hierarquia de memórias. - Registrador, cache ....
3
Endereço Físico
- Endereço visto pela unidade de memória.
Endereço Lógico
- Gerado pela CPU;
- Também conhecido como endereço virtual.
-O programa do usuário lida com endereço lógico .
4
O gerenciador de Memória tem função:
▪ Controlar que partes da memória estão em uso e as partes que não estão;
▪ Desalocar memória quando os processos terminam.
▪ Gerenciar a troca entre a memória principal e o disco.
▪ Alocar memória para processos quando eles necessitam;
Existem vários esquemas de gerenciamento de memória.
5
Memory Management Unit (MMU);
- Dispositivo de hardware que mapeia endereços
virtuais para endereços físicos.
6
Esquema mais simples de gerenciamento de memória.
Memória é dividida entre o SO e o programa em execução.
O usuário tem acesso a toda a memória principal:
7
Vantagens:
aumento da taxa de utilização do processador
melhor utilização dos recursos
reduz o tempo de execução de um conjunto de programas
A multiprogramação passa para ao usuário a “idéia” de que
ele possui uma máquina só para si;
A forma mais simples de gerenciamento nesse tipo de
sistemas é através de alocação particionada estática ou
alocação fixa.
8
Alocação Fixa:
Dividir a memória em partições com tamanhos fixos;
Quando um processo chega, pode ser colocado na fila de entrada da menor partição capaz de armazená-lo;
Nesse caso, o espaço não utilizado na partição pelo processo é perdido;
figura (a) slide anterior.
10
Podemos implementar também com uma fila única de entradas: O processo mais próximo que se ajusta a partição livre pode ser carregado
nela.
Mas, isso pode atribuir uma partição muito grande para um processo pequeno.
Uma alternativa seria procurar na fila de entrada inteira o maior processo que se ajuste à partição vazia.
Porém, isso pode causar uma espera longa pelos processos pequenos.
Solução: ter partição pequena para acomodar processos pequenos.
Outra alternativa: determinar que um processo elegível para executar não pode ser ignorado mais que k vezes.
Item (b) slide anterior.
11
o Número, tamanho e a localização das partições são fixas;
o Vantagens: - Alocação e liberação simples de memória; - Gerenciamento de trocas de processos simples. o Desvantagens: - Blocos podem ser grandes ou pequenos para acomodar os processos;
12
o Não se sabe com certeza onde o programa será carregado na memória - Localizações de endereços de variáveis e de código de rotinas não podem
ser absolutos. o Uma possível solução - Instruções do programa são modificadas segundo a partição de memória
em que ele será carregado. o Uma solução para relocação e proteção: - Uso de valores de registradores base e limite.
13
Diferente da alocação com partições fixas, neste método o tamanho das
partições de memória é ajustado dinamicamente à medida que os processos
vão chegando.
O processo irá utilizar o espaço de tamanho de memória necessário.
Caso não exista o espaço suficiente para um processo ser alocado, outro
processo é retirado total da memória e gravado em disco. Este processo de
retirada é chamado, por alguns autores de Troca.
14
Consiste em:
- Trazer TOTALMENTE cada processo para a memória;
- Executar o processo durante um certo tempo;
- Devolve o processo para o disco.
15
- 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.
16
Diferente da alocação com partições fixas, neste método o tamanho das
partições de memória é ajustado dinamicamente à medida que os processos
vão chegando.
O processo irá utilizar o espaço de tamanho de memória necessário.
Caso não exista o espaço suficiente para um processo ser alocado, outro
processo é retirado total da memória e gravado em disco. Este processo de
retirada é chamado, por alguns autores de Troca.
17