SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
Gerência de Memória
             Alocação
  Introdução
               Atribuição de Endereços, Carregamento Dinâmico, Ligação
                   Dinâmica
               Espaço de Endereçamento Físico versus Lógico
               Alocação Contígua Simples
               Overlay
               Alocação Particionada
               Fragmentação Externa e Interna
               Gerência de Memória com Mapeamento de Bits
               Gerência de Memória com Listas Ligadas
               Algoritmos de Alocação de Partições
               Swapping



Eduardo Nicola F. Zagari
                  2
                   Gerência de Memória - Alocação
  Memória  um dos mais importantes recursos de um computador
                       necessidade de ser gerenciada 
               Programas devem ser colocados dentro de um processo e então
                   carregados em memória para serem executados.
               Input queue – coleção de processos no disco que estão aguardando
                   carregamento em memória para executarem o programa.
               Funções de um Gerente de Memória
                       controlar quais partes da memória estão em uso
                       controlar quais partes estão livres
                       alocar memória a processos quando estes precisarem
                       desalocar quando eles não mais necessitarem
                       gerenciar a troca (swapping ) dos processos entre memória principal e
                            disco, quando a memória não é grande o suficiente para guardar todos os
                            processos




Eduardo Nicola F. Zagari
                                3
                       Gerência de Memória - Alocação
  A CPU busca instruções da memória de acordo com o valor do
                   contador de instruções (PC) do programa em execução. Essas
                   instruções podem:
                       buscar novos valores de endereços específicos da memória
                       armazenar novos valores em posições específicas da memória
               Programas de usuário passam por vários passos antes de
                   começarem a ser executados. 


                                                      Instrução
                     UAL              UC
                                                      Parâmetros      Memória
                PC          Registrador                               Principal
                            Registrador               Resultado



Eduardo Nicola F. Zagari
                        4
                    Gerência de Memória - Alocação
  A maioria dos sistemas permite que os processos de usuários
                   sejam colocados em qualquer parte da memória
                       assim, embora o espaço de endereçamento comece em 0000, o
                            endereço inicial de um processo não precisa ser este. 
                A ligação de endereços de
                   instruções e de dados para os                      Programa
                   endereços de memória podem                           Fonte
                   acontecer em 3 estágios
                   diferentes:
                       Em tempo de compilação
                     compilador ou          tempo de
                              código absoluto: se o programa vai     montador             compilação
                               ser carregado no endereço E, o
                               código gerado pelo compilador
                               inicia-se neste endereço (se for
                               alterado, deve ser recompilado).
                               Ex.: “.COMʼʼ do DOS
                                                                        Código
                                                                        Objeto

Eduardo Nicola F. Zagari
                                5
                    Gerência de Memória - Alocação
  Em tempo de carga
                       código relocável: quando não se        Código
                            conhece em tempo de                                   Cód Obj
                                                               Objeto             de outros
                            compilação a posição em que o
                            programa será armazenado.                             módulos
                            Ex.: 
                              Compilador: 14 bytes do
                               início
                         ligador           tempo
                              Carregador: 74000 + 14
                           de carga


                                                               Código
                                                                                  Biblioteca
                                                              Relocável
                                                                                  de sistema


                                                              carregador




Eduardo Nicola F. Zagari
                                6
                Gerência de Memória - Alocação
  Em tempo de execução
                                                                                    Biblioteca
                       se o processo pode ser movido
                                                                                    de sistema
                            durante sua execução, a
                            determinação do endereço deve
                            ser atrasada para o tempo de         carregador
                            execução
                       há a necessidade de suporte de
                            hardware para o mapeamento                           Biblioteca
                            de endereços (p.ex.:                                 de sistema
                            registradores base e limite)
                        carregada
                                                                                 dinamica-
                                                                                   mente

                                                                  Código
                                                                                    tempo de
                                                                  binário
                                                                 executável         execução




Eduardo Nicola F. Zagari
                                   7
                Gerência de Memória - Alocação
  O conceito de um espaço de endereçamento lógico que está
                   associado a um espaço de endereçamento físico separado é
                   central ao adequado gerenciamento da memória.
                       Endereço Lógico – gerado pela CPU; também conhecido como
                            endereço virtual.
                       Endereço Físico – endereço visto pela unidade de memória.



               Endereços Lógico e Físico são os mesmo nos esquemas de
                   atribuição de endereços em tempo de compilação e em tempo
                   de carga.
               Endereços Lógico e Físico diferem quando se usa esquema de
                   atribuição de endereços em tempo de execução.




Eduardo Nicola F. Zagari
                         8
                     Gerência de Memória - Alocação
  Dispositivo de hardware que mapeia endereços virtuais em
                   endereços físicos.


               Através da MMU, o valor do registrador de relocação é
                   adicionado a todo endereço gerado pelo processo do usuário no
                   instante em queee é enviado à memória.


               O programa do usuário lida com endereços lógicos; ele nunca vê
                   o endereço físico real.




Eduardo Nicola F. Zagari
                     9
                  Gerência de Memória - Alocação
Registrador
                                           Base
                                          14000



                            Endereço                   Endereço   Memória
                             Lógico                     Físico
            CPU              #346           +           #14346
                                                                  Principal


                                          MMU
                                        Unidade de
                                       Gerenciamento
                                        de Memória



Eduardo Nicola F. Zagari
                       10
               Gerência de Memória - Alocação
  Rotina não é carregada até que ela seja chamada 
               Melhor utilização do espaço de memória
                       Rotinas que não são usadas nunca são carregadas.
               Útil quando grandes quantidades de código são necessárias
                   para manipular casos pouco freqüentes.
               Nenhum suporte especial do S.O. é requerido
                       Implementado através do projeto do programa.




Eduardo Nicola F. Zagari
                        11
                    Gerência de Memória - Alocação
  A ligação (linking) é adiada até o tempo de execução.
               Stub: um pequeno pedaço de código usado para a localização
                   da rotina dinâmica, residente em memória, apropriada.
               O stub substitui a si próprio com o endereço da rotina e a
                   executa.
               É necessário o suporte do S.O. para verificar se a rotina está no
                   endereço de memória dos processos.
               Ligação Dinâmica é particularmente útil para bibliotecas.
                             Economia de espaço
                             Atualização
                             Controle de concorrência




Eduardo Nicola F. Zagari
                           12
            Gerência de Memória - Alocação
  Toda vez que desejarmos executar um programa (residente em
                   memória secundária), deveremos, de alguma forma, carregá-lo
                   para a memória principal, para que o processador possa
                   referenciar suas instruções e seus dados
               Nos sistemas monoprogramados a gerência da memória não é
                   muito complexa, mas nos sistemas multiprogramados ela se
                   torna crítica
               A seguir apresentaremos os principais esquemas de
                   organização e gerência da memória principal




Eduardo Nicola F. Zagari
                    13
                  Gerência de Memória - Alocação
  Implementada nos primeiros SOs e ainda está presente em
                   alguns sistemas monoprogramados
               Esquema mais simples para gerência de memória
               A memória principal é dividida em duas partes:
                       uma para o Sistema Operacional
                       outra para o(s) programa(s) do(s) usuário(s)
               SO pode ocupar tanto a parte baixa quanto a parte mais alta da
                   memória, dependendo da localização do vetor de interrupções




Eduardo Nicola F. Zagari
                          14
                  Gerência de Memória - Alocação
  No IBM-PC é utilizado o terceiro modelo: nos 8KB mais altos dos
                   1 MB de endereçamento existe uma ROM com um programa
                   chamado BIOS (Basic Input Output System), correspondente a
                   todos os drivers

                  Memória Principal    Memória Principal    Memória Principal
        0xFF                                Sistema           Drivers de dispo-
                        Área para o       Operacional         sitivos em ROM
                         processo          em ROM
                        do usuário                              Área para o
                                          Área para o            processo
                          Sistema          processo             do usuário
                        Operacional       do usuário                SO
         0x00            em RAM                                  em RAM




Eduardo Nicola F. Zagari
                   15
                  Gerência de Memória - Alocação
  Usuário tem controle sobre toda a memória principal, podendo
                   acessar até a área do SO (caso do DOS)
               PROTEÇÃO: Pode-se implementar um esquema de proteção
                   usando um registrador que delimite as áreas do SO e usuário



                                 Memória Principal
                                                      Registrador
                                     Sistema
                                    Operacional
                                    Área para o
                                     processo
                                    do usuário




