1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

42
1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife

Transcript of 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Page 1: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

1

Gerenciamento de Memória Conceitos Básicos

Prof. Alexandre Monteiro

Recife

Page 2: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Conteúdo Gerenciamento de Memória

• Troca de Processos• Memória Virtual• Algoritmos de Substituição de Páginas• Sistemas de Paginação

Page 4: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Cache

RAM

Hard Disk

Hierarquia da Memória

Kbytes

MegaBytes

GigaBytes

Megabytes

GigaBytes

TeraBytes

Anos Atras Atualmente

L1 = 1024KBL2 = 1024 a 2048 KBL3 = 8192 KB

Gerenciamento de Memória

Page 5: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Gerenciamento de Memória Apesar de atualmente os computadores pessoais

possuírem milhares de vezes mais memória que os computadores de antigamente, ainda sim são motivo de estudo.• Lei de Parkinson: "programas tendem a se expandir a

fim de ocupar toda memória disponível".

Page 6: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Hierarquia da Memória

Gerenciamento de Memória

Page 7: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Gerenciamento de Memória

Definição:•Recurso do sistema operacional responsável pela alocação, relocação e liberação de memória para os processos e também pelo processo de “swapping” ou paginação.

Page 8: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Gerenciamento de Memória

Função:• A função do gerenciamento de memória localizado no sistema operacional é manter o controle de quais partes da memória estão em uso e quais não estão, alocando memória aos processos quando eles precisam e liberando a memória quando esses processos terminam, além de gerenciar a troca de processos (swapping) entre a memória e o disco quando a memória principal não é suficiente para conter todos os processos.

Page 9: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Conceitos Básicos de Memória

Os sistemas de gerenciamento de memória podem ser divididos em duas classes:

• sistemas que, durante a execução levam e trazem processos entre a memória principal e o disco multiprogramação

• e, sistemas mais simples, que não o fazem monoprogramação.

- A monoprogramação raramente é usada hoje, a não ser em sistemas embarcados simples.

Page 10: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Programa de Usuário

Sistema Operacional em RAM

0

0xFFFF Sistema operacional em ROM

Programa de Usuário

0xFFFF

0

Drivers de Dispositivos em ROM

Programa de Usuário

Sistema Operacional em RAM

0xFFFF

0

MSDOS

Conceitos Básicos de Memória

Monoprogramação sem troca de processos ou paginação

Page 11: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Partição 4

Partição 3

Partição 2

Partição 1

Sistema Operacional

0

800K

100K

200K

400K

700K

Conceitos Básicos de Memória

Multiprogramação por partições fixas

Page 12: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Partição 4

Partição 3

Partição 2

Partição 1

Sistema Operacional

0

800K

100K

200K

400K

700K

Conceitos Básicos de Memória

Multiprogramação por partições fixas

Page 13: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Pilha de B

Dados de B

Código de B

Pilha de A

Dados de A

Código de A

SO

Espaço para Expansao

Espaço para Expansao

Multiprogramação por partições variáveis

Conceitos Básicos de Memória

Page 14: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Realocação e Proteção

A multiprogramação introduz dois problemas que devem ser resolvidos – realocação e proteção.

• Quando um programa é ligado, é necessário saber em que endereço o programa deve começar na memória realoção

• Em sistemas multiusuário é altamente indesejável permitir que processos leiam ou escrevam em partições de memória pertencentes a outros usuários proteção.

Page 15: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Realocação e Proteção Uma solução para realocação e proteção, é fornecer ao

processador dois registradores especiais denominados registrador-base e registrador-limite.

• O registrador-base é carregado com o endereço do início da partição alocada a esse processo e o registrador-limite é carregado com o tamanho dessa partição. realocação.

• Os endereços gerados são verificados em relação ao registrador-limite para certificar-se de que não tentarão endereçar memória fora da partição alocada ao processo em execução. proteção.

Page 16: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Registradores (limite e base)

Definem um espaço de endereçamento lógico

Page 17: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Troca de Processos Em computadores pessoais pode não haver memória

suficiente para todos os processos ativos, de modo que os excedentes devem ser mantidos em disco e trazidos dinamicamente para a memória.

Dois métodos de gerência de memória são usados: • Troca de processos (swapping): consiste em

trazer totalmente cada processo para a memória, executá-lo durante um certo tempo e então devolvê-lo ao disco.

• Memória virtual: permite que programas possam ser executados mesmo que estejam apenas parcialmente carregados na memória principal.

Page 18: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Troca de Processos Então, como funciona a troca de processos na memória?

