60
1 n Sistemas Operacionais Moder Sistemas Operacionais -Gerência de Memória Ernesto Massa (slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

2009 1 - sistemas operacionais - aula 8 - memoria

Embed Size (px)

Citation preview

Page 1: 2009 1 - sistemas operacionais - aula 8 - memoria

1Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Sistemas Operacionais-Gerência de Memória

Ernesto Massa

(slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

Page 2: 2009 1 - sistemas operacionais - aula 8 - memoria

2Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Gerenciamento de Memória

Idealmente, o que se deseja é dispor de uma memória que seja Grande, rápida e não volátil.

Hierarquia de memórias Cache

pequena quantidade de memória rápida, de alto custo.

Memória Principal Quantidade considerável de velocidade

média, custo médio. Armazenamento em disco

Velocidade e custo baixos.

Page 3: 2009 1 - sistemas operacionais - aula 8 - memoria

3Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Gerenciamento de Memória

Algumas funções do Gerenciador de memória: Controlar quais as unidades de memória estão

ou não estão em uso, para que sejam alocadas quando necessário;

Liberar as unidades de memória que foram desocupadas por um processo que finalizou;

Tratar do Swapping entre memória principal e memória secundária.

Transferência temporária de processos residentes na memória principal para memória secundária.

Page 4: 2009 1 - sistemas operacionais - aula 8 - memoria

4Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Gerenciamento Básico de Memória: Monoprogramação

Sistema operacional com apenas um processo de usuário

(a) Inicialmente utilizados em Mainframes(b) Sistemas Embarcados(c) Primeiros Microcomputadores Pessoais

Page 5: 2009 1 - sistemas operacionais - aula 8 - memoria

5Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Contígua Simples

Alocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis;

A Memória é dividida em duas áreas: Área do Sistema Operacional Área do Usuário

Um usuário não pode usar uma área maior do que a disponível;

Sem proteção: Um usuário pode acessar a área

do Sistema Operacional.

Memória principal

Sistema Operacional

Área deProgramas do usuário

Page 6: 2009 1 - sistemas operacionais - aula 8 - memoria

6Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Contígua Simples

Registrador de proteção delimita as áreas do sistema operacional e do usuário;

Sistema verifica acessos à memória em relação ao endereço do registrador;

A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória;

Memória principal

Sistema Operacional

Área deProgramas do usuário

Reg

Page 7: 2009 1 - sistemas operacionais - aula 8 - memoria

7Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Contígua Simples

Programas de usuário limitados pelo tamanho da memória principal disponível.

Solução: Overlay Dividir o programa em módulos; Permitir execução independente

de cada módulo, usando a mesma área de memória;

Área de Overlay Área de memória comum onde

módulos compartilham mesmo espaço.

Memória principal

Sistema Operacional

Área deOverlay

Área do Módulo Principal

A B C

Page 8: 2009 1 - sistemas operacionais - aula 8 - memoria

8Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Multiprogramação:Alocação Particionada

Multiprogramação. Necessidade do uso da memória por vários usuários

simultaneamente. Ocupação mais eficiente do processador; A memória foi dividida em pedaços de tamanho

fixo chamados partições; O tamanho de cada partição é estabelecido na

inicialização do sistema; Para alteração do particionamento, é necessário

uma nova inicialização com uma nova configuração.

Page 9: 2009 1 - sistemas operacionais - aula 8 - memoria

9Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Particionada Estática

Proteção: Registradores com limites

inferior e superior de memória acessível.

Programas não ocupam totalmente o espaço das partições, gerando uma fragmentação interna.

Memória principal

Sistema Operacional

Partição C

Partição A

Reg

Reg

Partição B

Page 10: 2009 1 - sistemas operacionais - aula 8 - memoria

10Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Particionada Estática

Alocação Particionada Estática Absoluta: Compiladores gerando código absoluto;

Endereços relativos ao início da memória; Programas exclusivos para partições

específicas.

Alocação Particionada Estática Relocável: Compiladores gerando código relocável;

Endereços relativos ao início da partição; Programas podem rodar em qualquer partição.

Page 11: 2009 1 - sistemas operacionais - aula 8 - memoria

11Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Multiprogramação com Partições Fixas (Estática)

Partições fixas de memória (a) Filas de entrada para cada partição (b) Fila única de entrada

Page 12: 2009 1 - sistemas operacionais - aula 8 - memoria

12Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Particionada Dinâmica

Não existe o conceito de partição dinâmica. O espaço utilizado por um

programa é a sua partição. Não ocorre fragmentação

interna. Ao terminarem, os programas

deixam espalhados espaços pequenos de memória, provocando a fragmentação externa.

Memória principal

Sistema Operacional

Processo E

Processo A

Processo C

Processo F

Page 13: 2009 1 - sistemas operacionais - aula 8 - memoria

13Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Considerações sobreRelocação e Proteção

Não se sabe com certeza onde o programa será carregado na memória As Localizações de endereços de variáveis e de

código de rotinas não podem ser absolutos Soluções:

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 registradores com valores base e limite

As localizações de endereços são somadas ao valor base antes de serem mapeadas na memória física

Referência a endereços superiores ao limite indicam erro.

Page 14: 2009 1 - sistemas operacionais - aula 8 - memoria

14Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Dinâmica:Troca de Processos (ou Swapping)

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 15: 2009 1 - sistemas operacionais - aula 8 - memoria

15Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Alocação Dinâmica:Troca de Processos (ou Swapping)

Um processo residente na memória é levado para o disco (Swapped-Out), dando lugar a outro;

O processo Swapped-Out retorna à memória (Swapped-In), sem “perceber” o que ocorreu.

programa B

programa A

programa E

programa A

programa G

Sistema Operacional

Memória principal

programa H

programa E

programa A

B B

Swap InSwap Out

Sistema Operacional

programa B

Page 16: 2009 1 - sistemas operacionais - aula 8 - memoria

16Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Extra

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

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

Page 17: 2009 1 - sistemas operacionais - aula 8 - memoria

17Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Gerenciamento de Memória com Mapas de Bits e Lista Encadeada

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

pequenos riscos simétricos denotam as unidades de alocação

regiões sombreadas denotam segmentos livres Mapa de bits correspondente Mesmas informações em uma lista encadeada

Page 18: 2009 1 - sistemas operacionais - aula 8 - memoria

18Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Gerenciamento de Memóriacom Listas Encadeadas

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

Page 19: 2009 1 - sistemas operacionais - aula 8 - memoria

19Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmos de Alocação de Memória

Best-Fit (melhor ajuste): Worst-Fit (pior ajuste): First-Fit (primeiro ajuste): Next-Fit (próximo ajuste): Todos melhoram em performance se existirem listas

distintas para processos e espaços, embora o algoritmo fique mais complexo.

Listas ordenadas por tamanho de espaço melhoram a performance.

Page 20: 2009 1 - sistemas operacionais - aula 8 - memoria

20Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Modelagem de Multiprogramação

Utilização da CPU como uma função do número de processos na memória

Page 21: 2009 1 - sistemas operacionais - aula 8 - memoria

21Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Análise de Desempenho de Sistemas de Multiprogramação

Chegada de 4 jobs e suas necessidades de trabalho Utilização da CPU por até 4 jobs com 80% de espera por

E/S

Sequência de eventos entre a chegada e o término dos jobs

Note que os números mostram quanto tempo da CPU cada job obtém em cada intervalo

Page 22: 2009 1 - sistemas operacionais - aula 8 - memoria

22Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Técnica onde memória principal e secundária são combinadas de forma a “emular” uma memória de tamanho maior que a memória principal (real);

A memória secundária é usada como extensão da memória principal;

Permite um maior número de processos compartilhando a memória principal;

Não vincula o endereçamento dos programas aos endereços físicos da memória principal;

Programas não ficam mais limitados ao tamanho da memória principal disponível;

Minimiza o problema de fragmentação.

Page 23: 2009 1 - sistemas operacionais - aula 8 - memoria

23Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Espaço de Endereçamento:

Mapeamento

Memória VirtualEspaço de

Endereçamento Virtual

Memória PrincipalEspaço de

Endereçamento Real

Memória Secundária

Est

rutu

ra V

etor

ial

Page 24: 2009 1 - sistemas operacionais - aula 8 - memoria

24Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Mapeamento: Realizado por hardware + S.O. nos sistemas atuais,

através da MMU (Memory Management Unit - Unidade de Gerenciamento de Memória).

Cada processo com uma tabela de mapeamento própria.

No momento da execução, o endereço virtual é mapeado para o endereço físico, pois o processador só acessa endereços do espaço real;

Nas trocas de contexto, um registrador é responsável por indicar qual a tabela que deve ser utilizada.

Page 25: 2009 1 - sistemas operacionais - aula 8 - memoria

25Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Paginação:

Tabela de Páginas de A

Espaço Virtual do Processo A

Memória PrincipalEspaço de

Endereçamento Real

Memória Secundária

Espaço Virtualdo Processo B

Tabela de Páginas de B

Mem

óri

a V

irtu

al

Page Fault

Page In

Page 26: 2009 1 - sistemas operacionais - aula 8 - memoria

26Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Localização e função da MMU(Memory Management Unit)

Page 27: 2009 1 - sistemas operacionais - aula 8 - memoria

27Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Memória Virtual por Paginação: Memória Virtual e Real divididas em blocos de

mesmo tamanho (páginas); Páginas virtuais; Páginas reais ou frames;

As tabelas de páginas mapeiam os blocos de informações:

Quanto maior o bloco, menor o tamanho das tabelas;

Quanto maior o bloco, maior o tempo de transferência do bloco entre memória principal e secundária.

Page 28: 2009 1 - sistemas operacionais - aula 8 - memoria

28Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual

Memória Virtual por Paginação: Endereço Virtual = Nº da página virtual +

deslocamento; Um bit de validade (na tabela de páginas) indica se

a página já se encontra na memória principal ou não.

Taxa de Paginação = Nº de Page Fault em um intervalo de tempo.

Quando ocorre um page fault, o processo em questão passa ao estado de espera.

Page 29: 2009 1 - sistemas operacionais - aula 8 - memoria

29Pearson Education Sistemas Operacionais Modernos – 2ª Edição

01

Validade

--2

End. do Frame

Memória Virtual

Endereçamento Virtual:

Tabela de Páginas de A

Espaço Virtual do Processo A

Memória PrincipalEspaço de

Endereçamento Real

Mem

óri

a V

irtu

al

2...1

Página virtual

067...

203deslocamento

2 203

Endereço Físico

Memória Secundária

Page In

SO

Page 30: 2009 1 - sistemas operacionais - aula 8 - memoria

30Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Virtual Paginação

A relação entre endereços virtuais e endereços físicos de memória dada pela tabela de páginas

Page 31: 2009 1 - sistemas operacionais - aula 8 - memoria

31Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Tabelas de Páginas

Operação interna de uma MMU com 16 páginas de 4KB

Page 32: 2009 1 - sistemas operacionais - aula 8 - memoria

32Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Tabelas de Páginas

Entrada típica de uma tabela de páginas

Page 33: 2009 1 - sistemas operacionais - aula 8 - memoria

33Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Tabelas de Páginas

Tabelas de páginas muito grandes podem ser inviáveis Se armazenadas na MMU ocupariam

muito espaço; Se mantidas em memória, degradariam

o acesso à memória. Uma das soluções é a utilização de

tabelas de páginas em níveis.

Page 34: 2009 1 - sistemas operacionais - aula 8 - memoria

34Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Tabelas de Páginas

Endereço de 32 bits com 2 campos para endereçamento de tabelas de páginas

Tabelas de páginas com 2 níveis

Tabelas de páginas podem existir com diversos níveis, mas não é comprovada a eficiência de tabelas com mais de três níveis.

Page 35: 2009 1 - sistemas operacionais - aula 8 - memoria

35Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Memória Associativa ou TLB

TLB (translation lookaside buffer) para acelerar a paginação

Page 36: 2009 1 - sistemas operacionais - aula 8 - memoria

36Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmos de Substituição de Páginas

A falta de página força uma escolha Qual página deve ser removida para que seja

possível a alocação de espaço para a página a ser trazida para a memória?

Se a página escolhida foi 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 ela precisará ser trazida de volta em

pouco tempo

Page 37: 2009 1 - sistemas operacionais - aula 8 - memoria

37Pearson Education Sistemas Operacionais Modernos – 2ª Edição

O Algoritmo Ótimo

Substitui a página necessária o mais tarde possível ótimo mas não realizável

Estimada através do registro do uso das páginas em execuções anteriores

Page 38: 2009 1 - sistemas operacionais - aula 8 - memoria

38Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmo NURNão Usada Recentemente

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 estiver vazia

Page 39: 2009 1 - sistemas operacionais - aula 8 - memoria

39Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmo FIFO

Mantém uma lista encadeada de todas as páginas A página mais antiga é colocada no início da

lista A página que chegou por último é colocada no

final da lista Na ocorrência de page fault

A página no início da lista é removida A nova página é adicionada no final da lista

Desvantagem A página há mais tempo na memória pode

estar sendo utilizada com muita freqüência

Page 40: 2009 1 - sistemas operacionais - aula 8 - memoria

40Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmo de Substituição de Página Segunda Chance (SC)

Operação do algoritmo segunda chance Listas de páginas em ordem FIFO Exemplo: estado da lista em situação de page fault no

instante 20, com o bit de Referenciação da página A em 1 (números representam instantes de carregamento das páginas na memória)

Page 41: 2009 1 - sistemas operacionais - aula 8 - memoria

41Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmo Relógio

Page 42: 2009 1 - sistemas operacionais - aula 8 - memoria

42Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Menos Recentemente Usada (MRU)

Assume que páginas usadas recentemente logo serão usadas novamente Retira da memória as páginas que há mais tempo

não são utilizadas Uma lista encadeada de páginas deve ser mantida

A página mais recentemente usada no início da lista, a menos usada no final da lista

A atualização da lista deve ser feita a 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 43: 2009 1 - sistemas operacionais - aula 8 - memoria

43Pearson Education Sistemas Operacionais Modernos – 2ª Edição

O Algoritmo de Substituição de Página do Conjunto de Trabalho

O algoritmo do conjunto de trabalho

Page 44: 2009 1 - sistemas operacionais - aula 8 - memoria

44Pearson Education Sistemas Operacionais Modernos – 2ª Edição

O Algoritmo de Substituiçãode Página WSClock

Operação

do Algoritmo WSClock

Page 45: 2009 1 - sistemas operacionais - aula 8 - memoria

45Pearson Education Sistemas Operacionais Modernos – 2ª Edição

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

Seleção de qual, entre as diversas páginas alocadas deve ser liberada.

Necessidade de verificação se a página foi alterada (bit de modificação)

No caso da página liberada tiver sofrido modificação, esta deverá antes ser gravada no Arquivo de Paginação (page out).

Note que as páginas de código não podem ser modificadas, logo não sofrem page out.

Page 46: 2009 1 - sistemas operacionais - aula 8 - memoria

46Pearson Education Sistemas Operacionais Modernos – 2ª Edição

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

Política de Substituição Local: Apenas as páginas do processo que gerou o page

fault são candidatas à relocação. Política de Substituição Global:

Todas as páginas de todos os processos são candidatas à relocação.

Algumas páginas nunca são candidatas à relocação, como por exemplo as do núcleo do S.O.

Page 47: 2009 1 - sistemas operacionais - aula 8 - memoria

47Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Políticas de Busca de Páginas

Determinação de quando uma página deve ser carregada para a memória. Paginação por demanda:

Transferência de páginas para memória principal quando são referenciadas.

Apenas as páginas necessárias são transferidas. Paginação antecipada:

Além da página referenciada, são carregadas outras páginas que também podem (ou não) ser referenciadas futuramente.

Economia de tempo na cópia do conjunto de páginas.

Risco de trabalho desnecessário.

Page 48: 2009 1 - sistemas operacionais - aula 8 - memoria

48Pearson Education Sistemas Operacionais Modernos – 2ª Edição

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

Determina quantos frames cada processo pode manter na memória principal. Alocação Fixa:

Número máximo de frames (páginas) por processo. Caso o limite seja atingido, alguma página deve ser

descartada. O limite de páginas é determinado na criação do

processo. Limite de páginas mal dimensionado:

Se for pequeno: Muitos page faults; Degradação do sistema;

Se for grande: Espaço ocupado maior que o necessário; Reduz o grau de multiprogramação.

Page 49: 2009 1 - sistemas operacionais - aula 8 - memoria

49Pearson Education Sistemas Operacionais Modernos – 2ª Edição

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

Alocação Variável: O número máximo de frames de um processo

pode variar em função de sua taxa de paginação.

Processos com alta taxa de paginação podem aumentar o seu limite máximo de frames.

Processos com baixa taxa de paginação podem ter os seus limites máximos de frames reduzido.

Page 50: 2009 1 - sistemas operacionais - aula 8 - memoria

50Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Políticas de Alocação XPolíticas de Substituição

Relacionamento entre as Políticas de Alocação e Políticas de Substituição de páginas. Alocação Fixa:

Substituição Local. Alocação Variável:

Substituição Global. Substituição Local.

O SO avalia a taxa de paginação de um processo e altera o seu limite máximo de frames.

Page 51: 2009 1 - sistemas operacionais - aula 8 - memoria

51Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Considerações sobre Tamanho de Página

Tamanho de página pequeno Vantagens

Menos fragmentação interna Menos programa não usados na memória

Desvantagens Os programas precisam de mais páginas,

tabelas de página maiores...

Page 52: 2009 1 - sistemas operacionais - aula 8 - memoria

52Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Política de Limpeza

Processo que executa em background, um daemon de paginação Inspeciona periodicamente o estado da

memória Quando apenas algumas molduras de

página estão disponíveis Seleciona páginas a serem removidas usando

um algoritmo de substituição

Page 53: 2009 1 - sistemas operacionais - aula 8 - memoria

53Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Espaços Separados de Instruções e Dados

Espaço de endereçamento únicoX

Espaços separados de instruções (I) e dados (D)

Page 54: 2009 1 - sistemas operacionais - aula 8 - memoria

54Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Páginas Compartilhadas

Dois processos que compartilham o mesmo código de programa e, por conseqüência, a mesma tabela de páginas para instruções

Page 55: 2009 1 - sistemas operacionais - aula 8 - memoria

55Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Segmentação

Espaço de endereçamento unidimensional com tabelas crescentes

Uma tabela pode atingir outra

Page 56: 2009 1 - sistemas operacionais - aula 8 - memoria

56Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Segmentação

Permite que cada tabela cresça ou encolha, independentemente

Page 57: 2009 1 - sistemas operacionais - aula 8 - memoria

57Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Implementação de Segmentação Pura

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

Page 58: 2009 1 - sistemas operacionais - aula 8 - memoria

58Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Segmentação

programa A

Procedimento X

Memória principal

Função Y

Array A

Programa Principal

Programa Segmento;Var A: array... C: ...

Procedimento X;...End;

Function Y;...End;

Begin...End.

Variável C

...

S.O.

Page 59: 2009 1 - sistemas operacionais - aula 8 - memoria

59Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Segmentação

A Segmentação possui funcionamento análogo à Paginação.

Mapeamento: Os segmentos são mapeados através da

tabela de mapeamento de segmento (TMS); O Endereço virtual é formado pelo:

Número do segmento; Deslocamento dentro do segmento;

Page 60: 2009 1 - sistemas operacionais - aula 8 - memoria

60Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Segmentação com Paginação

Técnica onde os processos são divididos logicamente em Segmentos e cada segmento é dividido fisicamente em Páginas.

Endereço virtual é formado por: Número do segmento; Número de página dentro do segmento; Deslocamento dentro da página.