7_gerenciamentomemoria

57
SISTEMAS OPERACIONAIS ATSLANDS ROCHA GERENCIAMENTO DE MEMÓRIA

Upload: joseamorim26

Post on 19-Jun-2015

265 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7_GerenciamentoMemoria

SISTEMAS OPERACIONAISATSLANDS ROCHA

GERENCIAMENTO DE MEMÓRIA

Page 2: 7_GerenciamentoMemoria

2INTRODUÇÃO

Idealmente, o que todo programador deseja é dispor de uma memória que seja grande, rápida e volátil;

O gerenciador de memória trata a hierarquia de memórias.

Page 3: 7_GerenciamentoMemoria

CONCEITOS BÁSICOSEndereç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 Nunca trata os endereços físicos reais.

Page 4: 7_GerenciamentoMemoria

GERENCIAMENTO DE MEMÓRIAMemory Management Unit (MMU);Dispositivo de hardware que mapeia

endereços virtuais para endereços físicos.

Page 5: 7_GerenciamentoMemoria

ESQUEMAS DE GERENCIAMENTO DE MEMÓRIAGerenciamento básico de memória;Troca de processos;Memória virtual;Algoritmos de substituição de páginas;Segmentação.

Page 6: 7_GerenciamentoMemoria

6GERENCIAMENTO BÁSICO DE MEMÓRIA MONOPROGRAMAÇÃO SEM TROCA DE PROCESSOS OU PAGINAÇÃO

Três maneiras simples de organizar a memória Um sistema operacional e um processo de usuário.

Page 7: 7_GerenciamentoMemoria

7MULTIPROGRAMAÇÃO COM PARTIÇÕES FIXAS

Partições fixas de memóriaa) Filas de entrada separadas para cada partição;b) Fila única de entrada.

Page 8: 7_GerenciamentoMemoria

MULTIPROGRAMAÇÃO COM PARTIÇÕES FIXAS Número, tamanho e a localização das partições

são fixas; Vantagens:

Alocação e liberação simples de memória; Gerenciamento de trocas de processos simples.

Desvantagens: Blocos podem ser grandes ou pequenos para

acomodar os processos; Reflexão: E se o processo crescer durante a

execução?!

Page 9: 7_GerenciamentoMemoria

9RELOCAÇÃO E PROTEÇÃ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.

Uma possível solução Instruções do programa são modificadas segundo a

partição de memória em que ele será carregado.

Uma solução para relocação e proteção: Uso de valores base e limite.

Page 10: 7_GerenciamentoMemoria

RELOCAÇÃO E PROTEÇÃO

Page 11: 7_GerenciamentoMemoria

GERENCIAMENTO DE MEMÓRIA Partição fixa é simples e eficiente para organizar

sistemas em lote; Solução para o tempo compartilhado é diferente

porque não há memória suficiente para todos os processos ativos: Troca de processos; Memória virtual.

Page 12: 7_GerenciamentoMemoria

12TROCA DE PROCESSOS (PARTIÇÕES VARIÀVEIS)

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.

Page 13: 7_GerenciamentoMemoria

TROCA DE PROCESSOS (PARTIÇÕES VARIÀVEIS) 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; Não é muito usado.

Reflexão: E se o processo crescer durante a execução?!

Page 14: 7_GerenciamentoMemoria

14TROCA DE PROCESSOS

a) Alocação de espaço para uma área de dados em expansão

b) Alocação de espaço para uma pilha e uma área de dados, ambos em expansão

Page 15: 7_GerenciamentoMemoria

TROCA DE PROCESSSOS Consiste em:

Trazer TOTALMENTE cada processo para a memória;

Executar o processo durante um certo tempo; Devolve o processo para o disco.

Page 16: 7_GerenciamentoMemoria

16

TROCA DE PROCESSOS(SWAPPING)

Page 17: 7_GerenciamentoMemoria

17

TROCA DE PROCESSOS(SWAPPING)

Swapping: movimento de processos da memória principal para o disco e vice-versa

Page 18: 7_GerenciamentoMemoria

18

TROCA DE PROCESSOS(SWAPPING)

Swap out: memória principal - disco Swap in: disco – memória principal

Page 19: 7_GerenciamentoMemoria

19

TROCA DE PROCESSOS(SWAPPING) O principal objetivo é que a execução do processo