Eduardo Nicola F. Zagari
                     16
                   Gerência de Memória - Alocação
  Sempre que um programa do usuário faz referência a um endereço
             de memória, o sistema verifica se o endereço está nos seus limites
             (registrador base e registrador limite). Caso não esteja, o programa
             de usuário pode ser cancelado e ser gerada uma mensagem de
             erro


                                       Registrador         Registrador
                                         Limite              Base
                            Endereço                                     Endereço Memória
               CPU           Lógico                                       Físico Principal
                                            <                  +
                                                     MMU
                    interrupção de software; erro de endereçamento



Eduardo Nicola F. Zagari
                            17
                       Gerência de Memória - Alocação
  Problemas: não permite a utilização
                   eficiente do processador e nem da
                   memória principal, além de limitar o
                   tamanho do programa do usuário
           Memória Principal


               Em SOs que suportam o conceito de               Sistema
                   MULTIPROGRAMAÇÃO, é preciso que             Operacional
                   existam outras formas de organização da
                   memória principal, a fim de suportar
                   vários processos na memória
                                                                 Processo
                   simultaneamente
                                                                do Usuário



                                                                Área Livre




Eduardo Nicola F. Zagari
                         18
               Gerência de Memória - Alocação
  Sobreposição (Overlay) (usuário)
                       O que fazer quando se tem um programa que ocupa mais memória
                            do que a disponível?
                       Verifica-se se o programa tem seções que não necessitem
                            permanecer na memória durante toda a execução
                              Mantém-se na memória somente aquelas instruções e dados
                               que são necessários a qualquer hora.
                       Essas seções, uma vez executadas, podem ser substituídas por
                            outras
                       A substituição ocorre pela transferência da seção do disco para a
                            memória na área de overlay, cobrindo a seção anterior
                       O programa é inicialmente carregado mais rapidamente, entretanto,
                            a execução ficará um pouco mais lenta, devido ao tempo extra
                            gasto com a sobreposição




Eduardo Nicola F. Zagari
                             19
                    Gerência de Memória - Alocação
Armazenamento
                     Primário                        Armazenamento
                                                       Secundário
                 Parte fixa           Fase inicial          Fase           Fase final
            50K
    do                                 intermediária
                 processo
                                                          30K
                                        50K
                        Rotina de                                             80K
            20K
         controle
                        de overlay


                             Área
           80K
               de
                            Overlay



Eduardo Nicola F. Zagari
                  20
                         Gerência de Memória - Alocação
  O mecanismo de overlay é pouco transparente, pois a definição
                   das áreas de overlay é função do programador (não é do SO),
                   através de comandos específicos da linguagem utilizada.
               Dependendo da definição, pode ocasionar sérias implicações no
                   desempenho das aplicações, devido à transferência excessiva
                   dos módulos entre o disco e a memória




Eduardo Nicola F. Zagari
                    21
                  Gerência de Memória - Alocação
  Motivação:
                       tornar mais fácil programar uma aplicação, dividindo-a em dois ou
                            mais processos
                       existência de serviço interativo para vários usuários
                            simultaneamente (tempo de resposta)
                       utilização da CPU (existência de processos I/O bound )
               Modelos de Multiprogramação
                       Modelos Simplista
                              Se cada processo gasta 20% de seu tempo na memória usando
                               o processador, então 5 processos alcançam um fator de
                               utilização da CPU de 100%
                       E se os 5 processos esperam por E/S simultaneamente?




Eduardo Nicola F. Zagari
                            22
                    Gerência de Memória - Alocação
  Modelo Probabilistico
                             Cada processo gasta p% de seu tempo com E/S
                             n processos  probabilidade de estarem aguardando E/S
                              simultaneamente: pn


                                              F.U.CPU = 1 - pn
                             Exemplo:
                                –  1 MB de memória, SO de 200K, processos de 200K e cada
                                   um gasta 80% do tempo com E/S  4 processos na
                                   memória  FUCPU ≅ 60%
                                –  Adição de 1 MB de RAM  grau de 4 p/ 9  FU ≅87%
                                –  Adição de mais 1 MB de RAM  grau de multiprogramação
                                   de 9 para 14  FU ≅ 96%




Eduardo Nicola F. Zagari
                            23
                 Gerência de Memória - Alocação
  Nos primeiros SOs multiprogramados a memória principal era dividida em
             pedaços de tamanho fixo (possivelmente distintos), chamados partições

         O tamanho das partições era estabelecido na fase de inicialização do
             sistema (boot), em função dos tamanhos dos programas que iriam ser
             executados
                 alteração de tamanho de partição
                      Memória Principal
                         reinicialização
                                                                        Sistema Operacional
              Tabela de partições
                                                   Programas a                                         2 KB
            Partição           Tamanho                                      Partição 1
                                                 serem executados
                  1               2 KB       E     D        C   B   A       Partição 2                 5 KB
                  2               5 KB       3KB 6KB 1KB 4KB 2KB
                                                                                                       8 KB
                  3               8 KB                                      Partição 3




Eduardo Nicola F. Zagari
                             24
                   Gerência de Memória - Alocação
  A proteção baseia-se em dois registradores, que indicam os limites inferior
             e superior da partição onde o programa está sendo executado
         Acessos do processo usuário provocam a comparação com o registrador
             limite, caso haja invasão, o processo é terminado com uma mensagem de
             erro.


                             Memória Principal          Endereço inicial

                                                                            Endereço final
                            Sistema Operacional
                                Partição 1

                                Partição 2


                                Partição 3

Eduardo Nicola F. Zagari
                         25
                      Gerência de Memória - Alocação
  E as chamadas aos serviços do SO ?
                       Isto é resolvido através da instrução chamada ao supervisor
                            (supervisor call )


                                 Modo Usuário versus Modo Supervisor


               Modo Usuário:
                       Execução das instruções disponíveis aos usuários
               Modo Supervisor:
                       Todas as instruções permitidas (não é feita comparação com o
                            registrador limite)
               A passagem do modo usuário para o modo supervisor ocorre
                   quando da solicitação de um serviço



Eduardo Nicola F. Zagari
                          26
                      Gerência de Memória - Alocação
  Partições Fixas com Filas Múltiplas:
               processo é colocado em uma partição determinada. Se estiver ocupada,
                  aguarda na fila; 
               ou, processo é colocado na fila da menor partição em que caiba
        Problema: partições não utilizadas

                                                Memória Principal
                              Programas a
                            serem executados   Sistema Operacional
                                                      Partição 1

                                                      Partição 2


                                                      Partição 3



Eduardo Nicola F. Zagari
                       27
                  Gerência de Memória - Alocação
  Partições Fixas com Fila Única:
                 fila única para todas as partições;
                 processo é colocado na fila da menor partição disponível em que caiba

                                                         Memória Principal

                              Programas a               Sistema Operacional
                            serem executados                Partição 1

                                                            Partição 2


                                                            Partição 3



Eduardo Nicola F. Zagari
                        28
                     Gerência de Memória - Alocação
  Problema: 
                       colocação de um programa pequeno em uma partição grande 
                       partições vazias por falta de “clientes”


               Uma tentativa de solução:
                       correr toda a fila antes de escolher o “cliente”
                       Problema:
                             discrimina pequenos processos




Eduardo Nicola F. Zagari
                           29
                    Gerência de Memória - Alocação
  Em sistemas em que os compiladores e montadores geram
                   apenas código absoluto, os processos podem executar em
                   apenas uma das partições, mesmo que outras estejam livres



                                   Memória Principal
           Programas a                                           Se os processos A e
         serem executados                                         B estivessem
                                  Sistema Operacional             executando e a
                                                        2 KB
                        C   A         Partição 1                  partição 3 estivesse
                                                                  livre, os processos C
                                                        5 KB      e E não poderiam ser
                        E   B         Partição 2
                                                                  executados
                                                        8 KB
                            D         Partição 3




Eduardo Nicola F. Zagari
                     30
                      Gerência de Memória - Alocação
  Com a evolução dos compiladores, linkers e loaders, tornou-se
                   possível a geração de código relocável, permitindo que os
                   processos sejam carregados em qualquer uma das partições



                                   Memória Principal             Se os processos A e
                                                                  B terminarem de
                                  Sistema Operacional             executar, o processo
            Programas a                                 2 KB
                                      Processo C                  E pode ser carregado
        serem executados                                          e executado em
                                                        5 KB      qualquer uma das
                       D     E        Processo A
                     6KB    3KB                                   duas partições
                                                        8 KB
                                      Processo B




