Click here to load reader

Gerenciamento memoria

  • View
    9.156

  • Download
    0

Embed Size (px)

DESCRIPTION

Aula sobre Gerenciamento de Memória, livro Sistemas operacionais modernos - Andrew Tanenbaum.

Text of Gerenciamento memoria

  • 1. Gerenciamento de memria Qual mesmo o tpico?....

2. Gerenciamento de memria

  • Computadores hoje possuem 100 vezes mais memrias que o maior computador da dcada de 60.
  • Sobre memrias sempre dizemos que quanto mais, melhor...sempre...
  • RAM
  • ROM
  • HD

3. Gerenciamento de Memria O que gerenciamento de memria ? Parte do sistema operacional responsvel emparticionar a memria para acomodar mltiplos processos, essa memria deve ser alocada de forma eficiente afim de acomodar o nmero mximo de processos 4. Gerenciamento de Memria

  • A multiprogramao implica em manter-se vrios processos em memria.
  • A memria necessita ser alocada de forma eficiente para permitir o mximo possvel de processos
  • Existem diferentes tcnicas para gerncia de memria, que dependem do hardware do processador.

5. Gerenciamento de Memria processador virtual memria virtual arquivos memria perene read, write copy i) viso do usurio endereo de memria fsica processador real mapeamento de endereos memria principal memria auxiliar endereo virtual swapping ii) viso do projetista do SO 6. Gerenciamento de Memria

  • Idealmente, o que todo programador deseja dispor de uma memria que seja
    • grande
    • rpida
    • no voltil
  • Hierarquia de memrias
    • pequena quantidade de memria rpida, de alto custo - cache
    • quantidade considervel de memria principal de velocidade mdia, custo mdio
    • gigabytes de armazenamento em disco de velocidade e custo baixos
  • O gerenciador de memria trata a hierarquia de memrias

7. Gerenciamento de Memria 8. Gerenciamento de Memria

  • Duas grandes Classes
    • As que movem processos de um lado para o outro...(entre memria principal e o disco durante execuo)
    • E aquelas que no o fazem.
  • As memrias que no fazem paginao/troca so mais simples... Vamos a elas...

9. Monoprogramao

  • Um programa por vez
  • No havia troca/paginao
  • Quando o SO est organizado dessa maneira, somente um processo por vez pode estar em execuo.

10. Monoprogramao 11. Multiprogramao

  • Parties Fixas da memria (possivelmente desiguais)
    • Mltiplos processos
    • Pelo Sistema operacional
  • Fila de entrada para ocupar a memria
    • Pode ser por tamanho do job
    • Pode ser sem classificao

12. Multiprogramao 13. Quais os problemas gerados pela multiprogramao?

  • Isso mesmo.... Realocao e Proteo.
  • Pode ficar a vontade para pesquisar....

14. Gerenciamento de Memria

  • Realocao
  • Capacidade de mover um programa de uma regio da memria principal para uma outra sem invalidar as referencias de memria dentro do programa;
  • O programador no sabe onde o programa colocado na memria quando ele executado
  • O hardware do processador e o SO devem ser capazes de traduzir os endereos de referencia de memria no cdigo do programa para o endereo fsico da memria.

15. Gerenciamento de Memria

  • Proteo
  • Cada processo deve ser protegido contra interferncias no desejveis de outros processos de forma acidental ou intencional
  • Processos no devem ser capazes de referenciar localizaes de memria de outro processo sem permisso;
  • O hardware responsvel por fazer a verificao, caso a violao ocorra, o mesmo deve abortar tais instrues no ponto da execuo;
  • O SO no pode prever todas as referencias de memria que o programa far (custo muito alto).

16. Gerenciamento de Memria

  • Compartilhamento
  • Permitir que vrios processos acessem a mesma rea de memria principal
  • vantajoso, que :
    • processos que so executados em um mesmo programa acessem a mesma cpia do programa e
    • Processos que esto cooperando em uma mesma tarefa compartilhem acesso a uma mesma estrutura de dados
  • Deve permitir o compartilhamento sem comprometer o requisito de proteo

17. Gerenciamento de Memria

  • Organizao lgica
  • Capacidade de manipular com programas e dados do usurio organizado em mdulos
      • Memria -> seqncias de Bytes e palavras
      • Programas -> mdulos
  • Vantagens:
    • Mdulo podem ser escritos e compilados independentemente, as referencias de um mdulo para o outro so resolvidas em tempo de execuo;
    • Com um overhead adicional, diferentes graus de proteo (read only, execute only) podem ser dados para diferentes mdulos
    • possvel introduzir mecanismo de compartilhamento entre mdulos

18. Gerenciamento de Memria

  • Organizao fsica
  • Organizao da memria do computador:
    • Dois nveis:
      • Memria principal -> mais rpida, voltil e custo alto
      • Memria secundria -> lenta, armazenamento permanente e barata
  • Capacidade de mover informaes entre os 2 nveis de memria

19. Troca

  • As vezes a memria principal no suficiente para armazenar todos os processos
  • Troca entre disco rgido e memria intenso.
  • Duas estratgias
    • Troca (trazer o processo inteiro para execuo)
    • Memria Virtual (execuo mesmo que parcialmente na memria principal).

20. Troca 21. Ento o meu computador faz troca-troca?

  • Hummmm......
  • possvel realizar compactao de memria?
  • Os processos so criados com tamanhos fixos, mas temos variveis dinmicas (heap).
  • Um processo pode crescer na memria?
  • Recomendo a leitura sobre pilhas!

22. Memria Virtual

  • o tamanho combinado do programa, dos dados e da pilha pode exceder a quantidade de memria fsica disponvel para ele.
  • Um programa de 16 Mb pode ocupar um regio de 4 Mb.
  • Disco mais lento que a RAM

23. Memria Virtual

  • Paginao
    • Pginas espao do endereo virtual que dividido para receber dados.
    • Mapeamento de Pginas e Molduras.
    • Bit de mapeamento (presente/ausente) X
    • Interrupo em caso de falha de pgina
  • Tabela de Pginas
    • Multinveis

24. 25. 26. Memria Virtual

  • Algoritmos de substituio de Paginas
    • Problema de desempenho caso o programa for muito utilizado
  • O melhor algoritmo fcil de descrever amas impossvel de por em prtica. No h como saber se pgina ser novamente referenciada.
  • Realizarpesquisa sobre os algoritmos
    • NUR (No recente usado)
    • First-in/First-out (primeiro a entrar primeiro a sair)
    • Second Chance (segunda-chance)
    • Clock
    • MRU (menos recente usado)

27. Memria Virtual

  • FIFO
      • Imagina que voc tem um programa que ir comear a rodar neste instante e ocupar boa parte da sua memria.
      • A mais antiga das aplicaes que esta rodando esta no topo da lista. Na ocorrncia de uma falta de pgina, a primeira aplicao a dar espao ser a mais antiga.

28. Segmentao

  • Memria Virtual unidimensional. Endereo vai de ZERO a algum lugar (end. Maximo).
  • Ou seja, todo o seu programa deve estar alocado uma poro contnua na memria.
  • Segmentao a possibilidade de dar espaos independentes para que cada tabela do programa possa usar. Pode crescer ou diminuir de tamanho sem afetarem uns aos outros.

29. Segmentao 30. Segmentao 31. Segmentao

  • Biblioteca Compartilhada
  • Vrios programas acessam o segmento que ser uniforme para ambos os softwares