gerência da memória - ime-uspadao/gm.pdf · 4 principais funções da gerência da memória...

40
1 Gerência da Memória Adão de Melo Neto

Upload: trinhtram

Post on 15-Oct-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

1

Gerência da Memória

Adão de Melo Neto

2

Memória PrincipalAntigamente– Recurso escasso– Desenvolvimento de um sistema operacional (SO) que não

ocupassem muito espaço de memória principal (MP)

Atualmente– Redução do custo e aumento da capacidade das MP– O gerenciamento da MP continua a ser um dos fatores mais

importantes do projeto de um sistema operacional

3

Memória PrincipalSistemas Monoprogramáveis– Gerência não muito complexa

Sistemas Multiprogramáveis– Gerência crítica– Maximizar o número de usuários e aplicações utilizando de

forma eficiente o espaço da memória principal

4

Principais Funções da Gerência daMemória Principal

Reduzir o número de acessos a memória secundária(operações de E/S)– Tempo de acesso

Manter na MP o maior número possível de processos– Maximizar o compartilhamento do processador e dos

recurso computacionais

MemóriaSecundária

5

Principais Funções da Gerência daMemória Principal

Mesmo não havendo espaço livre permitir que novosprocessos sejam aceitos e executadosPermitir a execução de programas maiores que amemória física disponívelProteger a área de memória ocupada por cada processo

MemóriaSecundária

Processo 1Processo 2Processo 3Processo 4

Memória

6

Alocação Contínua SimplesPresente em alguns sistemas monoprogramáveisMP (memória principal) dividida em duas partes:– Sistema Operacional // Programa do usuário

Preocupação:– Não ultrapassar o espaço de memória disponível

Usuário– Total controle da MP, exceto onde está o SO (endereço protegido por

registrador)Desvantagem– Não permite o uso eficiente dos recursos do sistema– Apenas um usuário pode dispor desses recursos

7

Segmentação de ProgramasVantagem– Os programas não estão limitados ao tamanho da MP

Solução utilizada:– Divisão dos programas em módulos– Execução de cada módulo utilizando a mesma área de memória– Nome da técnica: segmentação ou overlay

Exemplo:– Módulos: principal, cadastramento e impressão (independentes)– Módulo principal:

• É comum aos dois e deve estar na memória todo o tempo de execução

Compartilhada entre os módulos

Tamanho do Programa9 KB

8

Alocação Particionada EstáticaMemória dividida em blocos de tamanho fixo chamados de partiçõesTamanho das partições– Estabelecido em tempo de inicialização do sistema– Função do tamanho dos programas que seriam executados.

Desvantagem: Fragmentação internaAlocação particionada estática absoluta– Programas só podem ser carregados/executados em uma partição fixa

de memóriaAlocação particionada estática relocável– Programas podem ser carregados/executados em qualquer partição livre

na memória

9

Alocação Particionada Estática Absoluta

10

Alocação Particionada EstáticaMemória dividida em blocos de tamanho fixo chamados de partiçõesTamanho das partições– Estabelecido em tempo de inicialização do sistema– Função do tamanho dos programas que seriam executados.

Desvantagem: Fragmentação internaAlocação particionada estática absoluta– Programas só podem ser carregados/executados em uma partição fixa

de memóriaAlocação particionada estática relocável– Programas podem ser carregados/executados em qualquer partição livre

na memória

11

Alocação Particionada Estática Relocável

12

Alocação Particionada EstáticaMemória dividida em blocos de tamanho fixo chamados de partiçõesTamanho das partições– Estabelecido em tempo de inicialização do sistema– Função do tamanho dos programas que seriam executados.

Desvantagem: Fragmentação interna

13

Alocação Particionada DinâmicaFragmentação na Alocação Particionada Estática:– É um problema a ser resolvido a fim de o grau de compartilhamento da

memória fosse aumentadoEliminado o conceito de partição fixa– Tamanho da partição = tamanho do programa ser carregado.

Fragmentação externa– Ao término de um programa e início de outro, passam a existir na