Eduardo Nicola F. Zagari
                     31
                      Gerência de Memória - Alocação
  Problema da APE: fragmentação excessiva
                       Fragmentação é o problema que surge quando pedaços de
                            memória ficam impedidos de serem utilizados por outros processos.



                                                      Memória Principal

                                                     Sistema Operacional
                                  Programas a             Processo C     1 KB
                              serem executados
                                                           Processo A
                                      D      B                            3 KB
                                     6KB    4KB
                                                           Processo E
                                                                          3 KB




Eduardo Nicola F. Zagari
                            32
                    Gerência de Memória - Alocação
  Visa reduzir o problema da fragmentação e, consequentemente,
             aumentar o grau de compartilhamento da memória
         É eliminado o conceito de partições de tamanho fixo
         Na APD, cada processo utiliza o espaço necessário, passando
             esse pedaço a ser a sua partição

                                 Memória Principal

                                Sistema Operacional           Sistema Operacional
                                                                                            4 KB
           Programas a                                            Processo B
       serem executados                               11 KB
                                                                                            1 KB
                                                                  Processo C
                                                                                            3 KB
      A        E        C   B                                     Processo E
     2KB 3KB 1KB 4KB                                                                        2 KB
                                                                  Processo A                1 KB




Eduardo Nicola F. Zagari
                     33
                   Gerência de Memória - Alocação
Memória Principal
                  0
                                                       Fila de processos
                        Sistema Operacional           Processo Tamanho      Tempo
            400K
                                                        P1      600K           10
                                                        P2     1000K            5
                                                        P3      300K           20
                                                        P4      700K            8
                                                        P5      500K           15
           2560K




Eduardo Nicola F. Zagari
                       34
                    Gerência de Memória - Alocação
0                 0                0                     0               0

            400K
                        so    400K
                                        so    400K
                                                               so    400K
                                                                               so    400K
                                                                                                so

                        P1              P1                     P1                                P5
                                                                                     900K
           1000K             1000K           1000K                  1000K           1000K

                               P2            aloca             P4     P1       P4   aloca        P4
                        P2   termina          a P4                  termina          a P5
                                             1700K                  1700K           1700K
           2000K             2000K           2000K                  2000K           2000K
           2300K
                        P3   2300K
                                        P3   2300K
                                                               P3   2300K
                                                                               P3   2300K
                                                                                                 P3
           2560K             2560K           2560K                  2560K           2560K




Eduardo Nicola F. Zagari
                                35
                        Gerência de Memória - Alocação
  Neste esquema, a fragmentação começa a ocorrer quando os
                   processos forem terminando e deixando espaços cada vez
                   menores na memória, não permitindo o ingresso de novos
                   processos


                                     Memória Principal             Apesar da
                                                                   existência de 8
                                    Sistema Operacional
                  Programa a                                       Kbytes de
                                                          4 KB
                ser executado                                      memória livre, o
                                                          1 KB     processo D não
                             D          Processo C                 poderá ser
                            6KB                           3 KB
                                                                   carregado
                                                          2 KB
                                        Processo A        1 KB




Eduardo Nicola F. Zagari
                    36
                    Gerência de Memória - Alocação
  Soluções para a fragmentação:
                       Primeira: aglutinar espaços livres adjacentes em um único espaço
                            de tamanho maior. No exemplo anterior, caso o processo C termine,
                            teríamos:


                       Memória Principal                         Memória Principal

                     Sistema Operacional                        Sistema Operacional
                                              4 KB
                                              1 KB                                       8 KB
                             Processo C
                                              3 KB

                                              2 KB                                       2 KB
                             Processo A       1 KB
                                                                    Processo A           1 KB




Eduardo Nicola F. Zagari
                            37
                    Gerência de Memória - Alocação
  Como gerenciar? (ver tópico Gerência de Uso da Memória)
                              Mapa de Bits
                              Lista de partições ocupadas
                              Lista de partições livres
                              Ao término do processo, um “buraco” pode ser:
                                  –  adicionado à lista de partições livres (caso a nova partição
                                     livre esteja cercada de partições ocupadas)
                                  –  incorporada a uma das partições da lista de partições livres
                                     (caso o “buraco” seja adjacente a uma partição livre)


                       Não resolve completamente o problema (pode haver buracos
                            pequenos...)




Eduardo Nicola F. Zagari
                              38
                      Gerência de Memória - Alocação
  Segunda: fazer uma relocação de todas as regiões ocupadas
                            (movimento de todos os processos), eliminando todos os espaços
                            entre elas e criando-se uma única área livre contígua. Este método
                            é conhecido como compactação.



                       Memória Principal                          Memória Principal

                     Sistema Operacional                         Sistema Operacional
                                                                                     1 KB
                                               4 KB                   Processo C
                                                                                     2 KB
                                               1 KB                   Processo A
                             Processo C
                                               3 KB
                                                                                           8 KB
                                               2 KB
                             Processo A        1 KB




Eduardo Nicola F. Zagari
                             39
                     Gerência de Memória - Alocação
  Problemas:
                             Consumo de recursos (grande quantidade de área em disco e
                              de tempo de processador consumido em sua implementação)
                             Sistema necessita parar (pode ser desastroso para sistemas de
                              tempo real)




Eduardo Nicola F. Zagari
                           40
                    Gerência de Memória - Alocação
Modos de Compactação
                0               0                       0                      0

          300K
                      so    300K
                                    so              300K
                                                            so           300K
                                                                                     so
                      P1             P1                      P1                      P1
          500K              500K                    500K                 500K
          600K        P2    600K     P2             600K     P2          600K        P2
                            800K
                                     P3
                    400K                                    P4
        1000K                       P4              1000K                          900K
        1200K
                      P3    1200K                   1200K
                                                             P3
                    300K
        1500K                                                           1500K

                      P4            900K                    900K                     P4
        1900K                                                           1900K
        2100K
                    200K    2100K                   2100K               2100K
                                                                                     P3
             Configuração         600K                    400K                   200K
                inicial        transferidos            transferidos           transferidos
Eduardo Nicola F. Zagari
                     41
                     Gerência de Memória - Alocação
  Fragmentação Externa:
                 existe memória suficiente para satisfazer uma requisição, mas ela não
                   é contínua
                       Estatisticamente, de cada N blocos alocados, N/2 blocos são
                            perdidos devido à fragmentação (33%)
         Fragmentação Interna:
                                     Memória Principal
                 memória interna a uma partição,
                                                                    Sistema Operacional
                   mas que não é usada. Ex.:
                                                                        Processo 1
                                                                                                  18464
               requisição de 18462 bytes
                                                         bytes


         Uma solução para fragmentação 
                              Processo 43

       externa é compactação

Eduardo Nicola F. Zagari
                            42
                   Gerência de Memória - Alocação
  Memória subdividida em unidades de alocação
         A cada unidade de alocação  1 bit no mapa
                 Se bit é 0, esta parte da memória está livre
                 Se bit é 1, está ocupada
         Tamanho da unidade de alocação versus tamanho do mapa
                 Se a unidade de alocação for de 4 bytes  a parte da memória gasta
                   com este mapa é de apenas 3%
                 Se a unidade for maior  tamanho do mapa é menor, mas aumenta o
                   desperdício de memória (fragmentação interna)
         Desvantagem: para encontrar k unidades de alocação livres 
             percorrer mapa inteiro procurando k bits iguais a zero  muito
             lento!


Eduardo Nicola F. Zagari
                        43
                 Gerência de Memória - Alocação
(a) Parte da memória (b) Mapa de bits correspondente
                                    (c) Lista ligada correspondente
Eduardo Nicola F. Zagari
                        44
                  Gerência de Memória - Alocação
  Lista ligada de segmentos alocados e de segmentos livres
               Ordenação por endereços 
                       rápida atualização quando do término/remoção da memória
                       Possíveis combinações para a conclusão de um processo X:

                            A X B                             A        B
                            A X        após o término         A
                              X B        de X fica                     B
                              X
                       Com listas duplamente encadeadas a tarefa é ainda mais simples!




