1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado...

50
1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis Berenger Machado e Luiz Paulo Maia.

Transcript of 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado...

Page 1: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

1G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

Gerência de Memória

Sidney Cunha de Lucena

Baseado no livro “Arquitetura de Sistemas Operacionais”,

Francis Berenger Machado e Luiz Paulo Maia.

Page 2: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

2G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Conceitos Básicos• Alocação Contígua• Alocação Particionada• Troca de Processos• Memória Virtual• Mapeamento• Paginação• Segmentação• Swapping em Memória Virtual• Thrashing• Resumo

Gerência de MemóriaSumário:

Page 3: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

3G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Sistemas Multiprogramados: múltiplos processos sendo executados simultaneamente num mesmo computador.

– Divisão de recursos: CPU, dispositivos e memória RAM.

• Memória é compartilhada pelos processos em execução.– Cada processo deve possuir uma área exclusiva da memória

RAM para seu uso.

• Gerência de Memória: organiza e disciplina o compartilhamento da memória pelos múltiplos processos em execução.

Conceitos Básicos:

Page 4: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

4G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Funções Básicas da Gerência de Memória:

– manter o maior número possível de processos em memória, maximizando o compartilhamento da CPU e demais recursos;

– maximizar o compartilhamento de espaço da memória;

– executar programas com requisitos de memória além da capacidade física da RAM;

– proteção das áreas de memória ocupadas por cada processo.

Conceitos Básicos:

Page 5: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

5G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Maneira mais simples: alocação contígua da memória.

Alocação Contígua:

M em ória Pr in cip a lRegistrad o rSistem a

O peracion a l

Á rea p a rap rog ram a

• Registrador delimita as áreas do Sist. Op. e do usuário (proteção).

• Uso ineficiente do espaço, somente um usuário ocupando-o.

Page 6: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

6G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• A técnica de overlay permite que módulos independentes de um mesmo programa sejam carregados numa mesma área de memória em momentos diferentes.

Uso de Overlay:

• Áreas de overlay definidas pelo programador.

• Expande limites da memória principal.

• Não possui compartilhamento por usuário.

M em ó ria Pr in cip a l

C a d astra m en to

Im pressão

Sistem a O p eracion a l2 K b

3 K b

4 K b

4 Kb

2 Kb

2 Kb1 K b

M ódu lo p rincip a l

Á rea d e overlay

Á rea l ivreÁ rea n ãou til izada

Page 7: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

7G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Alocação Particionada Estática: memória é dividida em partições fixas, cada processo ocupará uma determinada partição.

Alocação Particionada:

M em ória Prin cip a l

Sistem a O p eracio n a l

2 Kb

5 Kb

8 Kb

Pa rtiçã o 1

Pa rtiçã o 2

Pa rtiçã o 3

A

B

D

C

E

3 Kb

6 Kb

1 Kb

4 Kb

2 Kb

Page 8: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

8G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Alocação Particionada Estática: é gerada uma tabela de alocação de partições, a proteção é através de registradores que armazenam limites inferior e superior de cada partição.

Alocação Particionada:

M em ór ia Pr in cipa l

Sistem a O p eracio n a l

1

2

3

Program a C

Á rea l ivre

Program a B

Pa rtiçã o Tam a nh o Livre

1 2 Kb N ão

2 5 Kb Sim

3 8 Kb N ão

Page 9: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

9G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Problema: fragmentação interna.

– Um processo por partição, espaço não utilizado é perdido.

Alocação Particionada:

M em ó ria Pr in cip a l

Sistem a O p eracio n a l

1 Kb

3 Kb

5 Kb

Pro gram a C

Pro gram a A

Pro gram a E

BD6 Kb 4 K b

Page 10: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

10G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Alocação Particionada Dinâmica: partições alocadas dinamicamente de acordo com os requisitos de memória dos programas.

Alocação Particionada:

M em ória Pr in cipa lM em ó ria Pr in cipa l

Sistem a O p eracion a lSistem a O p era cion a l