memória blocos cada vez menores, não permitindo o ingresso de novosprogramas

Solução– Reunião de todos os blocos livres adjacente (nova partição)– Realocação particionada dinâmica com realocação (realocação de

todas as partições ainda ocupadas para a parte inicial da memória,eliminado blocos livres entre elas)

Dificuldade– Devido a complexidade dos algoritmos, nem todos os sistemas

operacionais a utilizaram

14

Alocação Particionada Dinâmica

15

Alocação Particionada DinâmicaFragmentação externa– Ao término de um programa e início de outro, passam a existir na

memória blocos cada vez menores, não permitindo o ingresso de novosprogramas

16

Estratégias de Alocação de PartiçãoEm qual área livre um programa será alocado para execução– 3 estratégias

Estratégias de Alocação– Best-fit– Worst-fit– First-fit

17

Estratégias de Alocação de Partição(BEST-FIT)

É escolhida a melhor partição, a que deixa o menor espaçolivre sem utilizaçãoDesvantagem:– Acelera a fragmentação– São alocados primeiramente as partições menores deixando

pequenos blocos fazendo com que a fragmentação apareça maisrapidamente

18

Estratégias de Alocação de Partição(BEST-FIT)

19

Estratégias de Alocação de Partição(WORST-FIT)

É escolhida a pior partição, ou seja, a que deixa maiorespaço livreVantagem:– São alocados primeiramente as partições maiores.– Deixa espaços livre grandes o suficiente para que outros programas

utilizem estes espaços. Permite que um maior número de processosse utilizem da memória. Retarda a fragmentação

20

Estratégias de Alocação de Partição(WORST-FIT)

21

Estratégias de Alocação de Partição(FIRST-FIT)

Esta estratégia aloca o programa na primeira partição que ocouber, independente do espaço livre que vai deixar. Dastrês estratégias, esta é a mais rápida, consumindo menosrecursos do sistema.Vantagem:– Das três estratégias, esta é a mais rápida, consumindo menos

recursos do sistema.

22

Estratégias de Alocação de Partição(FIRST-FIT)

23

SwappingVisa dar uma maior taxa de utilização à memória principal, melhorandoseu compartilhamentoVisa também resolver o problema da falta da memória principal (MP) emum sistemaFuncionamento– Programa precisa ser alocado e não existe espaço na MP– Sistema Operacional (SO) escolhe entre processos alocados (sem

previsão de utilização da CPU nos próximos instantes) e o descarregaem uma área do disco denominada de arquivo de swap

– O programa , que precisava ser executado, ocupa o espaço deixadopelo que saiu

– ... e assim sucessivamente ...– Vai trabalhando assim até que os processos vão terminando

Desvantagem:– Queda do desempenho devido ao número de acessos à memória secundária

24

Swapping

25

Memória VirtualTécnica de gerência de memóriaAs memórias principal (MP) e secundária (MS) são combinadasdando impressão ao usuário de que existe muito mais memóriado que a capacidade real de memória principaMemória Secundária (MS) funciona como uma extensão da MPNão vincula o endereçamento feito pelo programa aos endereçosfísicos da memória principal (MP), e sim a um endereço virtual,pois eles podem possuir endereços vinculados á memóriasecundária (MS).Maior número de processos compartilhando o uso da memóriaprincipal pois apenas partes do processo estarão residentes.

26

Memória Virtual

27

Memória VirtualO conceito de memória virtual aproxima-se a idéia de um vetor existentenas linguagens de alto-nível como “C”.Quando um programa faz referência a um vetor não existe apreocupação em saber a posição de memória (MP) daquele dado

Endereço físico na memóriaprincipal

28

Espaço de Endereçamento Virtual/RealO espaço de endereçamento virtual não tem nenhuma relação com oespaço de endereçamento real ( o da MP).Um programa pode fazer referência a endereços virtuais que estejamfora do limite da memória principal, ou seja, que estejam na memóriasecundária (MS), uma extensão da memória principal

29