Eduardo Nicola F. Zagari
                        45
                    Gerência de Memória - Alocação
  Como atender uma requisição de tamanho n a partir de uma lista
             de buracos livres?
                 Estratégias de alocação de memória para escolher o ponto em que
                   deve ser carregado um processo recém criado ou que veio do disco
                   por troca (swapped in)
                 Listas separadas para processos e buracos:
                       mais rápido na busca por buracos
                       mais lento na liberação de memória
                       variante: os próprios buracos podem ser usados para implementar
                            a lista de partições livres
         First-fit:
                 A lista de partições livres é percorrida e a primeira partição
                   suficientemente grande para o pedido é escolhida
                 A lista pode ser mantida em ordem aleatória ou ordenada em ordem
                   crescente de endereço
                       rápido
Eduardo Nicola F. Zagari
                                  46
              Gerência de Memória - Alocação
Memória Principal                 Memória Principal

                        Sistema Operacional                  Sistema Operacional
                                                3 KB              Processo F     2 KB

             F                Processo C                        Processo C
           1 KB                                 4 KB

                              Processo A        2 KB             Processo A




Eduardo Nicola F. Zagari
                              47
              Gerência de Memória - Alocação
  Next-fit:
                       Idêntico ao First-fit com a diferença que a busca se inicia a partir do
                            último ponto em que encontrou um buraco
                              desempenho ligeiramente mais lento que o First-fit
               Best-fit:
                       A lista de partições livres é percorrida e a menor partição
                            suficientemente grande para o pedido é escolhida
                       A lista é ordenada em ordem crescente de tamanho 
                              lento se a lista não estiver ordenada (teria que percorrer a lista
                               inteira)
                              desempenho ruim devido a muitos buracos pequenos
                               (fragmentação externa)




Eduardo Nicola F. Zagari
                              48
                      Gerência de Memória - Alocação
Memória Principal                 Memória Principal

                        Sistema Operacional                  Sistema Operacional
                                                3 KB

             F                Processo C                         Processo C
           1 KB                                 4 KB

                              Processo A                         Processo A
                                                2 KB
                                                                 Processo F             1 KB




Eduardo Nicola F. Zagari
                              49
              Gerência de Memória - Alocação
  Worst-fit:
                       A lista de partições livres é percorrida e a maior partição
                            suficientemente grande para o pedido é escolhida
                       A lista é ordenada em ordem decrescente de tamanho
                              diminui um pouco o problema da fragmentação
               Quick-fit:
                       Listas separadas para alguns tamanhos mais comuns especificados
                            (por exemplo, uma fila para 2K, outra para 4K, outra para 8K, etc)
                              busca por buraco rápida
                              entretanto, a liberação de memória é lenta (reagrupar buracos e
                               modificá-los de fila)




Eduardo Nicola F. Zagari
                             50
                      Gerência de Memória - Alocação
Memória Principal                 Memória Principal

                        Sistema Operacional                  Sistema Operacional
                                                3 KB

             F                Processo C                         Processo C
           1 KB                                 4 KB             Processo F
                                                                                        3 KB

                              Processo A        2 KB             Processo A




Eduardo Nicola F. Zagari
                              51
              Gerência de Memória - Alocação
  Mesmo com o aumento da eficiência da multiprogramação e da
                   gerência de memória, muitas vezes um programa não podia ser
                   executado por falta de uma partição livre disponível 
               Em todos os esquemas apresentados anteriormente, um
                   programa permanecia na memória principal até o final de sua
                   execução, inclusive nos momentos em que esperava por um
                   evento, como uma operação de E/S
               Uma solução é a técnica de swapping, cujo objetivo é o de
                   liberar espaço na RAM para que outros processos possam ser
                   carregados e executados
                       Backing store – disco rápido e grande o suficiente para acomodar
                            cópias de todas as imagens de memória para todos os usuários
                       Versões modificadas de swapping são encontradas em vários
                            sistemas (p.ex., UNIX, Linux e Windows).



Eduardo Nicola F. Zagari
                             52
                   Gerência de Memória - Alocação
  Neste esquema, o SO escolhe um programa residente na
                   memória principal, levando-o da memória para o disco (swap
                   out)




                                      Memória Principal

                                     Sistema Operacional
                                         Processo C
                             H           Processo A
                            4 KB
                                         Processo G
                                         Processo B                    A




Eduardo Nicola F. Zagari
                     53
                 Gerência de Memória - Alocação
  Posteriormente, o processo retorna para a memória principal
                   (swap in), como se nada tivesse ocorrido




                                           Memória Principal

                                          Sistema Operacional
                                              Processo C
                                              Processo H
                                              Processo G
                            A   Swap in




Eduardo Nicola F. Zagari
                          54
          Gerência de Memória - Alocação
  Mapeamento de espaço lógico em espaço físico de
                   endereçamento, em tempo de carregamento, torna ineficiente
                   recarregar o processo em outra região física diferente da do
                   primeiro carregamento
               Solução:
                       Introdução de hardware que faça o mapeamento durante a
                            execução do processo: interceptador de endereços lógicos que
                            soma um valor base aos mesmos, produzindo o endereço físico
                       Não há mais necessidade da tabela de endereços relocáveis




Eduardo Nicola F. Zagari
                            55
                   Gerência de Memória - Alocação
  Relocação Estática:
                       Mapeamento em tempo de carregamento


               Relocação Dinâmica:
                       Mapeamento durante a execução


               Endereço Lógico = Endereço Virtual
                       É o valor de um deslocamento em relação ao início do programa




Eduardo Nicola F. Zagari
                        56
                    Gerência de Memória - Alocação
  Exemplo de hardware para mapeamento
                       Contém o endereço físico onde foi carregado o início do programa




                Registrador Base                                     Instrução

                                                               Operação End. Lógico


                                               +

                                 Endereço Físico = Endereço Real
                                    (disponível na memória)


Eduardo Nicola F. Zagari
                          57
                    Gerência de Memória - Alocação
  Proteção em relocação dinâmica
                       Consiste em comparar o endereço físico com o comprimento do
                            programa
                       Instrução de chamada ao supervisor
               Separação entre dados e instruções
                       Permite o compartilhamento de instruções por dois ou mais
                            processos
                       Permite duplicar o tamanho máximo do espaço lógico
                       Exige a duplicação do hardware necessário para relocação e
                            proteção




Eduardo Nicola F. Zagari
                        58
                     Gerência de Memória - Alocação
  Garantir espaço em disco sempre que algum processo é
                   swapped out
               Os algoritmos para gerenciar o espaço alocado em disco para
                   swapping são os mesmos de gerência da memória principal
               Em alguns sistemas, isto é feito somente no momento da
                   criação do processo e tal espaço permanece reservado
               A única diferença é que a quantidade de espaço reservado no
                   disco deve ser um múltiplo do tamanho dos blocos do disco




Eduardo Nicola F. Zagari
                    59
                  Gerência de Memória - Alocação

Mais conteúdo relacionado

Mais procurados

Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Leinylson Fontinele
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadoresPimentel
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Placa mãe e seus componentes
Placa mãe e seus componentesPlaca mãe e seus componentes
Placa mãe e seus componentesRonaldo Mello
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memóriaelliando dias
 
Gerenciando Arquivos no Windows server 2016
Gerenciando Arquivos no Windows server 2016Gerenciando Arquivos no Windows server 2016
Gerenciando Arquivos no Windows server 2016Francisco Ferreira
 
Apostila 6 gerência de memória
Apostila 6   gerência de memóriaApostila 6   gerência de memória
Apostila 6 gerência de memóriaPaulo Fonseca
 

Mais procurados (20)

Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Placa mãe (motherboard)
Placa mãe (motherboard)Placa mãe (motherboard)
Placa mãe (motherboard)
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Memória RAM
Memória RAMMemória RAM
Memória RAM
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Placa mãe e seus componentes
Placa mãe e seus componentesPlaca mãe e seus componentes
Placa mãe e seus componentes
 
Aula 5 bios
Aula 5 biosAula 5 bios
Aula 5 bios
 
1ª aula sistema operacional
1ª aula  sistema operacional1ª aula  sistema operacional
1ª aula sistema operacional
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
ADMINISTRACIÓN DE MEMORIA.pptx
ADMINISTRACIÓN DE MEMORIA.pptxADMINISTRACIÓN DE MEMORIA.pptx
ADMINISTRACIÓN DE MEMORIA.pptx
 
Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 
Gerenciando Arquivos no Windows server 2016
Gerenciando Arquivos no Windows server 2016Gerenciando Arquivos no Windows server 2016
Gerenciando Arquivos no Windows server 2016
 