4 Kb

1 Kb

3 Kb

5 Kb

2 Kb

15 K b

Program a C

Program a B

Program a A

Program a EBA

2 KbE

3 KbC

1 Kb 4 Kb

Page 11: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

11G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Problema: fragmentação externa.

– Término dos processos deixa espaços que podem ser insuficientes para novos programas.

Alocação Particionada:

M em ór ia Prin cip a l

Sistem a O p era cion a l

4 Kb

3 Kb

5 Kb

Pro gram a C

Pro gram a A

D

6 Kb

Page 12: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

12G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Problema: fragmentação externa.

– Dois tipos de solução: reunir espaços adjacentes ou relocação dinâmica.

Alocação Particionada:

M em ó ria Pr in cipa lM em ória Pr in cipa l

Sistem a O p eracio n a lSistem a O p eracion a l

8 Kb

4 Kb

3 Kb

5 Kb5 Kb

Pro gram a C

Pro gram a APro gram a A

M em ó r ia Pr in cip a lM em ó r ia Pr in cip a l

Sistem a O p eracio n a l

Relo caçã o

Sistem a O p eracio n a l

4 Kb

3 Kb

12 K b

5 Kb

Pro gram a C

Pro gram a CPro gram a A

Pro gram a A

obs: método muito custoso!

Page 13: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

13G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Estratégias de Alocação.– Best-Fit:

Alocação Particionada:

M em ória Pr in cipa l

Sistem a O p eracio n a l

4 Kb

3 Kb

5 Kb

Progra m a C

Progra m a A

F1 Kb

Sistem a O p eracion a l

2 Kb

Pro gram a C

Pro gram a FPro gram a A

Á rea l ivre

Page 14: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

14G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Estratégias de Alocação.– Worst-Fit:

Alocação Particionada:

M em ória Pr in cipa l

Sistem a O p eracio n a l

4 Kb

3 Kb

5 Kb

Progra m a C

Progra m a A

F1 Kb

Sistem a O p eracio n a l

4 Kb

Program a C

Progra m a A

Á rea l ivre

Pro gram a F

Page 15: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

15G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Estratégias de Alocação.– First-Fit:

Alocação Particionada:

M em ória Pr in cipa l

Sistem a O p eracio n a l

4 Kb

3 Kb

5 Kb

Progra m a C

Progra m a A

F1 Kb

Sistem a O p era cio na l

3 K b

Pro gram a C

Pro gram a A

Á rea livre

Pro gram a F

Page 16: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

16G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Problema: e se não houver memória RAM suficiente para acomodar todos os processos?

• Solução: realizar uma troca de processos, ou swapping.

– Um dos processos em RAM é deslocado para uma memória secundária (swap out) e dá lugar ao “novo” processo (swap in).

– Opta-se por remover o processo em wait com menos chance de ser executado (possivelmente pode optar por um processo em ready).

– Uma área do disco passa a ser usada como memória secundária (área de swap).

– Mais tarde, o processo swapped out é escalonado e swapped in, voltando a ser executado.

Troca de Processos (Swapping):

Page 17: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

17G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Swapping:– necessário haver relocação

dinâmica; – permite um maior

compartilhamento;– custo elevado p/operações

de swap in e swap out.

• Problema: não havendo espaço para crescimento ou relocação, e/ou a área de swap estiver cheia, o processo poderá ficar em estado de espera ou ser terminado.

Troca de Processos (Swapping):

M em ória Pr in cip a l

M em ória Pr in cip a l

Sistem aO peracio n a l

Sistem aO peracio n a l

Pro gram a A

Pro gram a A

Pro gram a G

Á rea LivreSw ap in

Sw a p o u t

A rq u ivod e Sw a p

Pro gram a E

Pro gram a E

Pro gram a B

Pro gram a H

H

B

B

Page 18: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

18G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• A técnica de memória virtual fundamenta-se em desvincular o espaço de endereçamento físico (RAM) do espaço de endereçamento usado pelo programa.

