SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Gerência de Memória
 Paginação e Segmentação
  Paginação
                       Hardware
                       Tamanho das Páginas
                       Modelo
                       Estrutura da Tabela de Páginas
                       Paginação em Vários Níveis
                       Compartilhamento de Páginas
               Segmentação
                       Hardware
                       Implementação de Tabela de Segmentos
                       Proteção e Compartilhamento
                       Fragmentação
               Segmentação com Paginação



Eduardo Nicola F. Zagari
                         2
            Paginação e Segmentação
  Outra solução (além da compactação) para o problema da
             fragmentação externa:
                 permitir que o espaço de endereçamento lógico seja não contíguo,
                   facilitando a alocação dos buracos da memória
                 esse mecanismo evita o problema idêntico que ocorre com a memória
                   secundária, onde a compactação tem alto custo
         A memória física é dividida em partes de tamanho fixo, chamadas
             de blocos (frames ou molduras)
         A memória lógica é dividida em partes do mesmo tamanho,
             chamadas de páginas
         A memória secundária também é dividida em partes do mesmo
             tamanho dos blocos da memória principal



Eduardo Nicola F. Zagari
                       3
                      Paginação e Segmentação
  Forma de atribuição de endereço em tempo de execução  usar
                   paginação é semelhante a usar uma tabela de registradores
                   base, um para cada bloco


                                                               0
                  Página 0                                     1
                  Página 1               0    1
                                                               2
                  Página 2               1    4
                                                               3
                  Página 3               2    3                4
                       ...               3    7                5
                                                               6
                                                               7
             Memória Lógica            Tabela de Páginas      Memória Física




Eduardo Nicola F. Zagari
                     4
                   Paginação e Segmentação
Lista de frames livres
               14         10                      Lista de frames livres 10
               13          11                               15           11
               18                                                     12
               20          12
               15          13                                         13      Página 1
                            14                                        14      Página 0
                            15                        0 14            15
                            16                        1 13            16
                            17                                        17
             Página 0                                 2 18                    Página 2
                            18                                        18
             Página 1       19                        3 20            19
             Página 2                                                 20      Página 3
                            20
             Página 3       21                      Tabela de Páginas 21
                            Memória Física                               Memória Física




Eduardo Nicola F. Zagari
                    5
                          Paginação e Segmentação
Eduardo Nicola F. Zagari
   6
   Paginação e Segmentação
  Endereços gerados pela CPU são divididos em:
                       Número da página (p) – usado como um índice em uma tabela de
                            páginas, a qual contém o endereço base de cada página na
                            memória física.


                       Deslocamento de Página (d) – combinado com o endereço base
                            para definir o endereço na memória física que será enviado para a
                            unidade de memória.




Eduardo Nicola F. Zagari
                             7
                      Paginação e Segmentação
End. Lógico                       End. Físico


           CPU               p   d                            b    d




                                                                               Memória
                                                                               Principal
                                      p

                                                  b

            p: no da página
            d: deslocamento
            b: no do bloco                Tabela de Páginas



Eduardo Nicola F. Zagari
                         8
                        Paginação e Segmentação
  O tamanho da página (e do bloco) é definido de acordo com o
             hardware
         Ele é normalmente uma potência de 2 (atualmente, o usual é entre
             512 bytes e 8192 bytes), veja o por quê:

            Se tamanho do espaço lógico: 2a
                   e tamanho da página: 2b                p         d
                                                         a-b       b

                                                               a




Eduardo Nicola F. Zagari
                     9
                   Paginação e Segmentação
Tamanho da Página: 1000 = 103
                            Endereço: 17436
                                End. Lógico                       End. Físico


           CPU                   17 436                           23 436




                                                                                   Memória
                                                                                   Principal
                                          17

                                                     23



                                              Tabela de Páginas

Eduardo Nicola F. Zagari
                             10
                       Paginação e Segmentação
Tamanho da Página: 256 = 28
                            Endereço: 17436 = (100010000011100)2
                                End. Lógico                       End. Físico


           CPU               1000100
 00011100
             10111 00011100


                                                                      (5916)10
                                                                                     Memória
                                  (1000100)2
                                        Principal
                                     = 68

                                                     23



                                              Tabela de Páginas

Eduardo Nicola F. Zagari
                             11
                         Paginação e Segmentação
  Fragmentação externa resolvida
               Fragmentação interna:
                       tam. pag. = 2048 bytes
                                                        35 pag + 1086 bytes
                       processo = 72766 bytes

                            fragmentação = 2048 - 1086 = 922 bytes

               Para processos de tamanho aleatório:
                       Fragmentação média = (tamanho de pagina) / 2