continue O disco deve ser rápido e grande para obter bom

desempenho. Maior parte do tempo de troca de processos é

tempo de transferência Tempo total de transferência é diretamente

proporcional à quantidade de memória transferida. Versões modificadas de swapping são

encontradas em muitos sistemas (UNIX e Windows).

Page 20: 7_GerenciamentoMemoria

20GERENCIAMENTO DE MEMÓRIA COM MAPAS DE BITS

a) Parte da memória com 5 segmentos de processos e 3 segmentos de memória livre

Regiões brancas denotam as unidades já alocadas (bit 1); Regiões sombreadas denotam segmentos livres (bit 0).

b) Mapa de bits correspondentec) Mesmas informações em uma lista encadeada

Page 21: 7_GerenciamentoMemoria

GERENCIAMENTO DE MEMÓRIA COM MAPAS DE BITSAlgumas considerações:

Quanto menor a unidade de alocação, maior o mapa de bits;

Quanto maior a unidade de alocação, menor o mapa de bit, mas haverá mais desperdício na alocação para processos;

Problemas: Para carregar um processo na memória de k

unidades, o MMU precisa procurar no mapa de bits uma sequência de k bits 0´s consecutivos Torna lento.

Page 22: 7_GerenciamentoMemoria

22GERENCIAMENTO DE MEMÓRIACOM LISTAS ENCADEADAS

Quatro combinações de vizinhança para o processo X em término de execução

Page 23: 7_GerenciamentoMemoria

GERENCIAMENTO DE MEMÓRIACOM LISTAS ENCADEADAS Vantagens:

Simples e rápido atualizar a lista de segmentos de memória (vizinhos).

Algoritmos para alocação de segmentos livres:

Page 24: 7_GerenciamentoMemoria

GERENCIAMENTO DE MEMÓRIACOM LISTAS ENCADEADAS

First-Fit (o primeiro que couber) Dois segmentos: Processo + Resto livre; Mínimo de pesquisa na lista.

Best-Fit (o melhor que couber) Deve procurar na lista inteira; Produz alocação com o maior desperdício que o

First-Fit (pequenos e inúteis). Worst-Fit (o pior que couber)

Deve procurar na lista inteira;Não é uma boa idéia.

Page 25: 7_GerenciamentoMemoria

GERENCIAMENTO DE MEMÓRIACOM LISTAS ENCADEADAS Possibilidade de se manter uma lista encadeada

para memórias livres e outra para memórias ocupadas Buscas por espaço livre ficam mais rápidas; Complexidade do gerenciamento aumenta; Desalocamento de memória fica mais complicado

(retirada de uma lista e inserção em outra).

Page 26: 7_GerenciamentoMemoria

26

FRAGMENTAÇÃO Fragmentação Externa

Memória total que existe para satisfazer uma requisição, mas é não contíguo;

Muitas vezes o processo não pode ser alocado apesar de haver memória “disponível”;

Reduzida com compactação de memória. Fragmentação Interna

A memória alocada geralmente é maior que a memória requerida, pois usa-se tamanhos fixos;

Apenas espaços requeridos que são múltiplos dos blocos fixos livres não desperdiçariam espaço;

Esta diferença que não está sendo utilizada é a fragmentação interna.

Page 27: 7_GerenciamentoMemoria

27

FRAGMENTAÇÃO EXTERNA

Page 28: 7_GerenciamentoMemoria

28

FRAGMENTAÇÃO INTERNA

Page 29: 7_GerenciamentoMemoria

MEMÓRIA VIRTUAL Um ÚNICO processo pode ser maior que a

memória física disponível Troca de processos entre memória e disco seria

insuficiente. Solução - memória virtual: Divide-se o processo

em partes (código + dados + pilha) e mantém na memória as partes em execução naquele momento Diferente da troca de processos memória-disco; Possível com a multiprogramação também.

Page 30: 7_GerenciamentoMemoria

MEMÓRIA VIRTUALPAGINAÇÃO Técnica usada pela maioria dos SO para

implementar a memória virtual; Aumenta o tamanho da memória física através

do uso de uma memória “virtual” (disco); O espaço físico de endereçamento não precisa ser

contíguo; Conceitos envolvidos: Espaço de endereçamento Virtual; Espaço de endereçamento Físico; Unidade de Gerenciamento de Memória (MMU);