• Para tal é criado um espaço de endereçamento virtual, linear e contínuo (semelhante a um vetor), para atender os requisitos de memória de um dado programa abstraindo-se questões de implementação física.

• Os objetivos principais desta técnica são o de maximizar o número de processos em memória, reduzir a fragmentação e permitir estruturas de dados maiores que a memória física.

Memória Virtual:

Page 19: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

19G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• O espaço de endereços virtuais, arranjados na forma de vetor, corresponde à memória virtual e pode ser maior que o espaço de memória real.

Memória Virtual:

Espa

ço d

e en

dere

çam

ento

virtu

al

Espa

ço d

e en

dere

çam

ento

realEn dereço vir tu a l 0

En dereço vir tu a l 1En dereço vir tu a l 2En dereço vir tu a l 3En dereço vir tu a l 4En dereço vir tu a l 5

.

.

.En dereço vir tu a l V

En dereço rea l 0En dereço rea l 1En dereço rea l 2En dereço rea l 3

.

.

.En dereço rea l R

Page 20: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

20G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• A porção de memória virtual ativa do programa fica situada na memória principal, o restante fica armazenado em disco.

Memória Virtual:

M em ória V irtua l

.

.

.

.

M em ória Pr in cipa l

M em ó r ia Secu nd á r ia

.

.

.

Page 21: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

21G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• A unidade de gerenciamento de memória mapeia os endereços virtuais em endereços físicos.

Mapeamento:

M em ória V irtua l

M em ór ia Pr in cip a l

M ap eam en to

.

.

.

.

.

.

• OBS: um programa não precisa estar em endereços contíguos da memória principal para ser executado.

Page 22: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

22G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• O mecanismo de tradução se encarrega de manter tabelas de mapeamento exclusivas para cada processo.

Mapeamento:

Processo A

Esp a ço d een dereça m en to

virtua l d e A

En dereço vir tu a l 1

.

.

.

Tab ela dem a pea m en to

d e A

Esp a ço d een dereça m en to

virtua l d e B

En dereço vir tu a l 1

.

.

.

Tab ela dem a pea m en to

d e B

Processo B

M em ó ria Pr in cip a l

Page 23: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

23G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Problema: se cada entrada na tabela de mapeamento representar uma célula da memória virtual, o espaço ocupado pela tabela seria da ordem de tamanho da memória virtual, inviabilizando sua implementação.

• Solução: particiona-se a memória virtual em blocos.– Cada bloco da memória virtual estará representado por uma

entrada na tabela de mapeamento.– Tamanho do bloco determina o número de entradas na tabela de

mapeamento.– 3 técnicas são usadas para o particionamento em blocos:

paginação, segmentação e segmentação com paginação.– Abordagens também se apoiam no princípio da localidade.

Mapeamento:

Page 24: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

24G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• A técnica mais comum utilizada para implementar memória virtual é a paginação.

• Nesta técnica, tanto memória virtual como memória principal são divididas em blocos de igual tamanho chamados páginas.– Tamanho do bloco determina o nível de fragmentação.

• Quando uma página referenciada não é encontrada na RAM, diz-se que houve um page fault.

• Na ocorrência de um page fault, realiza-se uma operação de paginação, ou seja, de troca de páginas entre a memória principal e a memória virtual em disco.

Paginação:

Page 25: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

25G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Cada processo possui sua própria tabela de páginas.– Uma página virtual contém um bloco de endereços virtuais.

Paginação:

M em ória V ir tua l

.

.

.

.

Págin a virtua l 0

Pá g in a virtua l 1

Pág in a virtua l 2

Pág in a virtua l V

Tab ela dep ágin as

ETP

M em ó ria Pr in cipa l

M em ória Secu nd á r ia

.

.

.

Págin a rea l 0

Pág in a rea l 1

Pág in a rea l R

• ETP: Entrada da Tabela de Páginas, associada a cada página virtual de um processo.