Eduardo Nicola F. Zagari
                         12
                     Paginação e Segmentação
  Assim, 
                       páginas menores, menor fragmentação interna
               Entretanto,
                       páginas maiores, menores os gastos com as tabelas de páginas e
                            mais eficientes as transferências (E/S) em discos
               Separação entre a memória física e a visão que o usuário tem
                   da memória (espaço único e contíguo)
               SO mantém cópia (apontador) das tabelas de páginas de cada
                   processo  maior tempo gasto em uma mudança de contexto




Eduardo Nicola F. Zagari
                             13
                       Paginação e Segmentação
1.  Pode ser representada em hardware por um conjunto de
             registradores dedicados - no pequeno de entradas
      2.  Pode ser mantida em memória
                Registrador Base de Tabela de Página (RBTP) 
                Registrador de Tamanho da Tabela de Página (RTTP) 
                Neste esquema, todo acesso a dados/instrução requer 2 acessos à
                    memória: um para a tabela de páginas e outro para os dados/instrução.
      3.  Memória Associativa ou TLB (Translation Look-Aside Buffers) -
             cache em hardware de pequena capacidade e busca rápida
                                        Página #
         Bloco #




                Tradução de Endereços (p, b): se p está num registrador associativo,
                    obtem número b do bloco. Caso contrário, obtém número b do bloco a
                    partir da tabela de páginas em memória.

Eduardo Nicola F. Zagari
                           14
                   Paginação e Segmentação
End. Lógico                             End. Físico

        CPU                  p    d           TLB                   b    d
                                          Pagina Bloco




                                                          Sucesso
                                           p        b                                Memória
                                                                                     Principal

                                                p
                                 Se TLB falha
                                                           b

                                  Tabela de Páginas

Eduardo Nicola F. Zagari
                           15
                           Paginação e Segmentação
  Busca Associativa (Pesquisa) = ε unidades de tempo
               Considere tempo de ciclo de memória igual a 1 microsegundo
               Taxa de acerto – porcentagem de vezes que um número de páginas é
                   encontrado nos registradores associativos (varia com o número de
                   registradores associativos).
               Taxa de acerto = α
               Tempo de Acesso Efetivo (Tae)
             
     
                    Tae = (1 + ε) α + (2 + ε)(1 – α)
             
     
                    
     = 2 + ε – α
                             Pesquisa: 20 ns e Memória: 100 ns
                             80% acerto  t.med. acesso = 0.8*120 + 0.2*220 = 140 ns
                             98% acerto  t.med. = 0.98*120 + 0.02*220 = 122 ns
                             Intel 80486: 32 reg. associativos e taxa de sucesso 98%




Eduardo Nicola F. Zagari
                               16
                         Paginação e Segmentação
  Proteção de Memória é implementada pela associação de um bit
                   de proteção com cada bloco de memória.


               Bit válida-inválida relacionado a cada entrada na tabela de
                   página:
                       “válida” indica que a página associada está no espaço de
                            endereços lógico do processo, isto é, uma página válida.
                       “inválida” indica que a página não está no espaço de endereços
                            lógicos do processo.




Eduardo Nicola F. Zagari
                             17
                       Paginação e Segmentação
Eduardo Nicola F. Zagari
   18
   Paginação e Segmentação
  Espaços de endereçamento lógicos muito grandes (232 a 264
                   bytes)  tabelas enormes...
               Exemplo:
                       Espaço endereçamento lógico: 32 bits
                       Tamanho de páginas: 4k (212)
                             232/212 = 1 M (220) entradas
                             1 M entradas de 4 bytes = Tabelas de 4 M 
               Solução: dividir a tabela de páginas em várias partes
                       Ex.:

                                     número da página         deslocamento

                                      p1       p2               d


Eduardo Nicola F. Zagari
                             19
                    Paginação e Segmentação
10 10           12                                    Tabela de páginas
          p1 p2             d
                                                                  de segundo nível
                                                                   0
                                                                   1                      Tabela de
                                                                                          páginas para os
                                                                                          primeiros 4M
                                                                   ≈            ≈         de memória
                                   Tabela de páginas          1023
                                   de primeiro nível             0
                                                                 1                       deslocamento
                                    0
                            p1      1
                                                                   ≈            ≈
                                    ≈            ≈            1023
                                 1023
                                                                         ...
                                                                  0
                                                             p2   1
                                                                                            Para
                                                                                            páginas
                                                                   ≈            ≈
                                                              1023
Eduardo Nicola F. Zagari
                              20
                            Paginação e Segmentação
  Outra vantagem do mecanismo de paginação é a possibilidade
                   de compartilhamento de código.
               Exemplo:
                       40 usuários usando um editor de textos  150 k de código + 50 k
                            de dados
                              Total: 8000 k


               Compiladores, Sistemas de Janelas, Sistemas de Banco de
                   Dados  códigos que nunca modificam a si próprios durante
                   sua execução
                       Usando compartilhamento de páginas: 2150 k no total




