Capítulo 4
              Gerenciamento de Memória
             4.1 Gerenciamento básico de memória
             4.2 Troca de processos
             4.3 Memória virtual
             4.4 Algoritmos de substituição de páginas
             4.5 Modelagem de algoritmos de substituição de páginas
             4.6 Questões de projeto para sistemas de paginação
             4.7 Questões de implementação
             4.8 Segmentação


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

sexta-feira, 27 de maio de 2011
Gerenciamento de Memória
   • Idealmente, o que todo programador deseja é
     dispor de uma memória que seja
         – grande
         – rápida
         – não volátil
   • Hierarquia de memórias
         – pequena quantidade de memória rápida, de alto custo -
           cache
         – quantidade considerável de memória principal de
           velocidade média, custo médio
         – gigabytes de armazenamento em disco de velocidade e
           custo baixos



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

sexta-feira, 27 de maio de 2011
Gerenciamento 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
         Pearson Education                 Sistemas Operacionais Modernos – 2ª Edição   3

sexta-feira, 27 de maio de 2011
Gerenciamento Básico de Memória
                   Monoprogramação sem Troca de Processos ou
                                  Paginação


         • A) Era usado em computadores de grande porte;
         • B) Utilizado em computadores de mão;
         • C) Primeiros computadores pessoais: a parte
           contida em ROM é a BIOS;
         • Os processos eram carregados um de cada vez;
         • Monoprogramação é raramente utilizada hoje.




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

sexta-feira, 27 de maio de 2011
Multiprogramação

         • Aumenta o uso de CPU;
         • Maneira mais comum de realizar
           multiprogramação: dividir a memória em n
           partições (normalmente de tamanhos diferentes);
                – Pode ser feita quando o sistema for inicializado;
                – Quando um job chega ele é colocado no menor espaço
                  que o caiba;
                – O espaço não utilizado é perdido.



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

sexta-feira, 27 de maio de 2011
Multiprogramação
                                  com Partições Fixas




           •        Partições fixas de memória
                        a) filas de entrada separadas para cada partição
                        b) fila única de entrada
         Pearson Education                           Sistemas Operacionais Modernos – 2ª Edição   6

sexta-feira, 27 de maio de 2011
Multiprogramação
                           com Partições Fixas
         • Fila única:
                – O próximo que estiver na fila e couber no
                  espaço vazio;
                – O próximo maior que não desperdiçar espaço;
                – Criar pelo menos uma partição pequena para
                  que os processos menores e, geralmente
                  interativos tenham vez.



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

sexta-feira, 27 de maio de 2011
Relocaçã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
          – localizações de endereços são somadas ao valor base
            antes de serem mapeadas na memória física
          – localizações de endereços maior que o valor limite
            indicam erro

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

sexta-feira, 27 de maio de 2011
Troca de Processos (1)




          • 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

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

sexta-feira, 27 de maio de 2011
Troca de Processos (2)




         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
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   10

sexta-feira, 27 de maio de 2011
Gerenciamento de Memória com
                         Mapas de Bits




   a)       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
   b)       Mapa de bits correspondente
   c)       Mesmas informações em uma lista encadeada
         Pearson Education                          Sistemas Operacionais Modernos – 2ª Edição   11

sexta-feira, 27 de maio de 2011
Gerenciamento de Memória
                        com Listas Encadeadas




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

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

sexta-feira, 27 de maio de 2011
Evolução de organizações de
                          Memória




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

sexta-feira, 27 de maio de 2011
Memória Virtual

         • Normalmente os programas são maiores que
           a memória disponível;
         • Solução: dividir a memória em módulos de
           sobreposição (overlays);
         • Overlay 0 seria o primeiro a ser executado;
         • Quando terminar, chamaria o próximo, que
           seria trocado por outro que estava em disco;


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

sexta-feira, 27 de maio de 2011
Memória Virtual

         • Esse troca de overlay do disco para a
           memória e vice-versa era feita pelo SO;
         • A divisão do programa em módulos pelo
           programador;
         • Em 1961, Fotheringham desenvolveu um
           método para que o SO dividisse os
           programas automaticamente: Memória
           Virtual.

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

sexta-feira, 27 de maio de 2011
Memória Virtual

         • Ideia básica: o programa (código+dados
           +pilha) pode exceder o tamanho da
           memória física. O SO mantém as partes
           ativas na memória e o restante em disco;
         • Também é possível usar Mem. Virtual em
           um sistema com multiprogramação.



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