- a) Somente o processo A está na memória.- b) O processo B é criado ou trazido do disco.- c) O processo C é criado ou trazido do disco.- d) O processo A é devolvido para o disco.- e) O processo D entra na memória.- f) O processo B é retirado da memória.- g) O processo A é novamente trazido do disco para a memória.

Page 19: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Troca de Processos

Quando as trocas de processos deixam muitos espaços vazios na memória, é possível combiná-los em um único espaço contíguo de memória – chamamos isso de compactação de memória.

Page 20: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Conceitos Básicos de Memória Para dividir a memória você pode ter:

• Partições fixas• Partições Variáveis

Page 21: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Multiprogramação com Partições Fixas

Ao chegar, um job pode ser colocado em uma fila de entrada associada à menor partição, grande o suficiente para armazená-lo. Como o tamanho das partições é fixo, todo espaço de uma partição não usado pelo job é perdido.

Page 22: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Gerenciamento de Memória Alocada Dinamicamente

Existem duas maneiras do sistema operacional gerenciar a memória quando ela é alocada dinamicamente:

• Mapa de bits e Lista de disponíveis (0 livre, 1 ocupado)

- a) Parte da memória com cinco segmentos alocados a processos e três segmentos de memória livre.

- b) O mapa de bits.- c) As mesmas informações do mapa de bits em uma lista encadeada.

Page 23: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Gerenciamento de Memória com Listas Encadeadas

É possível utilizar diversos algoritmos para alocar memória a um processo recém-criado (ou a um processo já existente em disco que esteja sendo transferido para a memória).

• First-Fit (O Primeiro que Couber). O gerenciador de memória procura ao longo da lista de segmentos de memória por um segmento livre que seja suficientemente grande para esse processo.

• Next-Fit (O Próximo que Couber). 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.

• Best-Fit (O que Melhor Couber). Esse algoritmo pesquisa a lista inteira e escolhe o menor segmento de memória livre que seja suficiente ao processo.

• Worst-Fit (O que Pior Couber), isto é, sempre escolher o maior segmento de memória disponível.

OBS: First e Best são melhores que Worst em termos de velocidade e utilização de espaço.

Page 24: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Memória Virtual O tamanho total do programa pode exceder a

quantidade de memória física disponível para ele.

Sendo assim, o sistema operacional mantém as partes ativas do programa na memória e o restante em disco.

Page 25: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Técnica de Paginação Exemplo de mapeamento:

• Um computador pode gerar endereços virtuais de 0 a 64 K.

• Contudo, esse computador tem somente 32 KB de memória física.

• Embora seja possível escrever

programas de 64KB, eles não podem

ser totalmente carregados na

memória para serem executados. • Uma cópia completa do

código do programa, deve estar

presente em disco, de modo que

partes possam ser carregadas

dinamicamente na memória,

quando necessário.

Page 26: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Técnica de Paginação O espaço de endereçamento virtual é dividido em unidades

denominadas páginas.

As unidades em memória física são denominadas molduras de página.

As páginas e as molduras de página são sempre do mesmo tamanho.

No exemplo dado, as páginas têm 4 KB,

mas páginas de 512 bytes a 64 KB têm

sido utilizadas em sistemas reais. • Com 64 KB de espaço de endereçamento

virtual e 32 KB de memória física, podemos ter

16 páginas virtuais e oito molduras de página.

Page 27: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Técnica de Paginação Qual endereço físico a MMU (Memory Management Unit)

deve apontar quando a instrução for MOV REG, 8192?

É transformada em “MOV REG 24576”, pois o endereço virtual 8192 está na página virtual 2, e essa página está mapeada na moldura de página física 6 (endereços físicos de24576 a 28671).

Page 28: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Estrutura de uma Tabela de Páginas

Como é uma entrada na tabela de páginas?• O tamanho da tabela geralmente é de 32 bits. • O campo mais importante é o Número da Moldura de Página, do qual

se refere a página da memória RAM.• Próximo a ele temos o bit presente/ausente. Se esse bit for 1, a

entrada será válida e poderá ser usada. Se ele for 0, a página virtual não estará presente na memória, ocorre uma falta de página. (Page Fault)

• Os bits de proteção dizem quais tipos de acesso são permitidos à página. Em sua configuração mais simples, esse campo contém um bit, com 0 para leitura/escrita e 1 somente para leitura. Uma forma mais sofisticada tem 3 bits, 1 bit para habilitar/desabilitar cada uma das operações básicas na página: leitura, escrita e execução.

Page 29: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Intervalo de Memoria em K Indice

60 64 X

56 60 X

52 56 X

48 52 X

44 48 7

40 44 X

36 40 5