Eduardo Nicola F. Zagari
                        21
                      Paginação e Segmentação
ed 1
                            0   3                                                 0
          ed 2
          ed 3              1   4                                                 1 dados 1
                                                      ed 1
                                                                  0    3          2 dados 3
         dados 1            2   6                     ed 2
                                                                  1    4          3   ed 1
       Processo P1                                    ed 3
                            3   1                                                 4   ed 2
                            Tabela de Pá-            dados 3      2    6
                            ginas para P1                                          5
                                                    Processo P3   3    2
                                                                                   6  ed 3
                                                                  Tabela de Pá-    7 dados 2
                      ed 1                                        ginas para P3
                                    0    3                                        8
                      ed 2
                                    1    4                                         9
                      ed 3
                     dados 2        2    6                                        10
                  Processo P2
                                                                                              ...
                                    3    7
                                    Tabela de Pá-
                                                                                  Memória Física
                                    ginas para P2
Eduardo Nicola F. Zagari
                               22
                       Paginação e Segmentação
  Suponha que os processos P1 e P2 estejam compartilhando
                   páginas de um editor de texto
                       Problema:
                             Se o SO remover P1 da memória, P2 terá que trazer de volta
                              todas as páginas que compartilhava de P1
                             Se P1 terminar, é preciso determinar se suas páginas ainda
                              estão em uso, de forma que seu espaço em disco não seja
                              liberado
               Para evitar ter que buscar em todas as tabelas de páginas se
                   uma página é compartilhada ou não (o que é caro!)  montam-
                   se estruturas de dados especiais para tratar das páginas
                   compartilhadas




Eduardo Nicola F. Zagari
                           23
                      Paginação e Segmentação
  Com a paginação, ocorre a separação entre a visão da memória
                   pelo usuário e a memória física
                       Qual é a visão que o usuário tem da memória?

                                                                        Programa Principal
                                                                        Sub-rotinas
                                                                        Procedimentos
                              Sub-        Pilha                         Funções
                             rotina                                     Módulos
                                                            Função
                                                                        Tabelas
                                          Programa
                              Tabela de                                 Vetores
                                          Principal
                              símbolos                                  Pilhas
                                                                        Listas
                                                                        Variáveis locais
                            Espaço de Endereçamento Lógico              Variáveis globais



Eduardo Nicola F. Zagari
                             24
                    Paginação e Segmentação
  Segmentação é um esquema de gerência de memória que dá
             suporte a esta visão do usuário:
                 o espaço de end. lógico é uma coleção de segmentos
                 cada segmento tem um nome e um tamanho definido pelo seu
                   propósito
                 cada endereço é especificado por dois valores: nome (número) do
                   segmento e a posição (deslocamento) no segmento (offset) (<número,
                   posição>)
                       Elementos dentro do segmento são identificados pelo
                            deslocamento (offset) a partir do início ( 5a entrada da tabela, 3a
                            instrução da função)
                 Compilador constrói automaticamente os segmentos
                 Carregador aloca (determina) o número de cada segmento

                                                     s         d


Eduardo Nicola F. Zagari
                                25
                       Paginação e Segmentação
Pilha

                             Sub-       Pilha
                            rotina

                                                    Função
                                                                                 Sub
                                        Programa                                rotina
                            Tabela de   Principal                                T.S.
                            símbolos
                                                                                Prog.
                                                                                Princ.
                      Espaço de Endereçamento Lógico
                                                                               Função
        •  abela de Segmentos:
         T                                                                   Memória Física
              •  ase – contém o endereço físico inicial do segmento na memória
               b
              • imite – especifica o tamanho do segmento
               l


Eduardo Nicola F. Zagari
                           26
                     Paginação e Segmentação
Mapeamento de endereços bidimensionais em endereços físicos unidimensionais


                                        Tabela de segmentos
                                        s
                                            limite base



        CPU                 s   d                                       Memória
                                                                        Principal
                                              sim
                                      <                       +
                                        não

                 Interrupção de software; erro de endereçamento      Memória Física

Eduardo Nicola F. Zagari
                           27
              Paginação e Segmentação
0


                       Sub-                           Tabela de segmentos   1400
                      rotina                                                       Seg 0
                                    Programa                                2400
                                                       Limite     Base
                 segmento 0         Principal
                                                0      1000       1400
                                   segmento 2                               3200
                                                1       400       6300
        Função                                                                     Seg 3
                                                2       400       4300
                                 Pilha
                                                3      1100       3200      4300
                               segmento 3       4      1000       4700             Seg 2
     segmento 1                                                             4700
                            Tabela de                                              Seg 4
                            símbolos                                        5700
                            segmento 4                                      6300
                                                                            6700
                                                                                   Seg 1
       Espaço de Endereçamento Lógico
                                                                            Memória Física


