gerenciamentomemoria

Upload: luan

Post on 08-Jul-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 GerenciamentoMemoria

    1/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  1 

      Multiprogramação por partição variável■  As partições variáveis foram desenvolvidas para substituir as partições fixas.■  Os jobs são posicionados no lugar em que se encaixam■  Inicialmente, nenhum espaço é desperdiçado.■  Pode ocorrer fragmentação externa quando algum processo for removido.

    Designações de partições iniciais na programação por partição variável

    “Lacunas” de memória em multiprogramação por partição variável

  • 8/19/2019 GerenciamentoMemoria

    2/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  2 

      Existem várias formas de combater a fragmentação externa:■  Coalescência

    ●  Reúne blocos livres adjacentes em um único bloco grande.●  Em geral isso não é suficiente para obter uma quantidade significativa de memória.

    ■  Compactação●  Às vezes é chamada coleta de lixo (que não deve ser confundida com a coleta de lixonas linguagens orientadas a objeto).●  Reorganização da memória em um único bloco contíguo de espaço livre e em um único

    bloco contíguo de espaço ocupado.●  Possibilita que todos espaços livres fiquem disponíveis.●  A sobrecarga é significativa.

    Coalescência de “lacunas” de memória em multiprogramação por partição variável

    Compactação de memória em multiprogramação por partição variável

  • 8/19/2019 GerenciamentoMemoria

    3/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  3 

      Estratégias de posicionamento de memória em partição variável:■  Estratégia First-Fit – o primeiro que couber

    ●  O processo é posicionado na primeira lacuna de tamanho suficiente encontrada.●  Sobrecarga baixa e elementar em tempo de execução.

    ■  Estratégia Best-Fit – o que melhor couber●  O processo é posicionado na lacuna que deixar o menor espaço não utilizado ao seu

    redor.●  Maior sobrecarga em tempo de execução.

    ■  Estratégia Worst-Fit – o que pior couber●  O processo é posicionado na lacuna que deixar o maior espaço não utilizado ao seu

    redor.●  Nesses casos, é deixada uma outra grande lacuna, o que permite que outro processo

    caiba nessa lacuna.

  • 8/19/2019 GerenciamentoMemoria

    4/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  4 

    Estratégias de posicionamento de memória em partição variável

      Multiprogramação com troca de memória (SWAPPING)■  Não há necessidade de manter processos inativos na memória■  Troca (Swapping)

    ●  Coloca apenas processos em execução (um por vez) na memória principal.→  Outros são temporariamente transferidos para o armazenamento secundário.→  Isso maximiza a memória disponível.→  Há uma sobrecarga significativa quando do chaveamento de processos.

    ●  Melhor ainda: mantendo diversos processos na memória ao mesmo tempo.→  Menos memória disponível.→  Tempos de resposta mais rápido.→  Semelhante à paginação.

    Multiprogramação em um sistema de troca de processos (swapping) no qual há somente um único processo porvez na memória principal

  • 8/19/2019 GerenciamentoMemoria

    5/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  5 

      Memória virtual■  Soluciona o problema de pouco espaço de memória.■  Cria a ilusão de que existe mais memória do que a disponível no sistema.■  Existem dois tipos de endereço nos sistemas de memória virtual:

    ●  Endereços virtuais→  Referenciados por processos.

    ●  Endereços físicos→  Indicam localizações físicas na memória principal.

    ■  Unidade de gerenciamento de memória (MMU)●  Traduz os endereços virtuais para endereços físicos.

    Armazenamento em dois níveis: memória principal (e os caches) e o armazenamento secundário

      Espaço de endereço virtual, | V | ■  Gama de endereços virtuais que um processo pode referenciar.

      Espaço de endereço real, | R | ■  Gama de endereços físicos disponíveis em um sistema de computador específico.

      Mecanismo de tradução dinâmica de endereço (DAT)■  Converte endereços virtuais em endereços físicos durante a execução de um programa.

    Pedaços de espaços de endereçamento existem na memória e no armazenamento secundário

  • 8/19/2019 GerenciamentoMemoria

    6/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  6 

      Paginação■  A paginação usa o mapeamento de blocos de tamanho fixo.■  O endereço virtual no sistema de paginação é um par ordenado v  = (p , d ).

    ●  p  é o número da página na memória virtual na qual o item referenciado reside.●  d  é o deslocamento do início da página p  na qual o item referenciado está localizado.

      Moldura de página (page frame )■  Bloco de tamanho fixo na memória principal.■  Começa em um endereço da memória principal que é um múltiplo inteiro do tamanho fixo de

    página (p’ ).

      Entrada de tabela de páginas (PTE)■  Indica se uma página virtual p  corresponde a uma moldura de página p´.■  Contém um bit residente para indicar se a página está na memória.

    ●  Se estiver, a PTE armazena o número da moldura da página.●  Do contrário, a PTE armazena a localização da página no armazenamento secundário.

    Entrada de tabela de páginas

    Modelo de paginação para as memórias virtual e física

    Página 0

    Página 1

    Página 2

    Página 3

    Página n

    Memória virtual(páginas)

    1

    1

    1

    1

    0 n

    1

    4

    3

    7

    Tabela de páginas

    1

    2

    3

    4

    5

    6

    7

    Memória físicaframes

    Página 0

    Página 2

    Página 1

    Página 3

    0

  • 8/19/2019 GerenciamentoMemoria

    7/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  7 

      Tradução de endereço de paginação por mapeamento direto■  A tabela de páginas contém uma entrada para cada página do espaço de endereçamento virtual

    do processo armazenada contiguamente, parecido com um arranjo de um array . Qualquerentrada pode ser referenciada diretamente por um indexador.

    ■  Normalmente o sistema mantém a tabela de páginas na memória principal podendo consumiruma quantidade significativa desta memória.

    ■  O processo referencia o endereço virtual v  = (p , d ).●  O endereço da memória principal da tabela de páginas de um processo é carregado noregistrador de origem da tabela de páginas.●  O mecanismo DAT adiciona o endereço-base da tabela de páginas do processo, b , ao

    número da página referenciada, p . ●  b  + p  forma o endereço de memória principal da PTE para a página p . ●  Essa PTE indica que a página virtual p  corresponde à moldura de página p' .●  O sistema concatena p´  com o deslocamento, d , para formar o endereço real, r . 

    Tradução de endereço de paginação por mapeamento direto

    ■  Tabelas de páginas multiníveis■  Pode diminuir a sobrecarga de memória em comparação ao sistema de mapeamento direto.■  Esse sistema pode armazenar em localizações não contíguas da memória principal apenas as

    porções da tabela de páginas que o processo está usando.■  As demais porções da tabela de páginas podem ser criadas da primeira vez que forem usadas e

    tranferidas para o armazenamento secundário quando não estiverem mais sendo usadas.■  Cada nível contém uma tabela que armazena ponteiros para tabelas do nível que está abaixo.■  O nível mais inferior compreende as tabelas que contêm os mapeamentos de molduras.■  Por exemplo, um sistema que utilize dois níveis de tabelas de páginas:

    ●  O endereço virtual é a tripla ordenada v = (p, t, d)  onde (p, t)  indica o número da página.●  O endereço da memória principal do diretório de páginas (a) é carregado no registrador de

    origem do diretório de páginas e é adicionado valor de p .●  A entrada a + p  contém o endereço de início da tabela de páginas correspondente, b .●  O sistema adiciona t  à b  para localizar a entrada da tabela de páginas que armazena um

    número de moldura de página, p' . ●  O sistema concatena p´  com o deslocamento, d , para formar o endereço real, r . 

  • 8/19/2019 GerenciamentoMemoria

    8/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  8 

    Tradução de endereço de páginas multiníveis

      Tabelas de páginas invertidas■  Armazenam exatamente uma PTE na memória para cada moldura  de página no sistema.■  O número de PTEs é proporcional ao tamanho da memória física e não ao tamanho do espaço

    de endereçamento virtual do processo.■  Usam funções de hash  para mapear páginas virtuais para entradas de tabela de páginas

    invertidas.■  Uma função de hash é uma função matemática que toma um número como entrada e dá um

    número de saída denomindado valor de hash, dentro de uma faixa finita.■  A função de hash eventualmente pode gerar uma saída repetida, já utilizada por outra entrada,

    que é denominada como colisão.■  Quando um valor de hash mapeia um item para uma localização que já está ocupada, uma nova

    função de hash é aplicada e a entrada é colocada na nova localização. Um ponteiro para essanova localização é anexado à entrada do valor do hash original para garantir que sejaencontrado. Normalmente são utilizadas listas encadeadas para essa finalidade.

    ■  O processo referencia o endereço virtual v  = (p , d ).●  Para localizar a entrada de tabela de hash da página virtual p , é aplicada a função de hash

    a p  que gera um valor q .●  Se a posição q   da tabela de páginas invertidas contiver p , o endereço virtual requisitado

    estará na moldura de página q .●  Se a posição q   da tabela de páginas invertidas tiver outro conteúdo que não p , será

    verificado o ponteiro de encadeamento e se for diferente de nulo  acontecerá uma colisão. Osistema seguirá os ponteiros da cadeia até encontrar uma entrada que contenha p  ou até acadeia terminar, quando será emitida uma requisição de falta de página residente.

    ●  Então p   está localizado na moldura de página p'   e o sistema concatena p´   com o

    deslocamento, d , para formar o endereço real, r .

  • 8/19/2019 GerenciamentoMemoria

    9/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  9 

    Tradução de endereço de página usando tabelas de páginas invertidas

      Movimento de paginação:■  Page in

    ●  É o movimento de uma página da memória virtual para a memória física.●  Ocorre quando uma página necessária para processamento não se encontra na memória

    física.■  Page out

    ●  É o movimento de uma página da memória física para a memória virtual.●  Ocorre quando a memória física está cheia e há necessidade de se liberar espaço.

    ■  Page fault●  É a constatação de que uma página necessária para processamento não se encontra ainda

    na memória física.

      Conceitos de Localidade■  Localidade temporal: é a localidade ao longo do tempo. Por exemplo, se o tempo está bom em

    um determinado horário em uma cidade existe uma grande chance de estar bom também noshorários subsequentes.

    ■  Localidade espacial: significa que itens próximos devem ser semelhantes. Por exemplo, se otempo está bom em uma cidade existe uma grande chance de estar bom também nas cidadespróximas.

    ■  Um processo tende a referenciar memória conforme padrões altamente localizados.■  Nos sistemas de paginação, os processos tendem a favorecer determinados subconjuntos de

    suas páginas, e essas páginas tendem a ser adjacentes entre si no espaço de endereço virtualdo processo.

  • 8/19/2019 GerenciamentoMemoria

    10/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  10 

      Políticas de busca de páginas■  Paginação por demanda 

    ●  Quando um processo é executado pela primeira vez, o sistema transfere para a memóriaprincipal a página que contém sua primeira instrução.

    ●  Depois disso, o sistema só transferirá uma página do armazenamento secundário para amemória principal quando o processo referenciar explicitamente essa página.

    ■  Paginação antecipada ●  O sistema operacional tenta prever as páginas que um processo necessitará e carrega

    previamente essas páginas quando há espaço disponível na memória.●  Deve ser projetada cuidadosamente de modo que a sobrecarga dessa estratégia não

    diminua o desempenho do sistema.

      Estratégias de substituição de páginas■  Técnica empregada por um sistema para selecionar páginas para substituição quando a

    memória está cheia.■  Determina onde se deve colocar na memória principal uma página ou segmento que estáentrando.

      Substituição de páginas FIFO (first-in-first-out – primeira a entrar, primeira a sair)■  Substitui a página que está há mais tempo no sistema.■  Pode substituir páginas que são intensamente usadas.■  Pode ser implementada com uma sobrecarga relativamente baixa.■  Não é prática para a maioria dos sistemas.

    Substituição de páginas FIFO (primeira a entrar, primeira a sair)

  • 8/19/2019 GerenciamentoMemoria

    11/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  11 

      Anomalia de FIFO (ou de Belady)■  Intuitivamente imaginamos que quanto mais molduras de páginas forem alocadas a um

    processo, menos falta de páginas o processo experimentaria.■  Porém, foi constatado que determinados padrões de referência de página de fato causam mais

    falhas quando o número de molduras de página alocadas a um processo aumenta.

    Anomalia de FIFO

      Substituição de página LRU (least recently used – menos recentemente usada)■  Explora a localidade temporal substituindo a página que ficou mais tempo na memória sem ser

    referenciada.■  Em relação à FIFO, pode oferecer melhor desempenho.■  A sobrecarga do sistema é maior.■  O desempenho da substituição LRU pode ser inadequado se a página menos recentemente

    usada for a página seguinte a ser referenciada por um laço que referencia diversas páginas.

  • 8/19/2019 GerenciamentoMemoria

    12/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  12 

      Substituição de página ótimo■  A página que no futuro estiver mais distante de ser referenciada será removida.■  Fácil de descrever mas impossível de implementar.

      Substituição de página segunda chance - modificação da FIFO■  Examina o bit referenciado da página mais antiga.

    ●  Se estiver desligado,→  a estratégia seleciona essa página para substituição.

    ●  Se estiver ligado,→  a estratégia desliga o bit e move a página para o final da fila FIFO.

    ■  Garante que as páginas ativas sejam as que menos têm probabilidade de ser substituídas.

      Comportamento do programa sob paginação■  Os processos tendem a referenciar uma parte significativa de suas páginas logo depois que aexecução é iniciada.■  Eles acessam a maioria das páginas remanescentes mais vagarosamente.

    Porcentagem de páginas referidas de um processo ao longo do tempo

  • 8/19/2019 GerenciamentoMemoria

    13/13

    Sistemas Operacionais  Gerenciamento de Memória  R.Jensen  13 

    Exercício: Em uma memória real com quatro molduras (frames) disponíveis, na sequência em que as páginasabaixo são solicitadas para processamento, mostre o comportamento das páginas de cada um dos algoritmos -FIFO, LRU e ÓTIMO - através da tabela de controle de ocupação da memória. Considerar que o último elementode cada coluna deve conter a próxima página a ser substituida.

    FIFO5 8 0 4 8 2 8 3 4 2 8 2 4 0 4 8 0 5 8 0

    Total de falta de páginas =

    LRU5 8 0 4 8 2 8 3 4 2 8 2 4 0 4 8 0 5 8 0

    Total de falta de páginas =

    ÓTIMO5 8 0 4 8 2 8 3 4 2 8 2 4 0 4 8 0 5 8 0

    Total de falta de páginas =