sexta-feira, 27 de maio de 2011
Memória Virtual
                                  Paginação (1)
          • A maioria dos sistemas com M.V. utiliza
            paginação;
          • Existe um conjunto de endereços que
            podem ser gerados quando um
            programa é executado;
          • Esses endereços são os endereços
            virtuais e constituem o espaço de
            endereçamento virtual;


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

sexta-feira, 27 de maio de 2011
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.



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

sexta-feira, 27 de maio de 2011
Memória Virtual
                                   Paginação (1)

         • Em computadores sem memória virtual:
                – Endereço virtual = endereço físico
         • Em computadores com memória virtual:
                – Encaminha o endereço a uma MMU
                  (memory management unit – unidade de
                  gerenciamento de memória)
                – MMU: mapeia endereços virtuais em
                  endereços físicos.

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

sexta-feira, 27 de maio de 2011
Memória Virtual
                                  Paginação (1)




                         Localização e função da MMU
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   20

sexta-feira, 27 de maio de 2011
Memória Virtual
                                  Paginação (1)
                  n Espaço de endereço virtual, V
                        ■ Gama de endereços virtuais que um processo
                          pode referenciar.
                  n Espaço de endereço real, R
                        ■ Gama de endereços físicos disponíveis em um
                          sistema de computador específico.
                  n 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.




         Pearson Education                          Sistemas Operacionais Modernos – 2ª Edição
sexta-feira, 27 de maio de 2011
Memória Virtual
                                    Paginação (1)
                 n |V| em geral é bem maior que |R|.
                       ■ O sistema operacional tem de armazenar partes
                         de V para cada processo externo à memória
                         principal.
                       ■ Armazenamento de dois níveis:
                              ● O sistema operacional move porções de V entre a
                                memória principal (e os caches) e o
                                armazenamento secundário.




         Pearson Education                               Sistemas Operacionais Modernos – 2ª Edição
sexta-feira, 27 de maio de 2011
Memória Virtual
                                   Paginação (1)

         • O espaço de endereçamento virtual é
           dividido em unidades denominadas páginas
           (pages);
         • As unidades correspondentes em mem.
           física são molduras de páginas (page
           frames);
         • Páginas e molduras de páginas tem o
           mesmo tamanho.

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

sexta-feira, 27 de maio de 2011
Memória Virtual Paginação (2)




    A relação entre endereços virtuais e endereços físicos de
    memória dada pela tabela de páginas
         Pearson Education            Sistemas Operacionais Modernos – 2ª Edição   24

sexta-feira, 27 de maio de 2011
Memória Virtual
                                    Paginação

         • Um bit presente/ausente em cada entrada da
           tabela de páginas informa se a página está
           fisicamente na memória ou não;
         • O que acontece se não estiver?




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

sexta-feira, 27 de maio de 2011
Memória Virtual
                                    Paginação

         • A MMU verifica e força o desvio da CPU
           para o SO;
         • Essa interrupção (trap): falta de página
           (page fault);
         • O SO escolhe uma moldura de página
           pouco usada e salva em disco;



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

sexta-feira, 27 de maio de 2011
Memória Virtual
                                    Paginação

         • SO carrega a página virtual referenciada
           pela instrução na moldura liberada;
         • Atualiza o mapeamento da tabela de
           páginas;
         • Reinicia a instrução que causou a
           interrupção.



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

sexta-feira, 27 de maio de 2011
Tabelas de Páginas (1)




Operação interna de uma MMU com 16 páginas de 4KB
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   28

sexta-feira, 27 de maio de 2011
Tabela de Páginas

         • Objetivo: mapear páginas virtuais em
           molduras de página física;
         • O número da página virtual é usado como
           índice dentro da tabela de páginas;
         • O número da moldura da página física é
           concatenado aos bits de deslocamento;



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

sexta-feira, 27 de maio de 2011
Tabela de Páginas

         • Substitui-se o número da página virtual pelo
           da moldura de página física.
         • Forma-se o endereço físico que será enviado
           à memória.
         • Dois pontos devem ser considerados:
                – A tabela de páginas pode ser extremamente
                  grande;
                – O mapeamento deve ser rápido.

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

sexta-feira, 27 de maio de 2011
Tabela de Páginas
           Pedaços de espaços de de endereçamento existem na
           memória e no armazenamento secundário.




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

sexta-feira, 27 de maio de 2011
Outra forma de mostrar...




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