Eduardo Nicola F. Zagari
                       28
                         Paginação e Segmentação
  Assim como a tabela de páginas, a tabela de segmentos pode ser
          armazenada tanto em registradores rápidos quanto na memória
         Se um programa consiste em muitos segmentos, deve-se usar a
          memória. Um registrador RBTS (Registrador Base da Tabela de
          Segmentos) aponta para a localização na memória da tabela
         Como o tamanho da tabela varia, usa-se um registrador RTTS
             (Registrador de Tamanho da Tabela de Segmentos) para indicar o
             comprimento da mesma, isto é, indica o número de segmentos
             usados pelo programa.
       
                    número do segmento s é legal se s < RTTS
         Pode-se também usar um conjunto de registradores associativos
             para armazenar as entradas mais recentemente usadas



Eduardo Nicola F. Zagari
                     29
                   Paginação e Segmentação
  Direitos de acesso diferentes a cada segmento
         Como os segmentos representam porções semanticamente
             distintas de um programa, todos os acessos a este segmento serão
             usados da mesma maneira
                 Segmento de dados  leitura/escrita/execução
                 Segmento de instruções  somente leitura/execução
         O hardware de tradução de endereços verifica os bits de proteção
             associados com cada entrada na tabela de segmentos
         Possibilidade de detecção pelo hardware de violação de limites de
             arranjos, matrizes, vetores, ...




Eduardo Nicola F. Zagari
                        30
                   Paginação e Segmentação
  Cada processo tem sua tabela de segmentos: pode-se
                   compartilhar segmentos entre dois processos diferentes,
                   fazendo-se entradas de suas tabelas apontarem para a mesma
                   posição de memória física
               Pode-se compartilhar programas inteiros ou apenas funções,
                   procedimentos, etc
               Problemas quando o segmento compartilhado faz referências
                   internas a si mesmo (ex.: comando de desvio)  se esse
                   segmento é compartilhado, todos os processos que o
                   compartilham devem usar o mesmo número de segmento




Eduardo Nicola F. Zagari
                   31
                   Paginação e Segmentação
0
                                     Memória lógica
                                                          Tabela de segmentos
               Editor                 Processo P1
                                                              Processo P1             43062
                                                           Limite         Base
          segmento 0             Dados 1                   25286          43062                 Editor
                                                      0
                                segmento 1                  4425          68348
                                                      1
                                                                                      68348
                                                                                            Dados 1
                                                                                      72773
                                          Memória lógica
                                           Processo P2          Tabela de segmentos
                            Editor                                  Processo P2
                                                                 Limite      Base
                    segmento 0           Dados 2                                      90003
                                                                 25286      43062               Dados 2
                                        segmento 1         0                          98553
                                                                  8850      90003
                                                           1
                                                                                         Memória Física


Eduardo Nicola F. Zagari
                                 32
                         Paginação e Segmentação
  Segmentos têm tamanho variável (ao contrário das páginas)
               A alocação dinâmica de memória é normalmente resolvida com
                   um algoritmo de escolha do primeiro (first fit) ou melhor (best fit)
                   ou ..., bloco de memória
               Segmentação pode causar fragmentação externa (como no
                   esquema de partição da memória em partes de tamanho
                   variável)  pode-se usar compactação 
               Se o tamanho médio de segmentos for pequeno 
                   fragmentação também é pequena (é mais fácil alocar pequenos
                   segmentos do que processos)




Eduardo Nicola F. Zagari
                      33
                     Paginação e Segmentação
Tabela de segmentos

                Endereço Lógico
                                                      End da tabela
                                                       de páginas

         No       No         deslo-               ≈                   ≈
         seg      pag       camento                                       Tabela de páginas

                                                                              Endereço do
                                                                                 bloco
                                                                          ≈                   ≈


                                      No bloco          deslocamento
                                           Endereço Físico

Eduardo Nicola F. Zagari
                              34
                      Paginação e Segmentação
  Como mostrado no diagrama a seguir, o Intel 386 usa
                        segmentação com paginação para gerência de memória
                        com um esquema de paginação em 2 níveis.




Eduardo Nicola F. Zagari
                     35
                  Paginação e Segmentação
Eduardo Nicola F. Zagari
   36
   Paginação e Segmentação

Más contenido relacionado

La actualidad más candente

Trabalho sobre as memórias ram
Trabalho sobre as memórias ramTrabalho sobre as memórias ram
Trabalho sobre as memórias ram
jfranca1984
 
CapíTulo 2 Hardware
CapíTulo 2   HardwareCapíTulo 2   Hardware
CapíTulo 2 Hardware
guest45c85f
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
escoteirodabahia
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
Mateus Padua
 

La actualidad más candente (20)

Trabalho sobre Memoria RAM
Trabalho sobre Memoria RAMTrabalho sobre Memoria RAM
Trabalho sobre Memoria RAM
 