Apostila 6 gerência de memória
Apostila 6   gerência de memóriaApostila 6   gerência de memória
Apostila 6 gerência de memória
 
As memórias
As memóriasAs memórias
As memórias
 

Destaque

Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaAdriano Teixeira de Souza
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoriaJailson Silva
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
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
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Memórias secundárias
Memórias secundáriasMemórias secundárias
Memórias secundáriasCarloxEnrike
 
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óriaWellington Oliveira
 
Arquitetura de computadores – memórias
Arquitetura de computadores – memóriasArquitetura de computadores – memórias
Arquitetura de computadores – memóriasElaine Cecília Gatto
 
Memórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamentoMemórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamentoJerônimo Medina Madruga
 
Exercicios logica john_nolt
Exercicios logica john_noltExercicios logica john_nolt
Exercicios logica john_noltGabriele Veleda
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memóriaelliando dias
 
Memoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoMemoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoErichBraganca
 
10 hardwere (particionar, formatar e instalar parte 01)
10   hardwere (particionar, formatar e instalar parte 01)10   hardwere (particionar, formatar e instalar parte 01)
10 hardwere (particionar, formatar e instalar parte 01)Elizeu Ferro
 
Hist&oacute;ria do MS-DOS
Hist&oacute;ria do MS-DOSHist&oacute;ria do MS-DOS
Hist&oacute;ria do MS-DOSmalcomtux
 
Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...
Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...
Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...Leinylson Fontinele
 

Destaque (20)

Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memória
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
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)
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Memórias secundárias
Memórias secundáriasMemórias secundárias
Memórias secundárias
 
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
 
Arquitetura de computadores – memórias
Arquitetura de computadores – memóriasArquitetura de computadores – memórias
Arquitetura de computadores – memórias
 
Linux - Um estudo de caso
Linux - Um estudo de casoLinux - Um estudo de caso
Linux - Um estudo de caso
 
Memórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamentoMemórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamento
 
Exercicios logica john_nolt
Exercicios logica john_noltExercicios logica john_nolt
Exercicios logica john_nolt
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memória
 
Memoria Virtual - Gerenciamento
Memoria Virtual - GerenciamentoMemoria Virtual - Gerenciamento
Memoria Virtual - Gerenciamento
 
Criando imagem
Criando imagemCriando imagem
Criando imagem
 
10 hardwere (particionar, formatar e instalar parte 01)
10   hardwere (particionar, formatar e instalar parte 01)10   hardwere (particionar, formatar e instalar parte 01)
10 hardwere (particionar, formatar e instalar parte 01)
 
401 7964
401 7964401 7964
401 7964
 
Lab so-abertos-unidade2
Lab so-abertos-unidade2Lab so-abertos-unidade2
Lab so-abertos-unidade2
 