• Os blocos da memória principal que abrigam as páginas reais são chamados frames.

Page 26: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

26G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• O endereço virtual é composto pelo número da página virtual (NPV) mais seu deslocamento na página.

• O NPV serve para indexar a tabela de páginas e obter o endereço do frame.

• O endereço físico correspondente ao endereço virtual é obtido a partir do endereço físico do frame encontrado na tabela de páginas mais o deslocamento.

Paginação:

Págin a virtua l

D eslo cam en to

En dereço virtu a l

D eslo c.N PV

En d . do fra m eETP

Tab ela de pá gina s

En d . do fra m e D eslo c.

Fram e

D eslo cam en to

En dereço físico

Page 27: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

27G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• O bit de validade numa ETP indica se a página em questão encontra-se na memória principal ou não.

• Se a ETP da página que contém o endereço virtual desejado tem bit de validade 0, ou seja, não está na memória principal, ocorre um page fault.

Paginação:

En dereço virtu a l

Tab ela de pá gina s

Bit d e va l id ad e0

M em ó r ia Pr in cipa l

M em ó ria secun d ária

Page fau lt

Tab ela de pá gina s

Bit d e va l id ad e1

M em ó r ia Pr in cipa l

M em ó ria secun d ária

Pa ge in

Page 28: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

28G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Quando ocorre um page fault, a página referenciada é carregada para a memória principal (page in) no local de uma página que já se encontrava na RAM (page out, supondo memória RAM cheia). Esta página a ser substituída é escolhida segundo algum algoritmo de substituição.

Paginação:

M em ó ria Pr in cip a l

A rq u ivo dep agin açã o

Page out

Pa g e in

Page 29: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

29G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Políticas de Substituição de Página:– Política de Substituição Local: apenas páginas referentes ao

processo corrente podem ser substituídas.– Política de Substituição Global: páginas de qualquer processo

podem ser substituídas.

• Políticas de Busca de Páginas:– Paginação por Demanda: páginas são transferidas para a

memória principal apenas quando referenciadas.– Paginação Antecipada: além da página referenciada, o sistema

carrega um conjunto de outras páginas para a memória esperando que elas venham a ser referenciadas mais tarde.

Paginação:

Page 30: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

30G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Políticas de Alocação de Página: determina quantos frames cada processo pode manter na memória principal.

– Política de Alocação Fixa: cada processo tem um número máximo de frames que podem ser usados durante sua execução.

• Definido no momento da criação do processo de acordo com o tipo de aplicação que será executada.

– Política de Alocação Variável: número máximo de frames pode variar durante sua execução de acordo com a taxa de paginação e a ocupação da memória principal.

• Mais flexível, mas exige overhead para o monitoramento dos processos.

Paginação:

Page 31: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

31G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Algoritmos de Substituição de Páginas: procuram manter o working set (de páginas) dos processos na memória principal sem comprometer o desempenho do sistema.

Paginação:

tem poP2 P3 P4 P5 P2 P5 P5 P5 P5 P6

t1 t2 t3

ta tb

Page 32: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

32G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Algoritmos de Substituição de Páginas: o algoritmo ótimo seria (utopicamente) aquele que selecionasse uma página que não será mais referenciada ou que será a menos referenciada.

• Exemplos de algoritmos:

– Aleatório;– FIFO (escolhe a página mais antiga);– LFU (Least Frequetly Used);– LRU (Least Recently Used);– NRU (Not Recently Used, similar ao LRU porém mais simples);– FIFO circular (se a página mais antiga foi referenciada

recentemente, ela vai para o final da fila).

Paginação:

Page 33: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

33G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Paginação em Múltiplos Níveis:

– Problema: tamanho das tabelas de páginas de um nível continuam grandes para dados realistas (ex: páginas de 4K endereços em arquitetura de 32 bits ocupam cerca de 4MB).

– Solução: usar tabelas de páginas em múltiplos níveis (princípio da localidade é aplicado às tabelas de mapeamento).