As memórias
As memóriasAs memórias
As memórias
 
Aula 06 setup pc
Aula 06   setup pcAula 06   setup pc
Aula 06 setup pc
 
Trabalho sobre as memórias ram
Trabalho sobre as memórias ramTrabalho sobre as memórias ram
Trabalho sobre as memórias ram
 
CapíTulo 2 Hardware
CapíTulo 2   HardwareCapíTulo 2   Hardware
CapíTulo 2 Hardware
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall Segurança de redes - Conceitos de firewall
Segurança de redes - Conceitos de firewall
 
Estrutura de diretorios
Estrutura de diretoriosEstrutura de diretorios
Estrutura de diretorios
 
Placa mãe
Placa mãePlaca mãe
Placa mãe
 
Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Livro anatomia do alongamento
Livro anatomia do alongamentoLivro anatomia do alongamento
Livro anatomia do alongamento
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
 
Aula 09 - Memórias do Computador
Aula 09 - Memórias do ComputadorAula 09 - Memórias do Computador
Aula 09 - Memórias do Computador
 
Estrutura e funcionamento do computador
Estrutura e funcionamento do computador Estrutura e funcionamento do computador
Estrutura e funcionamento do computador
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Memórias
MemóriasMemórias
Memórias
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 

Destacado

Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
Faculdade Mater Christi
 
Interrupções e DMA
Interrupções e DMAInterrupções e DMA
Interrupções e DMA
elliando dias
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
elliando dias
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
Computação Depressão
 
Gerência de Dispositivos
Gerência de DispositivosGerência de Dispositivos
Gerência de Dispositivos
elliando dias
 

Destacado (20)

SO-07 Gerenciamento de Memória: Memória Virtual
SO-07 Gerenciamento de Memória: Memória VirtualSO-07 Gerenciamento de Memória: Memória Virtual
SO-07 Gerenciamento de Memória: Memória Virtual
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de Processos
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Conceitos básicos de redes de computadores - Prof. Jefferson Costa
Conceitos básicos de redes de computadores - Prof. Jefferson CostaConceitos básicos de redes de computadores - Prof. Jefferson Costa
Conceitos básicos de redes de computadores - Prof. Jefferson Costa
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais - Virtual File System
Sistemas Operacionais - Virtual File SystemSistemas Operacionais - Virtual File System
Sistemas Operacionais - Virtual File System
 
Interrupções e DMA
Interrupções e DMAInterrupções e DMA
Interrupções e DMA
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Gerência de Dispositivos
Gerência de DispositivosGerência de Dispositivos
Gerência de Dispositivos
 
Selfie Ibitirama Móoca
Selfie Ibitirama   MóocaSelfie Ibitirama   Móoca
Selfie Ibitirama Móoca
 
Princípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipPrincípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV Unip
 
Gerenciamento E/S
Gerenciamento E/SGerenciamento E/S
Gerenciamento E/S
 
BR#HAUS Raio X Camboriú SC
BR#HAUS Raio X Camboriú SCBR#HAUS Raio X Camboriú SC
BR#HAUS Raio X Camboriú SC
 
Gerência de Dispositivos
Gerência de DispositivosGerência de Dispositivos
Gerência de Dispositivos
 
Residencial Vivant em Natal
Residencial Vivant em NatalResidencial Vivant em Natal
Residencial Vivant em Natal
 
Tfg faal 2012 daniel
Tfg  faal 2012 danielTfg  faal 2012 daniel
Tfg faal 2012 daniel
 

Más de Eduardo Nicola F. Zagari

Más de Eduardo Nicola F. Zagari (20)

Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 

Último

Último (9)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

