Your SlideShare is downloading. ×

Gerenciamento memoria

9,095

Published on

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

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

Published in: Education
1 Comment
1 Like
Statistics
Notes
  • pagina 13 meio que as informações são bugadas
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
9,095
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
115
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Gerenciamento de memória Qual é mesmo o tópico?....
  • 2. Gerenciamento de memória
    • Computadores hoje possuem 100 vezes mais memórias que o maior computador da década de 60.
    • Sobre memórias sempre dizemos “que quanto mais, melhor”...sempre...
    • RAM
    • ROM
    • HD
  • 3. Gerenciamento de Memória O que é gerenciamento de memória ? Parte do sistema operacional responsável em particionar a memória para acomodar múltiplos processos, essa memória deve ser alocada de forma eficiente afim de acomodar o número máximo de processos
  • 4. Gerenciamento de Memória
    • A multiprogramação implica em manter-se vários processos em memória.
    • A memória necessita ser alocada de forma eficiente para permitir o máximo possível de processos
    • Existem diferentes técnicas para gerência de memória, que dependem do hardware do processador.
  • 5. Gerenciamento de Memória processador virtual memória virtual arquivos memória perene read, write copy i) visão do usuário endereço de memória física processador real mapeamento de endereços memória principal memória auxiliar endereço virtual swapping ii) visão do projetista do SO
  • 6. Gerenciamento de Memória
    • Idealmente, o que todo programador deseja é dispor de uma memória que seja
      • grande
      • rápida
      • não volátil
    • Hierarquia de memórias
      • pequena quantidade de memória rápida, de alto custo - cache
      • quantidade considerável de memória principal de velocidade média, custo médio
      • gigabytes de armazenamento em disco de velocidade e custo baixos
    • O gerenciador de memória trata a hierarquia de memórias
  • 7. Gerenciamento de Memória
  • 8. Gerenciamento de Memória
    • Duas grandes Classes
      • As que movem processos de um lado para o outro...(entre memória principal e o disco durante execução)
      • E aquelas que não o fazem.
    • As memórias que não fazem paginação/troca são mais simples... Vamos a elas...
  • 9. Monoprogramação
    • Um programa por vez
    • Não havia troca/paginação
    • Quando o SO está organizado dessa maneira, somente um processo por vez pode estar em execução.
  • 10. Monoprogramação
  • 11. Multiprogramação
    • Partições Fixas da memória (possivelmente desiguais)
      • Múltiplos processos
      • Pelo Sistema operacional
    • Fila de entrada para ocupar a memória
      • Pode ser por tamanho do job
      • Pode ser sem classificação
  • 12. Multiprogramação
  • 13. Quais os problemas gerados pela multiprogramação?
    • Isso mesmo.... Realocação e Proteção.
    • Pode ficar a vontade para pesquisar....
  • 14. Gerenciamento de Memória
    • Realocação
    • Capacidade de mover um programa de uma região da memória principal para uma outra sem invalidar as referencias de memória dentro do programa;
    • O programador não sabe onde o programa é colocado na memória quando ele é executado
    • O hardware do processador e o SO devem ser capazes de traduzir os endereços de referencia de memória no código do programa para o endereço físico da memória.
  • 15. Gerenciamento de Memória
    • Proteção
    • Cada processo deve ser protegido contra interferências não desejáveis de outros processos de forma acidental ou intencional
    • Processos não devem ser capazes de referenciar localizações de memória de outro processo sem permissão;
    • O hardware é responsável por fazer a verificação, caso a violação ocorra, o mesmo deve abortar tais instruções no ponto da execução;
    • O SO não pode prever todas as referencias de memória que o programa fará (custo muito alto).
  • 16. Gerenciamento de Memória
    • Compartilhamento
    • Permitir que vários processos acessem a mesma área de memória principal
    • É vantajoso, que :
      • processos que são executados em um mesmo programa acessem a mesma cópia do programa e
      • Processos que estão cooperando em uma mesma tarefa compartilhem acesso a uma mesma estrutura de dados
    • Deve permitir o compartilhamento sem comprometer o requisito de proteção
  • 17. Gerenciamento de Memória
    • Organização lógica
    • Capacidade de manipular com programas e dados do usuário organizado em módulos
        • Memória -> seqüências de Bytes e palavras
        • Programas -> módulos
    • Vantagens:
      • Módulo podem ser escritos e compilados independentemente, as referencias de um módulo para o outro são resolvidas em tempo de execução;
      • Com um overhead adicional, diferentes graus de proteção (read only, execute only) podem ser dados para diferentes módulos
      • É possível introduzir mecanismo de compartilhamento entre módulos
  • 18. Gerenciamento de Memória
    • Organização física
    • Organização da memória do computador:
      • Dois níveis:
        • Memória principal -> mais rápida, volátil e custo alto
        • Memória secundária -> lenta, armazenamento permanente e barata
    • Capacidade de mover informações entre os 2 níveis de memória
  • 19. Troca
    • As vezes a memória principal não é suficiente para armazenar todos os processos
    • Troca entre disco rígido e memória intenso.
    • Duas estratégias
      • Troca (trazer o processo inteiro para execução)
      • Memória Virtual (execução mesmo que parcialmente na memória principal).
  • 20. Troca
  • 21. Então o meu computador faz troca-troca?
    • Hummmm......
    • É possível realizar compactação de memória?
    • Os processos são criados com tamanhos fixos, mas temos variáveis dinâmicas (heap).
    • Um processo pode “crescer” na memória?
    • Recomendo a leitura sobre pilhas!
  • 22. Memória Virtual
    • É o tamanho combinado do programa, dos dados e da pilha pode exceder a quantidade de memória física disponível para ele.
    • Um programa de 16 Mb pode ocupar um região de 4 Mb.
    • Disco é mais lento que a RAM
  • 23. Memória Virtual
    • Paginação
      • Páginas – espaço do endereço virtual que é dividido para receber dados.
      • Mapeamento de Páginas e Molduras.
      • Bit de mapeamento (presente/ausente) X
      • Interrupção em caso de falha de página
    • Tabela de Páginas
      • Multiníveis
  • 24.  
  • 25.  
  • 26. Memória Virtual
    • Algoritmos de substituição de Paginas
      • Problema de desempenho caso o programa for muito utilizado
    • O melhor algoritmo é fácil de descrever amas impossível de por em prática. Não há como saber se página será novamente referenciada.
    • Realizar pesquisa sobre os algoritmos
      • NUR (Não recente usado)
      • First-in/First-out (primeiro a entrar primeiro a sair)
      • Second Chance (segunda-chance)
      • Clock
      • MRU (menos recente usado)
  • 27. Memória Virtual
    • FIFO
        • Imagina que você tem um programa que irá começar a rodar neste instante e ocupará boa parte da sua memória.
        • A mais antiga das aplicações que esta rodando esta no topo da lista. Na ocorrência de uma falta de página, a primeira aplicação a dar espaço será a mais antiga.
  • 28. Segmentação
    • Memória Virtual é unidimensional. Endereço vai de ZERO a algum lugar (end. Maximo).
    • Ou seja, todo o seu programa deve estar alocado uma porção contínua na memória.
    • Segmentação é a possibilidade de dar espaços independentes para que cada tabela do programa possa usar. Pode crescer ou diminuir de tamanho sem afetarem uns aos outros.
  • 29. Segmentação
  • 30. Segmentação
  • 31. Segmentação
    • Biblioteca Compartilhada
    • Vários programas acessam o segmento que será uniforme para ambos os softwares

×