• Apenas as informações sobre páginas realmente necessárias aos processos ficam residentes na memória principal.

• Em outras palavras: a tabela de páginas também passa a ser paginada.

Paginação:

Page 34: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

34G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Paginação em Múltiplos Níveis:

Paginação:

Ta b ela d iretó r io

D esloc.12 b its

N PV 110 b its

En dereço V irtua lN PV 210 b its

Ta b ela de pá g ina s

fra m e

Page 35: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

35G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Paginação em Múltiplos Níveis:

Paginação:

M em ór ia Prin cip a l10 23

Tab ela d ire tó r io0

1

2

3

012

10 23

Tab ela de pá g ina s 1

3

012

10 23

Tab ela de pá g ina s 0

3

012

10 23

Tab ela de pá g ina s 1 023

3

fram e 10 0fram e 20 00

fram e 40 00fram e 30 0 100

40 00

20 00

30 0

Page 36: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

36G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Translation Lookaside Buffer (TLB):

– Se vale do princípio da localidade e mapea endereços virtuais em endereços físicos para evitar o acesso à tabela de páginas.

– Funciona como uma memória cache, mantendo a tradução dos endereços virtuais das páginas mais referenciadas recentemente.

– Campos da TLB:

Paginação:

Page 37: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

37G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Translation Lookaside Buffer (TLB):

Paginação:

M em ór ia p rincip a l

D eslo c.N PV

En dereço V irtua l

Tran sla tio n Lo oka sid e Buff er (TLB)BV Tag En d. Físico010101

Tab ela de map eam en toBV En d. Físico

11

1

0

101

M em ória secun dá ria

Page 38: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

38G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Proteção: cada página conta com dois bits de proteção nas ETPs, um permitindo ou não acesso de leitura, outro permitindo ou não acesso de escrita.

Paginação:

L G En dereço dap ág in a / seg m en to

Bits d e p ro teçã o

D escriçã oSem a cesso

A cesso d e leitu raA cesso p a ra le itu ra / g ravação

LG001011

Page 39: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

39G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Espaço de endereços é dividido em blocos de diferentes tamanhos chamados segmentos.

• Mantém uma relação lógica com a estrutura do programa e sua alocação na memória principal.

• A definição dos segmentos costuma ser realizada pelo compilador e cada segmento pode representar um procedimento, uma função, um vetor ou uma pilha.

• É atribuído a cada processo um número máximo de segmentos e um tamanho máximo para cada segmento.

• Pode ter problema de fragmentação externa.

Segmentação:

Page 40: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

40G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

naSegmentação:

PRO G RA M Segm ento ; V A R A : A RRA Y... C : . ..PRO C ED U RE X;EN D ;FU N C TIO N Y;

EN D ;

BEG IN

EN D.

Proced im ento X

Program a Pr in cipa l

Fu nçã o Y

A rra y A

Va riáve l C...

Page 41: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

41G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• O mecanismo de mapeamento é semelhante ao da paginação.

• Campos da ETS:

Segmentação:D eslocam en to

En dereço virtu a l

D esloc.

En d. do segm en toETS

Ta b ela de seg m en tos

D eslo c.

Segm ento n am em ór ia pr in cipa l

D eslocam en to

En dereço físico

Segm ento virtua l

Page 42: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

42G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Paginação x Segmentação:

Segmentação:

Page 43: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

43G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Segmentação com paginação: realiza paginação para cada segmento.

• Procura oferecer as vantagens de ambas as técnicas.

Segmentação:

En dereço do fra m e D eslo ca m en to

D esloca m en toN um .seg m en to

N um .p ág in a

En dereço vir tu a l

Segm ento virtua l

En d . da ta bela d e p á g in a sETS

Tab ela de seg m en to s

En dereço do fra m eETP

Ta b ela de pá gina s

En dereço físico

Page 44: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

44G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Exatamente a mesma técnica de swapping, porém aplicada às páginas ou segmentos referentes aos processos swapped out e, posteriormente, swapped in.