sexta-feira, 27 de maio de 2011
Tabelas de Páginas(2)




         a) Endereço de 32 bits com 2 campos para
            endereçamento de tabelas de páginas
         b) Tabelas de páginas com 2 níveis
         Pearson Education                 Sistemas Operacionais Modernos – 2ª Edição   33

sexta-feira, 27 de maio de 2011
Estrutura de uma entrada da
                        tabela de páginas
         • Número da moldura de página;
         • O bit presente/ausente;
                – 1 entrada válida;
                – 0 page fault;
         • Bits de proteção: tipos de permissão de
           acesso à página:
                – 0 leitura/escrita;
                – 1 somente leitura;

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

sexta-feira, 27 de maio de 2011
Estrutura de uma entrada da
                        tabela de páginas
         • Uma forma mais sofisticada: 3 bits;
                – Habilita/desabilita leitura, escrita, execução;
         • Modificada: controla o uso da página;
                – 1 foi usada;
                – 0 não foi usada, mesmo conteúdo do disco.
         • Referenciada: verifica se a página foi usada;
                – 1 foi usada;
                – 0 não foi usada, pode ser trocada.

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

sexta-feira, 27 de maio de 2011
Estrutura de uma entrada da
                        tabela de páginas
         • Cache desabilitado: quando um valor deve
           ser constantemente atualizado, desabilita a
           cache.




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

sexta-feira, 27 de maio de 2011
Tabelas de Páginas(3)




            Entrada típica de uma tabela de páginas
         Pearson Education                     Sistemas Operacionais Modernos – 2ª Edição   37

sexta-feira, 27 de maio de 2011
Memória Associativa ou TLB

         • TLB (translation lookaside buffer): tabela
           de tradução de endereços;
         • Também conhecida como memória
           associativa;
         • Localizada dentro da MMU;




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

sexta-feira, 27 de maio de 2011
Memória Associativa ou TLB

         • Como funciona?
                – Quando um endereço é apresentado à MMU:
                      • Primeiro verifica se o número da página virtual está
                        presente na TLB;
                      • Se é encontrada, e o acesso não viola os bits de
                        proteção;
                      • O número da moldura de página é obtido
                        diretamente da TLB;
                      • Sem necessidade de buscá-lo na tabela de páginas.


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

sexta-feira, 27 de maio de 2011
Memória Associativa ou TLB




                        TLB para acelerar a paginação
         Pearson Education               Sistemas Operacionais Modernos – 2ª Edição   40

sexta-feira, 27 de maio de 2011
Apresentação do Trabalho




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

sexta-feira, 27 de maio de 2011
Algoritmos de Substituição de
                              Páginas
        • A 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

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

sexta-feira, 27 de maio de 2011
O Algoritmo de Substituição
                            de Página Ótimo
  • Substitui a página necessária o mais a frente
    possível
         – ótimo mas não realizável


  • Estimada através de...
         – registro do uso da página em execuções
           anteriores do processo ...
         – apesar disto ser impraticável


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

sexta-feira, 27 de maio de 2011
O 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
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   44

sexta-feira, 27 de maio de 2011
Algoritmo 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

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

sexta-feira, 27 de maio de 2011
Algoritmo de Substituição de Página
                     Segunda Chance (SC)




    •        Operação do algoritmo segunda chance
           a)     lista de páginas em ordem FIFO
           b)     estado da lista em situação de falta de página no instante 20,
                  com o bit R da página A em 1 (números representam instantes
                  de carregamento das páginas na memória)
         Pearson Education                         Sistemas Operacionais Modernos – 2ª Edição   46

sexta-feira, 27 de maio de 2011
Algoritmo de Substituição
                             de Página Relógio




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

sexta-feira, 27 de maio de 2011
Menos Recentemente
                                    Usada (MRU)35
  • 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

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

sexta-feira, 27 de maio de 2011
Simulação do MRU em Software (1)




     MRU usando uma matriz – páginas referenciadas
                na ordem 0,1,2,3,2,1,0,3,2,3
         Pearson Education        Sistemas Operacionais Modernos – 2ª Edição   49

sexta-feira, 27 de maio de 2011
Simulação do MRU em Software (2)




   • O algoritmo do envelhecimento (aging) simula o MRU
     em software
   • Note 6 páginas para 5 tiques de relógio, (a) – (e)
         Pearson Education        Sistemas Operacionais Modernos – 2ª Edição   50