Page 31: 7_GerenciamentoMemoria

31MEMÓRIA VIRTUALPAGINAÇÃO

Localização e função da MMU

Page 32: 7_GerenciamentoMemoria

PAGINAÇÃO Divide a memória física em molduras de páginas

(frames) de tamanho fixo; Divide a memória lógica em páginas virtuais de

tamanho fixo; Páginas e molduras de páginas são sempre de

tamanhos iguais; Há uma quantidade menor de molduras de

páginas (menor memória física); Transferência entre memória e disco em

unidades de páginas. MMU traduz o endereço virtual em endereço

físico;

Page 33: 7_GerenciamentoMemoria

33

Tabela de páginas : mapeamento de 64K de memória virtual em 32K de memoria física. Páginas de 4K.

MEMÓRIA VIRTUAL - PAGINAÇÃO

Page 34: 7_GerenciamentoMemoria

PAGINAÇÃO

Para executar um programa com N páginas, basta encontrar N blocos livres na memória Páginas são carregadas em qualquer bloco livre.

Page 35: 7_GerenciamentoMemoria

PAGINAÇÃOEXEMPLO Características do sistema:

Memória Física: 64 KB; Tamanho processo : 32 KB; Páginas e frames de páginas: 4 KB.

Paginação: N° de frames de páginas: 64/8 = 16 N° de páginas do processo: 32/8 = 8

Page 36: 7_GerenciamentoMemoria

36TABELAS DE PÁGINAS

Operação interna de uma MMU com 16 páginas de 4KBBit ativo/inativo

Page 37: 7_GerenciamentoMemoria

TAMANHO DAS PÁGINAS A tabela de página é mantida na memória

principal; Tamanho da página é imposto pela MMU; Páginas pequenas significam:

Processos compostos por mais páginas; Tabelas de páginas maiores; Menos fragmentação interna; Menos programa não usado na memória.

E páginas grandes?

Page 38: 7_GerenciamentoMemoria

GERÊNCIA DE PÁGINASA gerência da memória deve manter

controle das áreas livres e ocupadas; Inclusão de mecanismos de proteção

Garantir acessos autorizados a uma posição de memória Ex: páginas read-only, read-write (bits de controle)

Inclusão de mecanismos de compartilhamento Permitir que dois ou mais processos dividam uma

área comum (Ex: páginas de código de um editor de texto);

Bit de validade: válido/inválido.

Page 39: 7_GerenciamentoMemoria

PÁGINA AUSENTESe o processo tentar usar uma página

ausente, causará uma interrupção no SO (page fault): Se referência inválida Þ aborta; Se não está na memória:

Obtém bloco livre na memória; Traz página do disco para o bloco alocado; Atualiza tabela, bit de validação= 1; Reinicia execução da instrução.

E se não houver frames livres??

Page 40: 7_GerenciamentoMemoria

40ALGORITMOS DE SUBSTITUIÇÃO DE PÁGINASA falta de página força uma escolha

Qual página deve ser removida? Alocação de espaço para a página a ser trazida

para a memória.

A página modificada deve primeiro ser salva Se não tiver sido modificada é apenas sobreposta;

Melhor não escolher uma página que está sendo muito usada Provavelmente precisará ser trazida de volta logo.

Page 41: 7_GerenciamentoMemoria

41O ALGORITMO DE SUBSTITUIÇÃODE PÁGINA ÓTIMO

Substitui a página que não será usada pelo maior período de tempo;

Cada página deve ser rotulada com o número de instruções a seguir que serão executadas antes da página ser referenciada pela primeira vez;

Remove-se a página com o maior rótulo O que é melhor: deixar uma página que será usada após 50

instruções ou outra que será usada após 30 instruções? Adia a ocorrência da próxima falta de página o máximo

possível; Fácil de descrever e impossível de implementar

Como saber quando cada página será novamente referenciada?

Page 42: 7_GerenciamentoMemoria

EXEMPLO : ALGORITMO DE SUBSTITUIÇÃODE PÁGINA ÓTIMO

Com 4 frames de páginas (4 páginas podem estar na memória ao mesmo tempo para cada processo).

123412512345

Page 43: 7_GerenciamentoMemoria

43O ALGORITMO DE SUBSTITUIÇÃO DE PÁGINA NÃO USADA RECENTEMENTE (NUR) Cada página tem os bits Referenciada (R) e

