Disciplina: SISTEMAS OPERACIONAISleg.ufpi.br/subsiteFiles/valdemir/arquivos/files/aulaSO... ·...

18
Professor: José Valdemir dos Reis Junior Disciplina: SISTEMAS OPERACIONAIS UNIVERSIDADE FEDERAL DO PIAUI – UFPI Colégio Técnico de Teresina – CTT

Transcript of Disciplina: SISTEMAS OPERACIONAISleg.ufpi.br/subsiteFiles/valdemir/arquivos/files/aulaSO... ·...

Professor: José Valdemir dos Reis Junior

Disciplina: SISTEMAS OPERACIONAIS

UNIVERSIDADE FEDERAL DO PIAUI – UFPI

Colégio Técnico de Teresina – CTT

Gerenciamento de Memória

• Introdução • Multiprogramação • Alocação Fixa e Variável

2

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

A multiprogramação passa para ao usuário a “idéia” de que ele

possui uma máquina só para si

9

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

Vantagens:

- Alocação dinâmica da memória e mais eficiente em relação a espaço;

Desvantagens:

- Alocação e liberação de memória mais complexa.

Possibilidade de uso de compactação de memória

- Custo computacional alto.

18