Swapping em Memória Virtual:

M em ó ria Pr in cipa l

Pro cesso AProcesso B

Processo E

Processo D

Pro cesso CProcesso F

M em ó ria Pr in cipa l

Pro cesso A

Pro cesso F

Processo BProcesso D

Processo CA rq u ivo desw a pp in g

Pro cesso B

Sw ap ou t

Sw ap in

Page 45: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

45G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Ocorre quando há uma taxa elevada de faults, sejam de segmentos ou de páginas, seja a nível de sistema ou de processo.

• Acarreta uma degradação no desempenho da máquina: uma página ou segmento swapped out em breve será requisitada para fazer swap in, causando um efeito cascata.

• CPU perde muito tempo com swapping de páginas/segmentos.

• Se houver uma demanda de memória, pelos processos a serem executados, maior que a capacidade da memória principal, a única solução é aumentar esta capacidade.

Thrashing:

Page 46: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

46G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Sistemas atuais trabalham com múltiplos processos disputando recursos e compartilhando memória, daí a necessidade de um gerenciamento de memória.

• Cada processo utiliza uma determinada área de memória, demanda total de memória costuma ser maior que a memória RAM disponível.

• Solução é utilizar o disco para armazenamento temporário. Duas técnicas são empregadas: Troca de Processos (Swapping) e Memória Virtual.

Resumo:

Page 47: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

47G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Troca de Processos:– se um novo processo é iniciado e não há área de memória

disponível para alocá-lo, um dos processos em RAM é jogado para o disco (swapped out) para abrir espaço;

– quando algum processo em espera na área de swap for novamente escalonado para execução, ele é jogado de volta para a RAM (swapped in) em alguma área disponível que o comporte;

– problemas de fragmentação;– quando falta espaço para um processo crescer, ele é swapped

out;– processos precisam caber na memória RAM.

Resumo:

Page 48: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

48G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Memória Virtual:– é criado um espaço de endereçamento virtual linear,

semelhante a um vetor, para atender aos requisitos de memória do programa;

– a memória virtual pode ser maior que a memória principal, usa o disco para armazenar os endereços que não estão ativos;

– a unidade de gerenciamento mapea os endereços virtuais em endereços físicos, cada processo tem sua própria tabela de mapeamento;

– vantagens da Memória Virtual: maximização do número de processos em memória, redução da fragmentação e permitir estruturas de dados maiores que a RAM;

– técnica mais usada é a paginação, que divide a memória virtual em blocos de igual tamanho chamados páginas;

Resumo:

Page 49: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

49G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

na

• Memória Virtual:– quando ocorre um page fault, é realizada uma operação de

paginação (page out, page in);– a segmentação divide a memória virtual em blocos de

diferentes tamanhos chamados de segmentos. Cada segmento está associado a um módulo do programa;

– é possível fazer segmentação com paginação e buscar as vantagens de ambas as técnicas.

• Pode-se aplicar a técnica de swapping em memória virtual:– Processos em estado de espera são preferidos para swap-out.

• Problemas de Thrashing ocorrem quando se tem uma taxa elevada de transferências entre memória principal e secundária.

Resumo:

Page 50: 1 Gerência de Memória - Sidney C. de Lucena Gerência de Memória Sidney Cunha de Lucena Baseado no livro “Arquitetura de Sistemas Operacionais”, Francis.

50G

erên

cia

de M

emór

ia -

Sidn

ey C

. de

Luce

naReferências:

Arquitetura de Sistemas Operacionais (capítulos 9 e 10). Francis Berenger Machado e Luiz Paulo Maia. 3a edição - LTC, 2002.

Sistemas Operacionais - Conceitos e Aplicações (capítulos 9 e 10). Abraham Silberschatz, Peter Galvin e Greg Gagne. 1a edição - Editora Campus, 2000.

Exercícios recomendados: Livro do Silberschatz, páginas 207-209 e 240-243.Obs: há uma edição mais recente nas livrarias.