sexta-feira, 27 de maio de 2011
O Algoritmo de Substituição de Página
                   do Conjunto de Trabalho (1)




          • O conjunto de trabalho é o conjunto de páginas
            usadas pelas k referências mais recentes à memória
          • w(k,t) é o tamanho do conjunto de trabalho no
            instante t
         Pearson Education              Sistemas Operacionais Modernos – 2ª Edição   51

sexta-feira, 27 de maio de 2011
O Algoritmo de Substituição de Página
                    do Conjunto de Trabalho (2)




                  O algoritmo do conjunto de trabalho
         Pearson Education            Sistemas Operacionais Modernos – 2ª Edição   52

sexta-feira, 27 de maio de 2011
O Algoritmo de Substituição
                               de Página WSClock


    Operação
    do Algoritmo
    WSClock




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

sexta-feira, 27 de maio de 2011
Revisão dos Algoritmos de
                          Substituição de Página




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

sexta-feira, 27 de maio de 2011
Modelagem de Algoritmos de
                       Substituição de Página
                        – Anomalia de Belady




      •    FIFO com 3 molduras de página
      •    FIFO com 4 molduras de página
      •    P mostra quais referências de página causaram faltas de página
          Pearson Education                     Sistemas Operacionais Modernos – 2ª Edição   55

sexta-feira, 27 de maio de 2011
Tamanho de Página (1)

                     Tamanho de página pequeno

     • Vantagens
           – menos fragmentação interna
           – menos programa não usado na memória
     • Desvantagens
           – programas precisam de mais páginas, tabelas
             de página maiores



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

sexta-feira, 27 de maio de 2011
Espaços Separados de
                               Instruções e Dados




    a) Espaço de endereçamento único
    b) Espaços separados de instruções (I) e dados (D)
         Pearson Education                Sistemas Operacionais Modernos – 2ª Edição   57

sexta-feira, 27 de maio de 2011
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
         Pearson Education               Sistemas Operacionais Modernos – 2ª Edição   58

sexta-feira, 27 de maio de 2011
Questões de Implementação
              Envolvimento do S.O. com a Paginação
   Quatro circunstâncias de envolvimento:
   1.         Criação de processo
          −       determina tamanho do programa
          −       cria tabela de página
   2.         Execução de processo
          −       MMU reinicia tabela para novo processo
          −       TLB é esvaziada
   3.         Ocorrência de falta de página
          −       determina endereço virtual que causou a falta
          −       descarta, se necessário, página antiga
          −       carrega página requisitada para a memória
   4.         Terminação de processo

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

sexta-feira, 27 de maio de 2011
Tratamento de Faltas de Página (1)


     1) Hardware desvia a execução para o
        núcleo
     2) Salva conteúdo de registradores e outras
        informações voláteis
     3) SO determina a página virtual necessária
     4) SO checa validade de endereço, busca
        moldura de página
     5) Se moldura de página selecionada foi
        modificada (suja), salvá-la em disco

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

sexta-feira, 27 de maio de 2011
Tratamento de Faltas de Página (2)


    6) SO busca em disco página virtual
       referenciada
    7) Tabela de páginas é atualizada
    8) Estado da instrução que causou falta de
       página é recuperado
    9) Processo que causou falta de página é
       escalado para executar
    10)Programa continua


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

sexta-feira, 27 de maio de 2011
Segmentação (1)




        • Espaço de endereçamento unidimensional com
          tabelas crescentes
        • Uma tabela pode atingir outra
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   62

sexta-feira, 27 de maio de 2011
Segmentação (2)




              Permite que cada tabela cresça ou encolha,
                          independentemente
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   63

sexta-feira, 27 de maio de 2011
Segmentação (3)




            Comparação entre paginação e segmentação
         Pearson Education                  Sistemas Operacionais Modernos – 2ª Edição   64

sexta-feira, 27 de maio de 2011
Implementação de Segmentação Pura




     (a)-(d) Desenvolvimento de fragmentação externa
     (e) Remoção da fragmentação via compactação
         Pearson Education        Sistemas Operacionais Modernos – 2ª Edição   65

sexta-feira, 27 de maio de 2011
Segmentação com Paginação:
                          MULTICS (1)




  a)      Descritores de segmentos apontam para tabelas de páginas
  b)      Descritor de segmento – números indicam tamanhos dos campos
         Pearson Education                Sistemas Operacionais Modernos – 2ª Edição   66