SO-06 Gerenciamento de Memória: Paginação e Segmentação

  • 1. Gerência de Memória Paginação e Segmentação
  • 2.   Paginação   Hardware   Tamanho das Páginas   Modelo   Estrutura da Tabela de Páginas   Paginação em Vários Níveis   Compartilhamento de Páginas   Segmentação   Hardware   Implementação de Tabela de Segmentos   Proteção e Compartilhamento   Fragmentação   Segmentação com Paginação Eduardo Nicola F. Zagari 2 Paginação e Segmentação
  • 3.   Outra solução (além da compactação) para o problema da fragmentação externa:   permitir que o espaço de endereçamento lógico seja não contíguo, facilitando a alocação dos buracos da memória   esse mecanismo evita o problema idêntico que ocorre com a memória secundária, onde a compactação tem alto custo   A memória física é dividida em partes de tamanho fixo, chamadas de blocos (frames ou molduras)   A memória lógica é dividida em partes do mesmo tamanho, chamadas de páginas   A memória secundária também é dividida em partes do mesmo tamanho dos blocos da memória principal Eduardo Nicola F. Zagari 3 Paginação e Segmentação
  • 4.   Forma de atribuição de endereço em tempo de execução  usar paginação é semelhante a usar uma tabela de registradores base, um para cada bloco 0 Página 0 1 Página 1 0 1 2 Página 2 1 4 3 Página 3 2 3 4 ... 3 7 5 6 7 Memória Lógica Tabela de Páginas Memória Física Eduardo Nicola F. Zagari 4 Paginação e Segmentação
  • 5. Lista de frames livres 14 10 Lista de frames livres 10 13 11 15 11 18 12 20 12 15 13 13 Página 1 14 14 Página 0 15 0 14 15 16 1 13 16 17 17 Página 0 2 18 Página 2 18 18 Página 1 19 3 20 19 Página 2 20 Página 3 20 Página 3 21 Tabela de Páginas 21 Memória Física Memória Física Eduardo Nicola F. Zagari 5 Paginação e Segmentação
  • 6. Eduardo Nicola F. Zagari 6 Paginação e Segmentação
  • 7.   Endereços gerados pela CPU são divididos em:   Número da página (p) – usado como um índice em uma tabela de páginas, a qual contém o endereço base de cada página na memória física.
   Deslocamento de Página (d) – combinado com o endereço base para definir o endereço na memória física que será enviado para a unidade de memória. Eduardo Nicola F. Zagari 7 Paginação e Segmentação
  • 8. End. Lógico End. Físico CPU p d b d Memória Principal p b p: no da página d: deslocamento b: no do bloco Tabela de Páginas Eduardo Nicola F. Zagari 8 Paginação e Segmentação
  • 9.   O tamanho da página (e do bloco) é definido de acordo com o hardware   Ele é normalmente uma potência de 2 (atualmente, o usual é entre 512 bytes e 8192 bytes), veja o por quê: Se tamanho do espaço lógico: 2a e tamanho da página: 2b p d a-b b a Eduardo Nicola F. Zagari 9 Paginação e Segmentação
  • 10. Tamanho da Página: 1000 = 103 Endereço: 17436 End. Lógico End. Físico CPU 17 436 23 436 Memória Principal 17 23 Tabela de Páginas Eduardo Nicola F. Zagari 10 Paginação e Segmentação
  • 11. Tamanho da Página: 256 = 28 Endereço: 17436 = (100010000011100)2 End. Lógico End. Físico CPU 1000100 00011100 10111 00011100 (5916)10 Memória (1000100)2 Principal = 68 23 Tabela de Páginas Eduardo Nicola F. Zagari 11 Paginação e Segmentação
  • 12.   Fragmentação externa resolvida   Fragmentação interna:   tam. pag. = 2048 bytes 35 pag + 1086 bytes   processo = 72766 bytes fragmentação = 2048 - 1086 = 922 bytes   Para processos de tamanho aleatório:   Fragmentação média = (tamanho de pagina) / 2 Eduardo Nicola F. Zagari 12 Paginação e Segmentação
  • 13.   Assim,   páginas menores, menor fragmentação interna   Entretanto,   páginas maiores, menores os gastos com as tabelas de páginas e mais eficientes as transferências (E/S) em discos   Separação entre a memória física e a visão que o usuário tem da memória (espaço único e contíguo)   SO mantém cópia (apontador) das tabelas de páginas de cada processo  maior tempo gasto em uma mudança de contexto Eduardo Nicola F. Zagari 13 Paginação e Segmentação
  • 14. 1.  Pode ser representada em hardware por um conjunto de registradores dedicados - no pequeno de entradas 2.  Pode ser mantida em memória   Registrador Base de Tabela de Página (RBTP)   Registrador de Tamanho da Tabela de Página (RTTP)   Neste esquema, todo acesso a dados/instrução requer 2 acessos à memória: um para a tabela de páginas e outro para os dados/instrução. 3.  Memória Associativa ou TLB (Translation Look-Aside Buffers) - cache em hardware de pequena capacidade e busca rápida Página # Bloco #   Tradução de Endereços (p, b): se p está num registrador associativo, obtem número b do bloco. Caso contrário, obtém número b do bloco a partir da tabela de páginas em memória. Eduardo Nicola F. Zagari 14 Paginação e Segmentação
  • 15. End. Lógico End. Físico CPU p d TLB b d Pagina Bloco Sucesso p b Memória Principal p Se TLB falha b Tabela de Páginas Eduardo Nicola F. Zagari 15 Paginação e Segmentação
  • 16.   Busca Associativa (Pesquisa) = ε unidades de tempo   Considere tempo de ciclo de memória igual a 1 microsegundo   Taxa de acerto – porcentagem de vezes que um número de páginas é encontrado nos registradores associativos (varia com o número de registradores associativos).   Taxa de acerto = α   Tempo de Acesso Efetivo (Tae) Tae = (1 + ε) α + (2 + ε)(1 – α) = 2 + ε – α  Pesquisa: 20 ns e Memória: 100 ns  80% acerto  t.med. acesso = 0.8*120 + 0.2*220 = 140 ns  98% acerto  t.med. = 0.98*120 + 0.02*220 = 122 ns  Intel 80486: 32 reg. associativos e taxa de sucesso 98% Eduardo Nicola F. Zagari 16 Paginação e Segmentação
  • 17.   Proteção de Memória é implementada pela associação de um bit de proteção com cada bloco de memória.
   Bit válida-inválida relacionado a cada entrada na tabela de página:   “válida” indica que a página associada está no espaço de endereços lógico do processo, isto é, uma página válida.   “inválida” indica que a página não está no espaço de endereços lógicos do processo. Eduardo Nicola F. Zagari 17 Paginação e Segmentação
  • 18. Eduardo Nicola F. Zagari 18 Paginação e Segmentação
  • 19.   Espaços de endereçamento lógicos muito grandes (232 a 264 bytes)  tabelas enormes...   Exemplo:   Espaço endereçamento lógico: 32 bits   Tamanho de páginas: 4k (212)  232/212 = 1 M (220) entradas  1 M entradas de 4 bytes = Tabelas de 4 M   Solução: dividir a tabela de páginas em várias partes   Ex.: número da página deslocamento p1 p2 d Eduardo Nicola F. Zagari 19 Paginação e Segmentação
  • 20. 10 10 12 Tabela de páginas p1 p2 d de segundo nível 0 1 Tabela de páginas para os primeiros 4M ≈ ≈ de memória Tabela de páginas 1023 de primeiro nível 0 1 deslocamento 0 p1 1 ≈ ≈ ≈ ≈ 1023 1023 ... 0 p2 1 Para páginas ≈ ≈ 1023 Eduardo Nicola F. Zagari 20 Paginação e Segmentação
  • 21.   Outra vantagem do mecanismo de paginação é a possibilidade de compartilhamento de código.   Exemplo:   40 usuários usando um editor de textos  150 k de código + 50 k de dados  Total: 8000 k   Compiladores, Sistemas de Janelas, Sistemas de Banco de Dados  códigos que nunca modificam a si próprios durante sua execução   Usando compartilhamento de páginas: 2150 k no total Eduardo Nicola F. Zagari 21 Paginação e Segmentação
  • 22. ed 1 0 3 0 ed 2 ed 3 1 4 1 dados 1 ed 1 0 3 2 dados 3 dados 1 2 6 ed 2 1 4 3 ed 1 Processo P1 ed 3 3 1 4 ed 2 Tabela de Pá- dados 3 2 6 ginas para P1 5 Processo P3 3 2 6 ed 3 Tabela de Pá- 7 dados 2 ed 1 ginas para P3 0 3 8 ed 2 1 4 9 ed 3 dados 2 2 6 10 Processo P2 ... 3 7 Tabela de Pá- Memória Física ginas para P2 Eduardo Nicola F. Zagari 22 Paginação e Segmentação
  • 23.   Suponha que os processos P1 e P2 estejam compartilhando páginas de um editor de texto   Problema:  Se o SO remover P1 da memória, P2 terá que trazer de volta todas as páginas que compartilhava de P1  Se P1 terminar, é preciso determinar se suas páginas ainda estão em uso, de forma que seu espaço em disco não seja liberado   Para evitar ter que buscar em todas as tabelas de páginas se uma página é compartilhada ou não (o que é caro!)  montam- se estruturas de dados especiais para tratar das páginas compartilhadas Eduardo Nicola F. Zagari 23 Paginação e Segmentação
  • 24.   Com a paginação, ocorre a separação entre a visão da memória pelo usuário e a memória física   Qual é a visão que o usuário tem da memória? Programa Principal Sub-rotinas Procedimentos Sub- Pilha Funções rotina Módulos Função Tabelas Programa Tabela de Vetores Principal símbolos Pilhas Listas Variáveis locais Espaço de Endereçamento Lógico Variáveis globais Eduardo Nicola F. Zagari 24 Paginação e Segmentação
  • 25.   Segmentação é um esquema de gerência de memória que dá suporte a esta visão do usuário:   o espaço de end. lógico é uma coleção de segmentos   cada segmento tem um nome e um tamanho definido pelo seu propósito   cada endereço é especificado por dois valores: nome (número) do segmento e a posição (deslocamento) no segmento (offset) (<número, posição>)  Elementos dentro do segmento são identificados pelo deslocamento (offset) a partir do início ( 5a entrada da tabela, 3a instrução da função)   Compilador constrói automaticamente os segmentos   Carregador aloca (determina) o número de cada segmento s d Eduardo Nicola F. Zagari 25 Paginação e Segmentação
  • 26. Pilha Sub- Pilha rotina Função Sub Programa rotina Tabela de Principal T.S. símbolos Prog. Princ. Espaço de Endereçamento Lógico Função •  abela de Segmentos: T Memória Física •  ase – contém o endereço físico inicial do segmento na memória b • imite – especifica o tamanho do segmento l Eduardo Nicola F. Zagari 26 Paginação e Segmentação
  • 27. Mapeamento de endereços bidimensionais em endereços físicos unidimensionais Tabela de segmentos s limite base CPU s d Memória Principal sim < + não Interrupção de software; erro de endereçamento Memória Física Eduardo Nicola F. Zagari 27 Paginação e Segmentação
  • 28. 0 Sub- Tabela de segmentos 1400 rotina Seg 0 Programa 2400 Limite Base segmento 0 Principal 0 1000 1400 segmento 2 3200 1 400 6300 Função Seg 3 2 400 4300 Pilha 3 1100 3200 4300 segmento 3 4 1000 4700 Seg 2 segmento 1 4700 Tabela de Seg 4 símbolos 5700 segmento 4 6300 6700 Seg 1 Espaço de Endereçamento Lógico Memória Física Eduardo Nicola F. Zagari 28 Paginação e Segmentação
  • 29.   Assim como a tabela de páginas, a tabela de segmentos pode ser armazenada tanto em registradores rápidos quanto na memória   Se um programa consiste em muitos segmentos, deve-se usar a memória. Um registrador RBTS (Registrador Base da Tabela de Segmentos) aponta para a localização na memória da tabela   Como o tamanho da tabela varia, usa-se um registrador RTTS (Registrador de Tamanho da Tabela de Segmentos) para indicar o comprimento da mesma, isto é, indica o número de segmentos usados pelo programa. número do segmento s é legal se s < RTTS   Pode-se também usar um conjunto de registradores associativos para armazenar as entradas mais recentemente usadas Eduardo Nicola F. Zagari 29 Paginação e Segmentação
  • 30.   Direitos de acesso diferentes a cada segmento   Como os segmentos representam porções semanticamente distintas de um programa, todos os acessos a este segmento serão usados da mesma maneira   Segmento de dados  leitura/escrita/execução   Segmento de instruções  somente leitura/execução   O hardware de tradução de endereços verifica os bits de proteção associados com cada entrada na tabela de segmentos   Possibilidade de detecção pelo hardware de violação de limites de arranjos, matrizes, vetores, ... Eduardo Nicola F. Zagari 30 Paginação e Segmentação
  • 31.   Cada processo tem sua tabela de segmentos: pode-se compartilhar segmentos entre dois processos diferentes, fazendo-se entradas de suas tabelas apontarem para a mesma posição de memória física   Pode-se compartilhar programas inteiros ou apenas funções, procedimentos, etc   Problemas quando o segmento compartilhado faz referências internas a si mesmo (ex.: comando de desvio)  se esse segmento é compartilhado, todos os processos que o compartilham devem usar o mesmo número de segmento Eduardo Nicola F. Zagari 31 Paginação e Segmentação
  • 32. 0 Memória lógica Tabela de segmentos Editor Processo P1 Processo P1 43062 Limite Base segmento 0 Dados 1 25286 43062 Editor 0 segmento 1 4425 68348 1 68348 Dados 1 72773 Memória lógica Processo P2 Tabela de segmentos Editor Processo P2 Limite Base segmento 0 Dados 2 90003 25286 43062 Dados 2 segmento 1 0 98553 8850 90003 1 Memória Física Eduardo Nicola F. Zagari 32 Paginação e Segmentação
  • 33.   Segmentos têm tamanho variável (ao contrário das páginas)   A alocação dinâmica de memória é normalmente resolvida com um algoritmo de escolha do primeiro (first fit) ou melhor (best fit) ou ..., bloco de memória   Segmentação pode causar fragmentação externa (como no esquema de partição da memória em partes de tamanho variável)  pode-se usar compactação   Se o tamanho médio de segmentos for pequeno  fragmentação também é pequena (é mais fácil alocar pequenos segmentos do que processos) Eduardo Nicola F. Zagari 33 Paginação e Segmentação
  • 34. Tabela de segmentos Endereço Lógico End da tabela de páginas No No deslo- ≈ ≈ seg pag camento Tabela de páginas Endereço do bloco ≈ ≈ No bloco deslocamento Endereço Físico Eduardo Nicola F. Zagari 34 Paginação e Segmentação
  • 35.   Como mostrado no diagrama a seguir, o Intel 386 usa segmentação com paginação para gerência de memória com um esquema de paginação em 2 níveis. Eduardo Nicola F. Zagari 35 Paginação e Segmentação
  • 36. Eduardo Nicola F. Zagari 36 Paginação e Segmentação