Hist&oacute;ria do MS-DOS
Hist&oacute;ria do MS-DOSHist&oacute;ria do MS-DOS
Hist&oacute;ria do MS-DOS
 
Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...
Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...
Introdução à Computação Aula 06 - Sistemas Operacionais (funções básicas de u...
 

Semelhante a SO-05 Gerenciamento de Memória e Alocação

Resumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosResumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosJoo200
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memóriaMaria194536
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Memoria do computador
Memoria do computadorMemoria do computador
Memoria do computadorMarcos Amauri
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2Paulo Fonseca
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Joicy Souza
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisJocelma Rios
 
Introdução a computação 04
Introdução a computação 04Introdução a computação 04
Introdução a computação 04Felipe Pereira
 
Introdução a computação 04 (1)
Introdução a computação 04 (1)Introdução a computação 04 (1)
Introdução a computação 04 (1)Felipe Pereira
 
Parte i entendendo o marie
Parte i   entendendo o marieParte i   entendendo o marie
Parte i entendendo o mariesinunifei2011
 
Processadores de computador - redes e sistemas.pptx
Processadores de computador - redes e sistemas.pptxProcessadores de computador - redes e sistemas.pptx
Processadores de computador - redes e sistemas.pptxp2playeducation
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e softwareMarcelle Guiné
 

Semelhante a SO-05 Gerenciamento de Memória e Alocação (20)

Resumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicosResumos sobre tecnologias de informação e conceitos basicos
Resumos sobre tecnologias de informação e conceitos basicos
 
ICC-07 Softwares - Introdução
ICC-07 Softwares - IntroduçãoICC-07 Softwares - Introdução
ICC-07 Softwares - Introdução
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
Memoria do computador
Memoria do computadorMemoria do computador
Memoria do computador
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Questões de Sistemas Operacionais
Questões de Sistemas Operacionais Questões de Sistemas Operacionais
Questões de Sistemas Operacionais
 
Aula 5a - Sistemas Operacionais
Aula 5a - Sistemas OperacionaisAula 5a - Sistemas Operacionais
Aula 5a - Sistemas Operacionais
 
Introdução a computação 04
Introdução a computação 04Introdução a computação 04
Introdução a computação 04
 
Introdução a computação 04 (1)
Introdução a computação 04 (1)Introdução a computação 04 (1)
Introdução a computação 04 (1)
 
Parte i entendendo o marie
Parte i   entendendo o marieParte i   entendendo o marie
Parte i entendendo o marie
 
Gerenciamento memoria
Gerenciamento memoriaGerenciamento memoria
Gerenciamento memoria
 
bom-1.pdf
bom-1.pdfbom-1.pdf
bom-1.pdf
 
Processadores de computador - redes e sistemas.pptx
Processadores de computador - redes e sistemas.pptxProcessadores de computador - redes e sistemas.pptx
Processadores de computador - redes e sistemas.pptx
 
aula_04.pdf
aula_04.pdfaula_04.pdf
aula_04.pdf
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 

Mais de Eduardo Nicola F. Zagari

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 SobrepostasEduardo Nicola F. Zagari
 
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 MPLSEduardo Nicola F. Zagari
 
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 LinuxEduardo Nicola F. Zagari
 
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 RealEduardo Nicola F. Zagari
 
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...Eduardo Nicola F. Zagari
 
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...Eduardo Nicola F. Zagari
 
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...Eduardo Nicola F. Zagari
 
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 - ProxyEduardo Nicola F. Zagari
 
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 - FacadeEduardo Nicola F. Zagari
 
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 - AdaptadorEduardo Nicola F. Zagari
 
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 - SingletonEduardo Nicola F. Zagari
 
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 MethodEduardo Nicola F. Zagari
 
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 FactoryEduardo Nicola F. Zagari
 
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 - MicrokernelEduardo Nicola F. Zagari
 
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 - MVCEduardo Nicola F. Zagari
 

Mais 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
 

SO-05 Gerenciamento de Memória e Alocação

  • 2.   Introdução   Atribuição de Endereços, Carregamento Dinâmico, Ligação Dinâmica   Espaço de Endereçamento Físico versus Lógico   Alocação Contígua Simples   Overlay   Alocação Particionada   Fragmentação Externa e Interna   Gerência de Memória com Mapeamento de Bits   Gerência de Memória com Listas Ligadas   Algoritmos de Alocação de Partições   Swapping Eduardo Nicola F. Zagari 2 Gerência de Memória - Alocação
  • 3.   Memória  um dos mais importantes recursos de um computador   necessidade de ser gerenciada   Programas devem ser colocados dentro de um processo e então carregados em memória para serem executados.   Input queue – coleção de processos no disco que estão aguardando carregamento em memória para executarem o programa.   Funções de um Gerente de Memória   controlar quais partes da memória estão em uso   controlar quais partes estão livres   alocar memória a processos quando estes precisarem   desalocar quando eles não mais necessitarem   gerenciar a troca (swapping ) dos processos entre memória principal e disco, quando a memória não é grande o suficiente para guardar todos os processos Eduardo Nicola F. Zagari 3 Gerência de Memória - Alocação
  • 4.   A CPU busca instruções da memória de acordo com o valor do contador de instruções (PC) do programa em execução. Essas instruções podem:   buscar novos valores de endereços específicos da memória   armazenar novos valores em posições específicas da memória   Programas de usuário passam por vários passos antes de começarem a ser executados. Instrução UAL UC Parâmetros Memória PC Registrador Principal Registrador Resultado Eduardo Nicola F. Zagari 4 Gerência de Memória - Alocação
  • 5.   A maioria dos sistemas permite que os processos de usuários sejam colocados em qualquer parte da memória   assim, embora o espaço de endereçamento comece em 0000, o endereço inicial de um processo não precisa ser este.   A ligação de endereços de instruções e de dados para os Programa endereços de memória podem Fonte acontecer em 3 estágios diferentes:   Em tempo de compilação compilador ou tempo de  código absoluto: se o programa vai montador compilação ser carregado no endereço E, o código gerado pelo compilador inicia-se neste endereço (se for alterado, deve ser recompilado). Ex.: “.COMʼʼ do DOS Código Objeto Eduardo Nicola F. Zagari 5 Gerência de Memória - Alocação
  • 6.   Em tempo de carga   código relocável: quando não se Código conhece em tempo de Cód Obj Objeto de outros compilação a posição em que o programa será armazenado. módulos Ex.:  Compilador: 14 bytes do início ligador tempo  Carregador: 74000 + 14 de carga Código Biblioteca Relocável de sistema carregador Eduardo Nicola F. Zagari 6 Gerência de Memória - Alocação
  • 7.   Em tempo de execução Biblioteca   se o processo pode ser movido de sistema durante sua execução, a determinação do endereço deve ser atrasada para o tempo de carregador execução   há a necessidade de suporte de hardware para o mapeamento Biblioteca de endereços (p.ex.: de sistema registradores base e limite) carregada dinamica- mente Código tempo de binário executável execução Eduardo Nicola F. Zagari 7 Gerência de Memória - Alocação
  • 8.   O conceito de um espaço de endereçamento lógico que está associado a um espaço de endereçamento físico separado é central ao adequado gerenciamento da memória.   Endereço Lógico – gerado pela CPU; também conhecido como endereço virtual.   Endereço Físico – endereço visto pela unidade de memória.
   Endereços Lógico e Físico são os mesmo nos esquemas de atribuição de endereços em tempo de compilação e em tempo de carga.   Endereços Lógico e Físico diferem quando se usa esquema de atribuição de endereços em tempo de execução. Eduardo Nicola F. Zagari 8 Gerência de Memória - Alocação
  • 9.   Dispositivo de hardware que mapeia endereços virtuais em endereços físicos.
   Através da MMU, o valor do registrador de relocação é adicionado a todo endereço gerado pelo processo do usuário no instante em queee é enviado à memória.
   O programa do usuário lida com endereços lógicos; ele nunca vê o endereço físico real. Eduardo Nicola F. Zagari 9 Gerência de Memória - Alocação
  • 10. Registrador Base 14000 Endereço Endereço Memória Lógico Físico CPU #346 + #14346 Principal MMU Unidade de Gerenciamento de Memória Eduardo Nicola F. Zagari 10 Gerência de Memória - Alocação
  • 11.   Rotina não é carregada até que ela seja chamada   Melhor utilização do espaço de memória   Rotinas que não são usadas nunca são carregadas.   Útil quando grandes quantidades de código são necessárias para manipular casos pouco freqüentes.   Nenhum suporte especial do S.O. é requerido   Implementado através do projeto do programa. Eduardo Nicola F. Zagari 11 Gerência de Memória - Alocação
  • 12.   A ligação (linking) é adiada até o tempo de execução.   Stub: um pequeno pedaço de código usado para a localização da rotina dinâmica, residente em memória, apropriada.   O stub substitui a si próprio com o endereço da rotina e a executa.   É necessário o suporte do S.O. para verificar se a rotina está no endereço de memória dos processos.   Ligação Dinâmica é particularmente útil para bibliotecas.  Economia de espaço  Atualização  Controle de concorrência Eduardo Nicola F. Zagari 12 Gerência de Memória - Alocação
  • 13.   Toda vez que desejarmos executar um programa (residente em memória secundária), deveremos, de alguma forma, carregá-lo para a memória principal, para que o processador possa referenciar suas instruções e seus dados   Nos sistemas monoprogramados a gerência da memória não é muito complexa, mas nos sistemas multiprogramados ela se torna crítica   A seguir apresentaremos os principais esquemas de organização e gerência da memória principal Eduardo Nicola F. Zagari 13 Gerência de Memória - Alocação
  • 14.   Implementada nos primeiros SOs e ainda está presente em alguns sistemas monoprogramados   Esquema mais simples para gerência de memória   A memória principal é dividida em duas partes:   uma para o Sistema Operacional   outra para o(s) programa(s) do(s) usuário(s)   SO pode ocupar tanto a parte baixa quanto a parte mais alta da memória, dependendo da localização do vetor de interrupções Eduardo Nicola F. Zagari 14 Gerência de Memória - Alocação
  • 15.   No IBM-PC é utilizado o terceiro modelo: nos 8KB mais altos dos 1 MB de endereçamento existe uma ROM com um programa chamado BIOS (Basic Input Output System), correspondente a todos os drivers Memória Principal Memória Principal Memória Principal 0xFF Sistema Drivers de dispo- Área para o Operacional sitivos em ROM processo em ROM do usuário Área para o Área para o processo Sistema processo do usuário Operacional do usuário SO 0x00 em RAM em RAM Eduardo Nicola F. Zagari 15 Gerência de Memória - Alocação
  • 16.   Usuário tem controle sobre toda a memória principal, podendo acessar até a área do SO (caso do DOS)   PROTEÇÃO: Pode-se implementar um esquema de proteção usando um registrador que delimite as áreas do SO e usuário Memória Principal Registrador Sistema Operacional Área para o processo do usuário Eduardo Nicola F. Zagari 16 Gerência de Memória - Alocação
  • 17.   Sempre que um programa do usuário faz referência a um endereço de memória, o sistema verifica se o endereço está nos seus limites (registrador base e registrador limite). Caso não esteja, o programa de usuário pode ser cancelado e ser gerada uma mensagem de erro Registrador Registrador Limite Base Endereço Endereço Memória CPU Lógico Físico Principal < + MMU interrupção de software; erro de endereçamento Eduardo Nicola F. Zagari 17 Gerência de Memória - Alocação
  • 18.   Problemas: não permite a utilização eficiente do processador e nem da memória principal, além de limitar o tamanho do programa do usuário Memória Principal   Em SOs que suportam o conceito de Sistema MULTIPROGRAMAÇÃO, é preciso que Operacional existam outras formas de organização da memória principal, a fim de suportar vários processos na memória Processo simultaneamente do Usuário Área Livre Eduardo Nicola F. Zagari 18 Gerência de Memória - Alocação
  • 19.   Sobreposição (Overlay) (usuário)   O que fazer quando se tem um programa que ocupa mais memória do que a disponível?   Verifica-se se o programa tem seções que não necessitem permanecer na memória durante toda a execução  Mantém-se na memória somente aquelas instruções e dados que são necessários a qualquer hora.   Essas seções, uma vez executadas, podem ser substituídas por outras   A substituição ocorre pela transferência da seção do disco para a memória na área de overlay, cobrindo a seção anterior   O programa é inicialmente carregado mais rapidamente, entretanto, a execução ficará um pouco mais lenta, devido ao tempo extra gasto com a sobreposição Eduardo Nicola F. Zagari 19 Gerência de Memória - Alocação
  • 20. Armazenamento Primário Armazenamento Secundário Parte fixa Fase inicial Fase Fase final 50K do intermediária processo 30K 50K Rotina de 80K 20K controle de overlay Área 80K de Overlay Eduardo Nicola F. Zagari 20 Gerência de Memória - Alocação
  • 21.   O mecanismo de overlay é pouco transparente, pois a definição das áreas de overlay é função do programador (não é do SO), através de comandos específicos da linguagem utilizada.   Dependendo da definição, pode ocasionar sérias implicações no desempenho das aplicações, devido à transferência excessiva dos módulos entre o disco e a memória Eduardo Nicola F. Zagari 21 Gerência de Memória - Alocação
  • 22.   Motivação:   tornar mais fácil programar uma aplicação, dividindo-a em dois ou mais processos   existência de serviço interativo para vários usuários simultaneamente (tempo de resposta)   utilização da CPU (existência de processos I/O bound )   Modelos de Multiprogramação   Modelos Simplista  Se cada processo gasta 20% de seu tempo na memória usando o processador, então 5 processos alcançam um fator de utilização da CPU de 100%   E se os 5 processos esperam por E/S simultaneamente? Eduardo Nicola F. Zagari 22 Gerência de Memória - Alocação
  • 23.   Modelo Probabilistico  Cada processo gasta p% de seu tempo com E/S  n processos  probabilidade de estarem aguardando E/S simultaneamente: pn F.U.CPU = 1 - pn  Exemplo: –  1 MB de memória, SO de 200K, processos de 200K e cada um gasta 80% do tempo com E/S  4 processos na memória  FUCPU ≅ 60% –  Adição de 1 MB de RAM  grau de 4 p/ 9  FU ≅87% –  Adição de mais 1 MB de RAM  grau de multiprogramação de 9 para 14  FU ≅ 96% Eduardo Nicola F. Zagari 23 Gerência de Memória - Alocação
  • 24.   Nos primeiros SOs multiprogramados a memória principal era dividida em pedaços de tamanho fixo (possivelmente distintos), chamados partições   O tamanho das partições era estabelecido na fase de inicialização do sistema (boot), em função dos tamanhos dos programas que iriam ser executados   alteração de tamanho de partição Memória Principal  reinicialização Sistema Operacional Tabela de partições Programas a 2 KB Partição Tamanho Partição 1 serem executados 1 2 KB E D C B A Partição 2 5 KB 2 5 KB 3KB 6KB 1KB 4KB 2KB 8 KB 3 8 KB Partição 3 Eduardo Nicola F. Zagari 24 Gerência de Memória - Alocação
  • 25.   A proteção baseia-se em dois registradores, que indicam os limites inferior e superior da partição onde o programa está sendo executado   Acessos do processo usuário provocam a comparação com o registrador limite, caso haja invasão, o processo é terminado com uma mensagem de erro. Memória Principal Endereço inicial Endereço final Sistema Operacional Partição 1 Partição 2 Partição 3 Eduardo Nicola F. Zagari 25 Gerência de Memória - Alocação
  • 26.   E as chamadas aos serviços do SO ?   Isto é resolvido através da instrução chamada ao supervisor (supervisor call ) Modo Usuário versus Modo Supervisor   Modo Usuário:   Execução das instruções disponíveis aos usuários   Modo Supervisor:   Todas as instruções permitidas (não é feita comparação com o registrador limite)   A passagem do modo usuário para o modo supervisor ocorre quando da solicitação de um serviço Eduardo Nicola F. Zagari 26 Gerência de Memória - Alocação
  • 27.   Partições Fixas com Filas Múltiplas:   processo é colocado em uma partição determinada. Se estiver ocupada, aguarda na fila;   ou, processo é colocado na fila da menor partição em que caiba   Problema: partições não utilizadas Memória Principal Programas a serem executados Sistema Operacional Partição 1 Partição 2 Partição 3 Eduardo Nicola F. Zagari 27 Gerência de Memória - Alocação
  • 28.   Partições Fixas com Fila Única:   fila única para todas as partições;   processo é colocado na fila da menor partição disponível em que caiba Memória Principal Programas a Sistema Operacional serem executados Partição 1 Partição 2 Partição 3 Eduardo Nicola F. Zagari 28 Gerência de Memória - Alocação
  • 29.   Problema:   colocação de um programa pequeno em uma partição grande   partições vazias por falta de “clientes”   Uma tentativa de solução:   correr toda a fila antes de escolher o “cliente”   Problema:  discrimina pequenos processos Eduardo Nicola F. Zagari 29 Gerência de Memória - Alocação
  • 30.   Em sistemas em que os compiladores e montadores geram apenas código absoluto, os processos podem executar em apenas uma das partições, mesmo que outras estejam livres Memória Principal Programas a   Se os processos A e serem executados B estivessem Sistema Operacional executando e a 2 KB C A Partição 1 partição 3 estivesse livre, os processos C 5 KB e E não poderiam ser E B Partição 2 executados 8 KB D Partição 3 Eduardo Nicola F. Zagari 30 Gerência de Memória - Alocação
  • 31.   Com a evolução dos compiladores, linkers e loaders, tornou-se possível a geração de código relocável, permitindo que os processos sejam carregados em qualquer uma das partições Memória Principal   Se os processos A e B terminarem de Sistema Operacional executar, o processo Programas a 2 KB Processo C E pode ser carregado serem executados e executado em 5 KB qualquer uma das D E Processo A 6KB 3KB duas partições 8 KB Processo B Eduardo Nicola F. Zagari 31 Gerência de Memória - Alocação
  • 32.   Problema da APE: fragmentação excessiva   Fragmentação é o problema que surge quando pedaços de memória ficam impedidos de serem utilizados por outros processos. Memória Principal Sistema Operacional Programas a Processo C 1 KB serem executados Processo A D B 3 KB 6KB 4KB Processo E 3 KB Eduardo Nicola F. Zagari 32 Gerência de Memória - Alocação
  • 33.   Visa reduzir o problema da fragmentação e, consequentemente, aumentar o grau de compartilhamento da memória   É eliminado o conceito de partições de tamanho fixo   Na APD, cada processo utiliza o espaço necessário, passando esse pedaço a ser a sua partição Memória Principal Sistema Operacional Sistema Operacional 4 KB Programas a Processo B serem executados 11 KB 1 KB Processo C 3 KB A E C B Processo E 2KB 3KB 1KB 4KB 2 KB Processo A 1 KB Eduardo Nicola F. Zagari 33 Gerência de Memória - Alocação
  • 34. Memória Principal 0 Fila de processos Sistema Operacional Processo Tamanho Tempo 400K P1 600K 10 P2 1000K 5 P3 300K 20 P4 700K 8 P5 500K 15 2560K Eduardo Nicola F. Zagari 34 Gerência de Memória - Alocação
  • 35. 0 0 0 0 0 400K so 400K so 400K so 400K so 400K so P1 P1 P1 P5 900K 1000K 1000K 1000K 1000K 1000K P2 aloca P4 P1 P4 aloca P4 P2 termina a P4 termina a P5 1700K 1700K 1700K 2000K 2000K 2000K 2000K 2000K 2300K P3 2300K P3 2300K P3 2300K P3 2300K P3 2560K 2560K 2560K 2560K 2560K Eduardo Nicola F. Zagari 35 Gerência de Memória - Alocação
  • 36.   Neste esquema, a fragmentação começa a ocorrer quando os processos forem terminando e deixando espaços cada vez menores na memória, não permitindo o ingresso de novos processos Memória Principal   Apesar da existência de 8 Sistema Operacional Programa a Kbytes de 4 KB ser executado memória livre, o 1 KB processo D não D Processo C poderá ser 6KB 3 KB carregado 2 KB Processo A 1 KB Eduardo Nicola F. Zagari 36 Gerência de Memória - Alocação
  • 37.   Soluções para a fragmentação:   Primeira: aglutinar espaços livres adjacentes em um único espaço de tamanho maior. No exemplo anterior, caso o processo C termine, teríamos: Memória Principal Memória Principal Sistema Operacional Sistema Operacional 4 KB 1 KB 8 KB Processo C 3 KB 2 KB 2 KB Processo A 1 KB Processo A 1 KB Eduardo Nicola F. Zagari 37 Gerência de Memória - Alocação
  • 38.   Como gerenciar? (ver tópico Gerência de Uso da Memória)  Mapa de Bits  Lista de partições ocupadas  Lista de partições livres  Ao término do processo, um “buraco” pode ser: –  adicionado à lista de partições livres (caso a nova partição livre esteja cercada de partições ocupadas) –  incorporada a uma das partições da lista de partições livres (caso o “buraco” seja adjacente a uma partição livre)   Não resolve completamente o problema (pode haver buracos pequenos...) Eduardo Nicola F. Zagari 38 Gerência de Memória - Alocação
  • 39.   Segunda: fazer uma relocação de todas as regiões ocupadas (movimento de todos os processos), eliminando todos os espaços entre elas e criando-se uma única área livre contígua. Este método é conhecido como compactação. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 1 KB 4 KB Processo C 2 KB 1 KB Processo A Processo C 3 KB 8 KB 2 KB Processo A 1 KB Eduardo Nicola F. Zagari 39 Gerência de Memória - Alocação
  • 40.   Problemas:  Consumo de recursos (grande quantidade de área em disco e de tempo de processador consumido em sua implementação)  Sistema necessita parar (pode ser desastroso para sistemas de tempo real) Eduardo Nicola F. Zagari 40 Gerência de Memória - Alocação
  • 41. Modos de Compactação 0 0 0 0 300K so 300K so 300K so 300K so P1 P1 P1 P1 500K 500K 500K 500K 600K P2 600K P2 600K P2 600K P2 800K P3 400K P4 1000K P4 1000K 900K 1200K P3 1200K 1200K P3 300K 1500K 1500K P4 900K 900K P4 1900K 1900K 2100K 200K 2100K 2100K 2100K P3 Configuração 600K 400K 200K inicial transferidos transferidos transferidos Eduardo Nicola F. Zagari 41 Gerência de Memória - Alocação
  • 42.   Fragmentação Externa:   existe memória suficiente para satisfazer uma requisição, mas ela não é contínua  Estatisticamente, de cada N blocos alocados, N/2 blocos são perdidos devido à fragmentação (33%)   Fragmentação Interna: Memória Principal   memória interna a uma partição, Sistema Operacional mas que não é usada. Ex.: Processo 1 18464 requisição de 18462 bytes bytes   Uma solução para fragmentação Processo 43 externa é compactação Eduardo Nicola F. Zagari 42 Gerência de Memória - Alocação
  • 43.   Memória subdividida em unidades de alocação   A cada unidade de alocação  1 bit no mapa   Se bit é 0, esta parte da memória está livre   Se bit é 1, está ocupada   Tamanho da unidade de alocação versus tamanho do mapa   Se a unidade de alocação for de 4 bytes  a parte da memória gasta com este mapa é de apenas 3%   Se a unidade for maior  tamanho do mapa é menor, mas aumenta o desperdício de memória (fragmentação interna)   Desvantagem: para encontrar k unidades de alocação livres  percorrer mapa inteiro procurando k bits iguais a zero  muito lento! Eduardo Nicola F. Zagari 43 Gerência de Memória - Alocação
  • 44. (a) Parte da memória (b) Mapa de bits correspondente (c) Lista ligada correspondente Eduardo Nicola F. Zagari 44 Gerência de Memória - Alocação
  • 45.   Lista ligada de segmentos alocados e de segmentos livres   Ordenação por endereços   rápida atualização quando do término/remoção da memória   Possíveis combinações para a conclusão de um processo X: A X B A B A X após o término A X B de X fica B X   Com listas duplamente encadeadas a tarefa é ainda mais simples! Eduardo Nicola F. Zagari 45 Gerência de Memória - Alocação
  • 46.   Como atender uma requisição de tamanho n a partir de uma lista de buracos livres?   Estratégias de alocação de memória para escolher o ponto em que deve ser carregado um processo recém criado ou que veio do disco por troca (swapped in)   Listas separadas para processos e buracos:  mais rápido na busca por buracos  mais lento na liberação de memória  variante: os próprios buracos podem ser usados para implementar a lista de partições livres   First-fit:   A lista de partições livres é percorrida e a primeira partição suficientemente grande para o pedido é escolhida   A lista pode ser mantida em ordem aleatória ou ordenada em ordem crescente de endereço  rápido Eduardo Nicola F. Zagari 46 Gerência de Memória - Alocação
  • 47. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 3 KB Processo F 2 KB F Processo C Processo C 1 KB 4 KB Processo A 2 KB Processo A Eduardo Nicola F. Zagari 47 Gerência de Memória - Alocação
  • 48.   Next-fit:   Idêntico ao First-fit com a diferença que a busca se inicia a partir do último ponto em que encontrou um buraco  desempenho ligeiramente mais lento que o First-fit   Best-fit:   A lista de partições livres é percorrida e a menor partição suficientemente grande para o pedido é escolhida   A lista é ordenada em ordem crescente de tamanho  lento se a lista não estiver ordenada (teria que percorrer a lista inteira)  desempenho ruim devido a muitos buracos pequenos (fragmentação externa) Eduardo Nicola F. Zagari 48 Gerência de Memória - Alocação
  • 49. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 3 KB F Processo C Processo C 1 KB 4 KB Processo A Processo A 2 KB Processo F 1 KB Eduardo Nicola F. Zagari 49 Gerência de Memória - Alocação
  • 50.   Worst-fit:   A lista de partições livres é percorrida e a maior partição suficientemente grande para o pedido é escolhida   A lista é ordenada em ordem decrescente de tamanho  diminui um pouco o problema da fragmentação   Quick-fit:   Listas separadas para alguns tamanhos mais comuns especificados (por exemplo, uma fila para 2K, outra para 4K, outra para 8K, etc)  busca por buraco rápida  entretanto, a liberação de memória é lenta (reagrupar buracos e modificá-los de fila) Eduardo Nicola F. Zagari 50 Gerência de Memória - Alocação
  • 51. Memória Principal Memória Principal Sistema Operacional Sistema Operacional 3 KB F Processo C Processo C 1 KB 4 KB Processo F 3 KB Processo A 2 KB Processo A Eduardo Nicola F. Zagari 51 Gerência de Memória - Alocação
  • 52.   Mesmo com o aumento da eficiência da multiprogramação e da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível   Em todos os esquemas apresentados anteriormente, um programa permanecia na memória principal até o final de sua execução, inclusive nos momentos em que esperava por um evento, como uma operação de E/S   Uma solução é a técnica de swapping, cujo objetivo é o de liberar espaço na RAM para que outros processos possam ser carregados e executados   Backing store – disco rápido e grande o suficiente para acomodar cópias de todas as imagens de memória para todos os usuários   Versões modificadas de swapping são encontradas em vários sistemas (p.ex., UNIX, Linux e Windows). Eduardo Nicola F. Zagari 52 Gerência de Memória - Alocação
  • 53.   Neste esquema, o SO escolhe um programa residente na memória principal, levando-o da memória para o disco (swap out) Memória Principal Sistema Operacional Processo C H Processo A 4 KB Processo G Processo B A Eduardo Nicola F. Zagari 53 Gerência de Memória - Alocação
  • 54.   Posteriormente, o processo retorna para a memória principal (swap in), como se nada tivesse ocorrido Memória Principal Sistema Operacional Processo C Processo H Processo G A Swap in Eduardo Nicola F. Zagari 54 Gerência de Memória - Alocação
  • 55.   Mapeamento de espaço lógico em espaço físico de endereçamento, em tempo de carregamento, torna ineficiente recarregar o processo em outra região física diferente da do primeiro carregamento   Solução:   Introdução de hardware que faça o mapeamento durante a execução do processo: interceptador de endereços lógicos que soma um valor base aos mesmos, produzindo o endereço físico   Não há mais necessidade da tabela de endereços relocáveis Eduardo Nicola F. Zagari 55 Gerência de Memória - Alocação
  • 56.   Relocação Estática:   Mapeamento em tempo de carregamento   Relocação Dinâmica:   Mapeamento durante a execução   Endereço Lógico = Endereço Virtual   É o valor de um deslocamento em relação ao início do programa Eduardo Nicola F. Zagari 56 Gerência de Memória - Alocação
  • 57.   Exemplo de hardware para mapeamento   Contém o endereço físico onde foi carregado o início do programa Registrador Base Instrução Operação End. Lógico + Endereço Físico = Endereço Real (disponível na memória) Eduardo Nicola F. Zagari 57 Gerência de Memória - Alocação
  • 58.   Proteção em relocação dinâmica   Consiste em comparar o endereço físico com o comprimento do programa   Instrução de chamada ao supervisor   Separação entre dados e instruções   Permite o compartilhamento de instruções por dois ou mais processos   Permite duplicar o tamanho máximo do espaço lógico   Exige a duplicação do hardware necessário para relocação e proteção Eduardo Nicola F. Zagari 58 Gerência de Memória - Alocação
  • 59.   Garantir espaço em disco sempre que algum processo é swapped out   Os algoritmos para gerenciar o espaço alocado em disco para swapping são os mesmos de gerência da memória principal   Em alguns sistemas, isto é feito somente no momento da criação do processo e tal espaço permanece reservado   A única diferença é que a quantidade de espaço reservado no disco deve ser um múltiplo do tamanho dos blocos do disco Eduardo Nicola F. Zagari 59 Gerência de Memória - Alocação