Modificada (M) Bits são colocados em 1 quando a página é

referenciada e modificada; As páginas são classificadas

− Classe 0: não referenciada, não modificada;− Classe 1: não referenciada, modificada;− Classe 2: referenciada, não modificada;− Classe 3: referenciada, modificada.

NUR remove página aleatoriamente Da classe de ordem mais baixa que não esteja

vazia.

Page 44: 7_GerenciamentoMemoria

44ALGORITMO DE SUBSTITUIÇÃO DE PÁGINA PRIMEIRA A ENTRAR, PRIMEIRA A SAIR

Mantém uma lista encadeada de todas as páginas Página mais antiga na cabeça da lista; Página que chegou por último na memória no final da

lista.Na ocorrência de falta de página

Página na cabeça da lista é removida;Nova página adicionada no final da lista.

Desvantagem: Página há mais tempo na memória pode ser usada com

muita freqüência.

Page 45: 7_GerenciamentoMemoria

EXEMPLO: ALGORITMO DE SUBSTITUIÇÃO DE PÁGINA PRIMEIRA A ENTRAR, PRIMEIRA A SAIR Seqüência de Referência: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 4 frames de páginas

Page 46: 7_GerenciamentoMemoria

46O ALGORITMO DE SUBSTITUIÇÃO DE PÁGINA MENOS RECENTEMENTE USADA (MRU)

Assume que páginas usadas recentemente logo serão usadas novamente Retira da memória página que há mais tempo não é usada.

Uma lista encadeada de páginas deve ser mantida Página mais recentemente usada no início da lista, menos

usada no final da lista; Atualização da lista à cada referência à memória.

Alternativamente manter contador em cada entrada da tabela de página Escolhe página com contador de menor valor; Zera o contador periodicamente.

Page 47: 7_GerenciamentoMemoria

EXEMPLO: ALGORITMO DE SUBSTITUIÇÃO DE PÁGINA MENOS RECENTEMENTE USADA (MRU) Seqüência de Referência

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Com 4 frames de páginas.

8 páginas ausentes

Page 48: 7_GerenciamentoMemoria

PAGINAÇÃOCONSIDERAÇÃO FINAL E se um segmento crescer mais que o tamanho da

página? Solução: Uso da segmentação.

Page 49: 7_GerenciamentoMemoria

SEGMENTAÇÃO Esquemas de gerenciamento de memória que

suportam a visão do usuário/programador Um programa é uma coleção de segmentos,

tipicamente: código, dados alocados estaticamente (e dinamicamente) e pilha.

Um segmento suporta uma única unidade lógica Procedimentos (funções) e bibliotecas.

Endereço físico consiste de duas partes:<número do segmento, posição nesse segmento>

Segmentos não precisam ter o mesmo tamanho; Existe um tamanho máximo de segmento.

Page 50: 7_GerenciamentoMemoria

50SEGMENTAÇÃO

Permite que cada tabela cresça ou encolha, independentemente

Page 51: 7_GerenciamentoMemoria

51

Page 52: 7_GerenciamentoMemoria

52IMPLEMENTAÇÃO DE SEGMENTAÇÃO PURA

(a)-(d) Desenvolvimento de fragmentação externa(e) Remoção da fragmentação via compactação

Page 53: 7_GerenciamentoMemoria

53SEGMENTAÇÃO

Comparação entre paginação e segmentação

Page 54: 7_GerenciamentoMemoria

SEGMENTAÇÃO COM PAGINAÇÃO Recuperar as vantagens dos dois métodos em

relação a fragmentação: Fragmentação interna: paginação apresenta,

segmentação não; Fragmentação externa: segmentação apresenta,

paginação não. Solução se traduz em paginar segmentos!

Fazer um segmento ser composto por um número fixo de bytes;

Equivale a ter o segmento dividido internamente em blocos.

Page 55: 7_GerenciamentoMemoria

55SEGMENTAÇÃO COM PAGINAÇÃO

Exemplo: Descritores de segmentos apontam para tabelas de páginas

Page 56: 7_GerenciamentoMemoria

56

Exemplo: Um endereço virtual de 34 bits

SEGMENTAÇÃO COM PAGINAÇÃO

Page 57: 7_GerenciamentoMemoria

DÚVIDAS?!