Espaço de Endereçamento Virtual/RealUm programa não faz referência a endereços físicos de memória(endereços reais da MP), mas apenas a endereços virtuais.No momento da execução de uma instrução do programa, o endereçovirtual referenciado é traduzido para o endereço físico (da MP), pois oprocessador manipula apenas endereços da MPNote que se o endereço virtual referenciado estiver na MS ele deve sertransportado para MP

30

Espaço de Endereçamento Virtual/RealUm programa pode estar parte na memória principal e parte na memóriasecundária.No momento da execução de uma instrução do programa, o endereçovirtual referenciado é traduzido para o endereço da MP pois oprocessador manipula apenas endereços da MP.Note que se o endereço virtual referenciado estiver na MS ele deve sertransportado para MP

31

Espaço de Endereçamento Virtual/RealEspaço de Endereçamento Virtual– É o conjunto de endereços virtuais que um processo pode

endereçarEspaço de Endereçamento Real– É o conjunto de endereços reais que um processo pode

endereçar (está localizado na memória principal)

32

MapeamentoO processador executa instruções e referencia dados residentes noespaço de endereçamento real (MP).O mapeamento permite traduzir um endereço localizado no espaçovirtual para um localizado no espaço real (da MP)Em conseqüência, um programa não precisa estar necessariamente emendereços contíguos na memória principal para ser executado

33

Tabela de Mapeamento ou Tabela de Endereçamentode Páginas

Estrutura mantida pelo processo que relaciona endereços virtuais doprocesso às suas posições na memória real

34

Memória Virtual por PaginaçãoTécnica de gerência de memória onde o espaço de endereçamentovirtual e o espaço de endereçamento real são divididos em blocos domesmo tamanho chamados páginas.As páginas do espaço virtual são chamadas páginas virtuaisAs páginas do espaço real são chamadas páginas reais ou framesCada processo possui sua própria tabela de páginas

35

Memória Virtual por Paginação

36

Memória Virtual por PaginaçãoCada página virtual do processo possui sua entrada na tabela (ETP -entrada na tabela de páginas) que permite ao sistema localizar a páginareal correspondente.Quando um programa é executado, páginas virtuais são transferidas daMS para a MP e colocadas nos frames (páginas reais)

37

Memória Virtual por Paginação

38

Política de Busca de PáginasDefinem como as páginas serão carregadas da memória virtualpara a memória real.Política por demanda– Uma página somente será carregada quando for referenciada.– Leva para a memória real somente as páginas realmente

necessárias à execução do programa, ficando as outras na memóriavirtual.

Política Paginação antecipada– Carrega antecipadamente várias páginas da memória virtual para a

principal, na tentativa de economizar tempo de E/S.– Nem sempre o sistema acerta na antecipação, mas o índice de

acertos é quase sempre maior que o de erros.

39

Política de Alocação de PáginasDeterminam quantos frames cada processo pode manter namemória real.Working-set– É o conjunto de páginas de um processo, em memória real (MP), em

um determinado instante.Política de alocação fixa– Determina um limite de working-set igual para todos os processos– Pode ser vista como uma política injusta, na medida em que

processos maiores normalmente necessitam de um working-setmaior.

A política de alocação variável– Define um limite de working-set diferente e variável para cada

processo, em função de seu tamanho, taxa de paginação ou atémesmo da taxa de ocupação da memória principal.

40

Política de Substituição de PáginasQuando um processo atinge o limite de alocação de frames (não cabemais frames no espaço da MP destinado a ele) o SO deve selecionar,dentre as páginas alocadas, qual deve ser liberada.Page Fault– É a falha de página.– Sempre que o processo referencia um endereço virtual, o sistema verifica se a

página correspondente já está carregada na memória real. Se não estiver(está na MS), acontece o page fault.

Política Local– Somente as páginas do processo que gerou o page fault são candidatas a

serem substituídas. Os frames dos demais processos não são avaliadospara substituição.

Política global– Todas as páginas alocadas na memória principal são candidatas à

substituição, independente do processo que gerou o page fault.