32 36 X

28 32 X

24 28 X

20 24 3

16 20 4

12 16 0

8 12 6

4 8 1

0 4 2

  28 32

  24 28

  20 24

  16 20

  12 16

  8 12

  4 8

  0 4

Memória Virtual

Page 30: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Intervalo de Memoria em K Indice

60 64 X

56 60 X

52 56 X

48 52 X

44 48 7

40 44 X

36 40 5

32 36 X

28 32 X

24 28 X

20 24 3

16 20 4

12 16 0

8 12 6

4 8 1

0 4 2

  28 32

  24 28

  20 24

  16 20

  12 16

  8 12

  4 8

  0 4

Page Fault

Memória Virtual

Page 31: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Intervalo de Memoria em K Indice

60 64 X

56 60 X

52 56 X

48 52 X

44 48 7

40 44 X

36 40 5

32 36 X

28 32 X

24 28 X

20 24 3

16 20 4

12 16 0

8 12 6

4 8 1

0 4 2

  28 32

  24 28

  20 24

  16 20

  12 16

  8 12

  4 8

  0 4

Escolhe a célula mais antiga e salva em disco...

Memória Virtual

Page 32: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Intervalo de Memoria em K Indice

60 64 X

56 60 X

52 56 X

48 52 1

44 48 7

40 44 X

36 40 5

32 36 X

28 32 X

24 28 X

20 24 3

16 20 4

12 16 0

8 12 6

4 8 X

0 4 2

  28 32

  24 28

  20 24

  16 20

  12 16

  8 12

  4 8

  0 4

Refaz o apontamento virtual...

Memória Virtual

Page 33: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Memória Virtual

A MMU é mostrada como parte do chip da CPU porque atualmente isso é comum, porém poderia ser um chip separado, como ocorria no passado.

Page 34: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Tabela de Páginas O objetivo da tabela de páginas é mapear páginas

virtuais em molduras de página física.

Matematicamente, a tabela de páginas é uma função que usa o número da página virtual como argumento e tem o número da moldura de página física correspondente como resultado.

Page 35: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Tabela de Páginas Dois pontos importantes devem ser considerados:

• A tabela de páginas pode ser extremamente grande.

- Com um tamanho de página de 4 KB, um espaço de endereçamento de 32 bits tem um milhão de páginas virtuais; um espaço de endereçamento de 64 bits tem mais do que se possa imaginar.

- Com um milhão de páginas virtuais no espaço de endereçamento virtual, a tabela de páginas deve ter um milhão de entradas.

• O mapeamento deve ser rápido.

Page 36: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Tabela de Páginas

Page 37: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Atividades1. O que é memória virtual?

2. O que é paginação?

1. O que são endereço virtuais?

2. O que são endereços físicos?

3. O que são páginas?

4. O que são molduras de páginas?

5. Qual o número de páginas possível para uma memória virtual com endereços de 6 bits?

6. Dado 256KB de tamanho total da memória virtual, com 8KB para cada página. Quantos bits são necessários para o endereçamento de cada umas dessas páginas?

7. Qual moldura de página está o endereço virtual 1459KB de acordo com o exemplo da figura da aula.

8. Qual o endereço físico correspondente ao endereço virtual 1459KB.

Page 38: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Algoritmo de Substituição de Página

Quando uma falta de página ocorre, o sistema operacional precisa escolher uma página a ser removida da memória a fim de liberar espaço para uma nova página a ser trazida para a memória.

Embora seja possível escolher aleatoriamente uma página a ser descartada, o desempenho do sistema será muito melhor se a página escolhida for uma que não estiver sendo muito usada.

Page 39: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

O Algoritmo de Substituição de Página Ótimo

Alguns algoritmos• O algoritmo ótimo retira da memória a página que vai

demorar mais tempo para ser referenciada novamente. • O algoritmo NUR (Não Usada Recentemente) remove uma

página não referenciada e não modificada.• No algoritmo FIFO, a página mais antiga é removida e a

nova página é adicionada no final da lista.• Entre outros…

Page 40: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Atividades

1. Qual o objetivo dos algoritmos de substituição de páginas?

2. Por que o algoritmo ótimo não é implementável em sistemas reais?

Page 41: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Trabalho de Casa Busque na Internet

• Quais sistemas operacionais operam com memória virtual, e como configurá-los?

Page 42: 1 Gerenciamento de Memória Conceitos Básicos Prof. Alexandre Monteiro Recife.

Referências

Sistemas Operacionais Modernos – 3ª Edição. A. Tanenbaum, 2008.

Modern Operating Systems 3 e. Prentice-Hall, 2008.