2009 1 - sistemas operacionais - aula 8 - memoria

Post on 27-Jun-2015

972 views 4 download

Transcript of 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)

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.

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.

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

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

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

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

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.

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

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.

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

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

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.

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

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

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

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

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

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.

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

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

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.

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

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.

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

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

Memória Virtual

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

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.

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.

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

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

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

Tabelas de Páginas

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

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

Tabelas de Páginas

Entrada típica de uma tabela de páginas

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.

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.

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

Memória Associativa ou TLB

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

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

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

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

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

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)

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

Algoritmo Relógio

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

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

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

O Algoritmo de Substituiçãode Página WSClock

Operação

do Algoritmo WSClock

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.

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.

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.

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.

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.

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.

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...

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

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)

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

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

Segmentação

Espaço de endereçamento unidimensional com tabelas crescentes

Uma tabela pode atingir outra

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

Segmentação

Permite que cada tabela cresça ou encolha, independentemente

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

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.

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;

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.