gerência de memória - higuita.com.br de memória-v2.pdf · gerenciamento de memória livre •...

21
10/11/2014 1 Gerenciamento de Memória Prof. Alexandre Beletti Ferreira Gerência de Memória Sistemas Monoprogramáveis = gerenciamento simplificado Sistemas Multiprogramáveis = gerenciamento crítico (muitos usuários / aplicações) 2

Upload: dangnguyet

Post on 27-Jan-2019

233 views

Category:

Documents


0 download

TRANSCRIPT

10/11/2014

1

Gerenciamento de Memória

Prof. Alexandre Beletti Ferreira

Gerência de Memória

• Sistemas Monoprogramáveis = gerenciamento simplificado

• Sistemas Multiprogramáveis = gerenciamento crítico (muitos usuários / aplicações)

2

10/11/2014

2

Sem abstração de memória

• Comp. Grande Porte (antes de 1960)

• Microcomputdores (antes de 1970)

• PCs (antes de 1980)

• Exemplo: MOV REG,[1000]

3

Código Absoluto X Código Relativo

(a) Programa A (16K)(b) Programa B (16K)(c) Os dois Programas

A instrução no endereço 16384 irá saltar para a área de outro processo.

O IBM 360 resolvia comuma constante de relocação.Processo lento e precisalocalizar o que é endereço eo que é valor.

4

10/11/2014

3

Abstração de Memória

• Espaço de Endereçamento é análogo ao conceito de Processo (criar uma memória virtual como também cria uma UCP virtual)

5

Registrador Base e Limite

CDC 6600 implementava8088 não tinha o limite, porém múltiplos registradores

O hardware tratou o JMP 28 como um JMP 16412, protegendo o outro processo.

Se a memória fosse grande o suficiente isso bastaria...

6

10/11/2014

4

Gerenciamento de Memória Livre

• Gerenciamento com mapa de bits (b)

• Gerenciamento com listas encadeadas (c)

7

Memória Virtual

• Memória Virtual = Memória Principal (RAM) + Memória Secundária (HD)

• Simulação de um espaço de memória maior do que a memória real

• Não existe vínculo direto dos endereços dos programas aos endereços físicos

• Somente partes dos processos estão na RAM, permitindo um número maior de processos

8

10/11/2014

5

Histórico

• 1960 = Atlas (Univ. Manchester)

• 1972 = System 370 (IBM)

• A maioria dos computadores atuais implementa memória virtual (exceto supercomputadores)

9

Espaço de Endereçamento Virtual

• Processo = Contexto de Hardware + Contexto de Software + Espaço de Endereçamento

• Espaço de Endereçamento = Endereçamento Virtual

• O programador que faz uso de linguagem de alto nível não tem acesso aos endereços reais

• Mesmo o de baixo nível, fica sujeito as restrições impostas pelo Modo Usuário

10

10/11/2014

6

End. Real X End. Virtual

• Exemplo: MOV REG,[1000]

• Em computadores sem memória virtual o endereço virtual é idêntico ao físico

• Em computadores com memória virtual o endereço virtual precisa ser tratado pela MMU

11

Espaço de Endereçamento Virtual

CONTINUA12

10/11/2014

7

Espaço de Endereçamento Virtual

CONTINUA13

Mapeamento

• O processador trabalha com endereços reais

• MMU (hardware) junto ao SO (software) traduz endereços virtuais em reais

14

10/11/2014

8

Tabela de Mapeamento

15

Espaço Virtual X Tamanho do Bloco

• Se o mapeamento fosse para cada célula de memória principal, o espaço da tabela seria tão grande quanto o espaço de endereçamento virtual de cada processo.

• Quanto maior o bloco, menos entradas na tabela de mapeamento e, consequentemente, tabelas de mapeamento que ocupam menos espaço na memória

CONTINUA16

10/11/2014

9

Modelos de Memória Virtual

• Paginação = Bloco de Tamanho Fixo

• Segmentação = Bloco de Tamanho Variável

• Segmentação com Paginação = Híbrido

17

Paginação

• Blocos Fixos = Páginas

• Espaço Virtual = Páginas Virtuais

• Espaço Real = Páginas Reais ou Frames

• Cada processo possui sua própria tabela de páginas

• Cada página virtual do processo possui uma Entrada na Tabela de Páginas (ETP)

18

10/11/2014

10

Tabela de Páginas

19

Mapeamento de 4K em 4K

20

10/11/2014