sexta-feira, 27 de maio de 2011
Segmentação com Paginação:
                          MULTICS (2)




              Um endereço virtual de 34 bits no MULTICS

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

sexta-feira, 27 de maio de 2011
Segmentação com Paginação:
                          MULTICS (3)




       Conversão de um endereço MULTICS de duas
        partes em um endereço da memória principal
         Pearson Education        Sistemas Operacionais Modernos – 2ª Edição   68

sexta-feira, 27 de maio de 2011

Aula 04-gerenciamento-basico-de-memoria

  • 1.
    Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição de páginas 4.6 Questões de projeto para sistemas de paginação 4.7 Questões de implementação 4.8 Segmentação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 sexta-feira, 27 de maio de 2011
  • 2.
    Gerenciamento de Memória • Idealmente, o que todo programador deseja é dispor de uma memória que seja – grande – rápida – não volátil • Hierarquia de memórias – pequena quantidade de memória rápida, de alto custo - cache – quantidade considerável de memória principal de velocidade média, custo médio – gigabytes de armazenamento em disco de velocidade e custo baixos Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2 sexta-feira, 27 de maio de 2011
  • 3.
    Gerenciamento Básico deMemó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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3 sexta-feira, 27 de maio de 2011
  • 4.
    Gerenciamento Básico deMemória Monoprogramação sem Troca de Processos ou Paginação • A) Era usado em computadores de grande porte; • B) Utilizado em computadores de mão; • C) Primeiros computadores pessoais: a parte contida em ROM é a BIOS; • Os processos eram carregados um de cada vez; • Monoprogramação é raramente utilizada hoje. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4 sexta-feira, 27 de maio de 2011
  • 5.
    Multiprogramação • Aumenta o uso de CPU; • Maneira mais comum de realizar multiprogramação: dividir a memória em n partições (normalmente de tamanhos diferentes); – Pode ser feita quando o sistema for inicializado; – Quando um job chega ele é colocado no menor espaço que o caiba; – O espaço não utilizado é perdido. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5 sexta-feira, 27 de maio de 2011
  • 6.
    Multiprogramação com Partições Fixas • Partições fixas de memória a) filas de entrada separadas para cada partição b) fila única de entrada Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6 sexta-feira, 27 de maio de 2011
  • 7.
    Multiprogramação com Partições Fixas • Fila única: – O próximo que estiver na fila e couber no espaço vazio; – O próximo maior que não desperdiçar espaço; – Criar pelo menos uma partição pequena para que os processos menores e, geralmente interativos tenham vez. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7 sexta-feira, 27 de maio de 2011
  • 8.
    Relocaçã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 – localizações de endereços são somadas ao valor base antes de serem mapeadas na memória física – localizações de endereços maior que o valor limite indicam erro Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8 sexta-feira, 27 de maio de 2011
  • 9.
    Troca de Processos(1) • 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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9 sexta-feira, 27 de maio de 2011
  • 10.
    Troca de Processos(2) 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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10 sexta-feira, 27 de maio de 2011
  • 11.
    Gerenciamento de Memóriacom Mapas de Bits a) 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 b) Mapa de bits correspondente c) Mesmas informações em uma lista encadeada Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11 sexta-feira, 27 de maio de 2011
  • 12.
    Gerenciamento de Memória com Listas Encadeadas Quatro combinações de vizinhança para o processo X em término de execução Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12 sexta-feira, 27 de maio de 2011
  • 13.
    Evolução de organizaçõesde Memória Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13 sexta-feira, 27 de maio de 2011
  • 14.
    Memória Virtual • Normalmente os programas são maiores que a memória disponível; • Solução: dividir a memória em módulos de sobreposição (overlays); • Overlay 0 seria o primeiro a ser executado; • Quando terminar, chamaria o próximo, que seria trocado por outro que estava em disco; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14 sexta-feira, 27 de maio de 2011
  • 15.
    Memória Virtual • Esse troca de overlay do disco para a memória e vice-versa era feita pelo SO; • A divisão do programa em módulos pelo programador; • Em 1961, Fotheringham desenvolveu um método para que o SO dividisse os programas automaticamente: Memória Virtual. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15 sexta-feira, 27 de maio de 2011
  • 16.
    Memória Virtual • Ideia básica: o programa (código+dados +pilha) pode exceder o tamanho da memória física. O SO mantém as partes ativas na memória e o restante em disco; • Também é possível usar Mem. Virtual em um sistema com multiprogramação. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16 sexta-feira, 27 de maio de 2011
  • 17.
    Memória Virtual Paginação (1) • A maioria dos sistemas com M.V. utiliza paginação; • Existe um conjunto de endereços que podem ser gerados quando um programa é executado; • Esses endereços são os endereços virtuais e constituem o espaço de endereçamento virtual; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17 sexta-feira, 27 de maio de 2011
  • 18.
    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. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18 sexta-feira, 27 de maio de 2011
  • 19.
    Memória Virtual Paginação (1) • Em computadores sem memória virtual: – Endereço virtual = endereço físico • Em computadores com memória virtual: – Encaminha o endereço a uma MMU (memory management unit – unidade de gerenciamento de memória) – MMU: mapeia endereços virtuais em endereços físicos. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19 sexta-feira, 27 de maio de 2011
  • 20.
    Memória Virtual Paginação (1) Localização e função da MMU Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20 sexta-feira, 27 de maio de 2011
  • 21.
    Memória Virtual Paginação (1) n Espaço de endereço virtual, V ■ Gama de endereços virtuais que um processo pode referenciar. n Espaço de endereço real, R ■ Gama de endereços físicos disponíveis em um sistema de computador específico. n 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. Pearson Education Sistemas Operacionais Modernos – 2ª Edição sexta-feira, 27 de maio de 2011
  • 22.
    Memória Virtual Paginação (1) n |V| em geral é bem maior que |R|. ■ O sistema operacional tem de armazenar partes de V para cada processo externo à memória principal. ■ Armazenamento de dois níveis: ● O sistema operacional move porções de V entre a memória principal (e os caches) e o armazenamento secundário. Pearson Education Sistemas Operacionais Modernos – 2ª Edição sexta-feira, 27 de maio de 2011
  • 23.
    Memória Virtual Paginação (1) • O espaço de endereçamento virtual é dividido em unidades denominadas páginas (pages); • As unidades correspondentes em mem. física são molduras de páginas (page frames); • Páginas e molduras de páginas tem o mesmo tamanho. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 23 sexta-feira, 27 de maio de 2011
  • 24.
    Memória Virtual Paginação(2) A relação entre endereços virtuais e endereços físicos de memória dada pela tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24 sexta-feira, 27 de maio de 2011
  • 25.
    Memória Virtual Paginação • Um bit presente/ausente em cada entrada da tabela de páginas informa se a página está fisicamente na memória ou não; • O que acontece se não estiver? Pearson Education Sistemas Operacionais Modernos – 2ª Edição 25 sexta-feira, 27 de maio de 2011
  • 26.
    Memória Virtual Paginação • A MMU verifica e força o desvio da CPU para o SO; • Essa interrupção (trap): falta de página (page fault); • O SO escolhe uma moldura de página pouco usada e salva em disco; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 26 sexta-feira, 27 de maio de 2011
  • 27.
    Memória Virtual Paginação • SO carrega a página virtual referenciada pela instrução na moldura liberada; • Atualiza o mapeamento da tabela de páginas; • Reinicia a instrução que causou a interrupção. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 27 sexta-feira, 27 de maio de 2011
  • 28.
    Tabelas de Páginas(1) Operação interna de uma MMU com 16 páginas de 4KB Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28 sexta-feira, 27 de maio de 2011
  • 29.
    Tabela de Páginas • Objetivo: mapear páginas virtuais em molduras de página física; • O número da página virtual é usado como índice dentro da tabela de páginas; • O número da moldura da página física é concatenado aos bits de deslocamento; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 29 sexta-feira, 27 de maio de 2011
  • 30.
    Tabela de Páginas • Substitui-se o número da página virtual pelo da moldura de página física. • Forma-se o endereço físico que será enviado à memória. • Dois pontos devem ser considerados: – A tabela de páginas pode ser extremamente grande; – O mapeamento deve ser rápido. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 30 sexta-feira, 27 de maio de 2011
  • 31.
    Tabela de Páginas Pedaços de espaços de de endereçamento existem na memória e no armazenamento secundário. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 31 sexta-feira, 27 de maio de 2011
  • 32.
    Outra forma demostrar... Pearson Education Sistemas Operacionais Modernos – 2ª Edição 32 sexta-feira, 27 de maio de 2011
  • 33.
    Tabelas de Páginas(2) a) Endereço de 32 bits com 2 campos para endereçamento de tabelas de páginas b) Tabelas de páginas com 2 níveis Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33 sexta-feira, 27 de maio de 2011
  • 34.
    Estrutura de umaentrada da tabela de páginas • Número da moldura de página; • O bit presente/ausente; – 1 entrada válida; – 0 page fault; • Bits de proteção: tipos de permissão de acesso à página: – 0 leitura/escrita; – 1 somente leitura; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 34 sexta-feira, 27 de maio de 2011
  • 35.
    Estrutura de umaentrada da tabela de páginas • Uma forma mais sofisticada: 3 bits; – Habilita/desabilita leitura, escrita, execução; • Modificada: controla o uso da página; – 1 foi usada; – 0 não foi usada, mesmo conteúdo do disco. • Referenciada: verifica se a página foi usada; – 1 foi usada; – 0 não foi usada, pode ser trocada. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 35 sexta-feira, 27 de maio de 2011
  • 36.
    Estrutura de umaentrada da tabela de páginas • Cache desabilitado: quando um valor deve ser constantemente atualizado, desabilita a cache. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 36 sexta-feira, 27 de maio de 2011
  • 37.
    Tabelas de Páginas(3) Entrada típica de uma tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 37 sexta-feira, 27 de maio de 2011
  • 38.
    Memória Associativa ouTLB • TLB (translation lookaside buffer): tabela de tradução de endereços; • Também conhecida como memória associativa; • Localizada dentro da MMU; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 38 sexta-feira, 27 de maio de 2011
  • 39.
    Memória Associativa ouTLB • Como funciona? – Quando um endereço é apresentado à MMU: • Primeiro verifica se o número da página virtual está presente na TLB; • Se é encontrada, e o acesso não viola os bits de proteção; • O número da moldura de página é obtido diretamente da TLB; • Sem necessidade de buscá-lo na tabela de páginas. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 39 sexta-feira, 27 de maio de 2011
  • 40.
    Memória Associativa ouTLB TLB para acelerar a paginação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 40 sexta-feira, 27 de maio de 2011
  • 41.
    Apresentação do Trabalho Pearson Education Sistemas Operacionais Modernos – 2ª Edição 41 sexta-feira, 27 de maio de 2011
  • 42.
    Algoritmos de Substituiçãode Páginas • A 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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 42 sexta-feira, 27 de maio de 2011
  • 43.
    O Algoritmo deSubstituição de Página Ótimo • Substitui a página necessária o mais a frente possível – ótimo mas não realizável • Estimada através de... – registro do uso da página em execuções anteriores do processo ... – apesar disto ser impraticável Pearson Education Sistemas Operacionais Modernos – 2ª Edição 43 sexta-feira, 27 de maio de 2011
  • 44.
    O Algoritmo deSubstituiçã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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 44 sexta-feira, 27 de maio de 2011
  • 45.
    Algoritmo de Substituiçãode 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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 45 sexta-feira, 27 de maio de 2011
  • 46.
    Algoritmo de Substituiçãode Página Segunda Chance (SC) • Operação do algoritmo segunda chance a) lista de páginas em ordem FIFO b) estado da lista em situação de falta de página no instante 20, com o bit R da página A em 1 (números representam instantes de carregamento das páginas na memória) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 46 sexta-feira, 27 de maio de 2011
  • 47.
    Algoritmo de Substituição de Página Relógio Pearson Education Sistemas Operacionais Modernos – 2ª Edição 47 sexta-feira, 27 de maio de 2011
  • 48.
    Menos Recentemente Usada (MRU)35 • 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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 48 sexta-feira, 27 de maio de 2011
  • 49.
    Simulação do MRUem Software (1) MRU usando uma matriz – páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 49 sexta-feira, 27 de maio de 2011
  • 50.
    Simulação do MRUem Software (2) • O algoritmo do envelhecimento (aging) simula o MRU em software • Note 6 páginas para 5 tiques de relógio, (a) – (e) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 50 sexta-feira, 27 de maio de 2011
  • 51.
    O Algoritmo deSubstituição de Página do Conjunto de Trabalho (1) • O conjunto de trabalho é o conjunto de páginas usadas pelas k referências mais recentes à memória • w(k,t) é o tamanho do conjunto de trabalho no instante t Pearson Education Sistemas Operacionais Modernos – 2ª Edição 51 sexta-feira, 27 de maio de 2011
  • 52.
    O Algoritmo deSubstituição de Página do Conjunto de Trabalho (2) O algoritmo do conjunto de trabalho Pearson Education Sistemas Operacionais Modernos – 2ª Edição 52 sexta-feira, 27 de maio de 2011
  • 53.
    O Algoritmo deSubstituição de Página WSClock Operação do Algoritmo WSClock Pearson Education Sistemas Operacionais Modernos – 2ª Edição 53 sexta-feira, 27 de maio de 2011
  • 54.
    Revisão dos Algoritmosde Substituição de Página Pearson Education Sistemas Operacionais Modernos – 2ª Edição 54 sexta-feira, 27 de maio de 2011
  • 55.
    Modelagem de Algoritmosde Substituição de Página – Anomalia de Belady • FIFO com 3 molduras de página • FIFO com 4 molduras de página • P mostra quais referências de página causaram faltas de página Pearson Education Sistemas Operacionais Modernos – 2ª Edição 55 sexta-feira, 27 de maio de 2011
  • 56.
    Tamanho de Página(1) Tamanho de página pequeno • Vantagens – menos fragmentação interna – menos programa não usado na memória • Desvantagens – programas precisam de mais páginas, tabelas de página maiores Pearson Education Sistemas Operacionais Modernos – 2ª Edição 56 sexta-feira, 27 de maio de 2011
  • 57.
    Espaços Separados de Instruções e Dados a) Espaço de endereçamento único b) Espaços separados de instruções (I) e dados (D) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 57 sexta-feira, 27 de maio de 2011
  • 58.
    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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 58 sexta-feira, 27 de maio de 2011
  • 59.
    Questões de Implementação Envolvimento do S.O. com a Paginação Quatro circunstâncias de envolvimento: 1. Criação de processo − determina tamanho do programa − cria tabela de página 2. Execução de processo − MMU reinicia tabela para novo processo − TLB é esvaziada 3. Ocorrência de falta de página − determina endereço virtual que causou a falta − descarta, se necessário, página antiga − carrega página requisitada para a memória 4. Terminação de processo Pearson Education Sistemas Operacionais Modernos – 2ª Edição 59 sexta-feira, 27 de maio de 2011
  • 60.
    Tratamento de Faltasde Página (1) 1) Hardware desvia a execução para o núcleo 2) Salva conteúdo de registradores e outras informações voláteis 3) SO determina a página virtual necessária 4) SO checa validade de endereço, busca moldura de página 5) Se moldura de página selecionada foi modificada (suja), salvá-la em disco Pearson Education Sistemas Operacionais Modernos – 2ª Edição 60 sexta-feira, 27 de maio de 2011
  • 61.
    Tratamento de Faltasde Página (2) 6) SO busca em disco página virtual referenciada 7) Tabela de páginas é atualizada 8) Estado da instrução que causou falta de página é recuperado 9) Processo que causou falta de página é escalado para executar 10)Programa continua Pearson Education Sistemas Operacionais Modernos – 2ª Edição 61 sexta-feira, 27 de maio de 2011
  • 62.
    Segmentação (1) • Espaço de endereçamento unidimensional com tabelas crescentes • Uma tabela pode atingir outra Pearson Education Sistemas Operacionais Modernos – 2ª Edição 62 sexta-feira, 27 de maio de 2011
  • 63.
    Segmentação (2) Permite que cada tabela cresça ou encolha, independentemente Pearson Education Sistemas Operacionais Modernos – 2ª Edição 63 sexta-feira, 27 de maio de 2011
  • 64.
    Segmentação (3) Comparação entre paginação e segmentação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 64 sexta-feira, 27 de maio de 2011
  • 65.
    Implementação de SegmentaçãoPura (a)-(d) Desenvolvimento de fragmentação externa (e) Remoção da fragmentação via compactação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 65 sexta-feira, 27 de maio de 2011
  • 66.
    Segmentação com Paginação: MULTICS (1) a) Descritores de segmentos apontam para tabelas de páginas b) Descritor de segmento – números indicam tamanhos dos campos Pearson Education Sistemas Operacionais Modernos – 2ª Edição 66 sexta-feira, 27 de maio de 2011
  • 67.
    Segmentação com Paginação: MULTICS (2) Um endereço virtual de 34 bits no MULTICS Pearson Education Sistemas Operacionais Modernos – 2ª Edição 67 sexta-feira, 27 de maio de 2011
  • 68.
    Segmentação com Paginação: MULTICS (3) Conversão de um endereço MULTICS de duas partes em um endereço da memória principal Pearson Education Sistemas Operacionais Modernos – 2ª Edição 68 sexta-feira, 27 de maio de 2011