11

Endereço Virtual

• Endereço Virtual = Número da Página Virtual (NPV) + Deslocamento

• Deslocamento = Posição do Endereço Virtual Em Relação ao Início da Página

• Endereço Real (Físico) = Endereço do Frame + Deslocamento

• ETP possui também o bit de validade, que indica se uma página virtual está ou não na RAM

CONTINUA21

Tradução do Endereço Virtual

22

10/11/2014

12

Page Fault

• Processo tenta acessar página que não está na RAM (bit de validade = 0)

• SO transfere página da memória secundária para a memória principal (PAGE IN)

• Taxa de Paginação = Número de Page Faults

• Page Fault gera uma mudança do estado do processo: Execução -> Pronto

CONTINUA23

Mecanismo de Tradução

24

10/11/2014

13

MMU – 16 páginas de 4K

25

TLB (memória associativa)

• Hardware presente na MMU para mapear endereços virtuais em físicos sem passar pela tabela de páginas

• As páginas mais acessadas são referenciadas

26

10/11/2014

14

Políticas de Busca de Páginas

• Por Demanda (Demand Paging)

Ex: Rotinas de tratamento de erro podem nunca ser carregadas

• Antecipada (Prepaging)

Ex: Se o programa estiver sequencialmente no disco pode ser uma vantagem (“otimização”)

27

Políticas de Alocação de Páginas

• Alocação Fixa

Número Máximo de Frames por Processo

Pode gerar excesso de Page Faults

• Alocação Variável

Altas taxas de paginação geram ampliação do limite máximo de Frames

28

10/11/2014

15

Políticas de Substituição de Páginas

• Página foi modificada = Page Out (salvar)

• Página não modificada = Substitua

• Dirty/Modify Bit = Indica páginas modificadas

• Substituição Local = páginas do próprio processo

• Substituição Global = páginas de todos processos

29

Local (b) e Global (c)

30

10/11/2014

16

Algoritmos de Substituição de Páginas

• Ótimo

• Aleatório

• FIFO (First In First Out)– FIFO com Buffer

– FIFO Circular

• LFU (Last Frequently Used)

• LRU (Last Recently Used)

• NRU (Not Recently Used)

31

Swapping em Memória Virtual

• Insuficiência de memória principal

• Processos são selecionados para saírem da RAM

• Swap out = Retirar processo da RAM

• Swap in = Retorno de um processo a RAM

• Swap file = Arquivo/Partição de Troca

• Existem várias políticas de seleção de processos (Ex: estado do processo ou prioridade)

CONTINUA32

10/11/2014

17

Swapping em Memória Virtual

33

Segmentação

• A memória virtual “tradicionalmente” vai de 0 até um endereço máximo em um espaço unidimensional

• Dividir em espaços de endereçamento separado pode otimizar alguns procedimentos

34

10/11/2014

18

Memória Segmentada

35

Implementação de Segmentação Pura

36Checkboarding(segmentação externa) Compactação

10/11/2014

19

Paginação X Segmentação

37

Segmentação Paginada – Pentium Intel

• Possui 16K segmentos independentes

• Cada segmento com até um bilhão de palavras de 32 bits

• Faz uso de duas tabelas:

• LDT = Local Descriptor Table

• GDT = Global Descriptor Table

• Cada programa possui a sua LDT mas a GDT é compartilhada por todos

38

10/11/2014

20

Segmentação Paginada – Pentium Intel

• Carrega um seletor para aquele segmento dentro de um dos registrados: CS, DS, ES, SS, FS e GS

• Resumidamente, temos a memória acessada como segmentos e dentro dos segmentos podemos ter:

• Paginação Desabilitada ou Habilitada.

39

Paginação Desabilitada X Habilitada

• Desabilitada:

Endereço Linear = Interpretado como endereço físico

• Habilitada:

Endereço Linear = Endereço Virtual e mapeado sobre um endereço físico (como já vimos desde o início...)

40

10/11/2014

21

Referências

• TANENBAUM,A.S., Sistemas Operacionais Modernos - 3ª edição. Peason, 2010.

• SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G.,Fundamentos de Sistemas Operacionais. LTC, 2010.

• MACHADO F.B.M., MAIA L.P.,Arquitetura de Sistemas Operacionais. LTC, 2013.

• TANENBAUM,A.S., WOODHULL, ,Sistemas Operacionais - Projeto e Implementação - 3ª edição. Bookman, 2008.

41