1 / 68

Cap ítulo 9: Gerência de Memória

Cap ítulo 9: Gerência de Memória. Assuntos. Cenário Swapping Alocação contígua Paginação Segmentação Paginação com segmentação. Cenário. Programa tem que ser carregado em memória e colocado dentro de um processo para rodar Fila de entrada

Download Presentation

Cap ítulo 9: Gerência de Memória

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 9: Gerência de Memória

  2. Assuntos • Cenário • Swapping • Alocação contígua • Paginação • Segmentação • Paginação com segmentação Operating System Concepts

  3. Cenário • Programa tem que ser carregado em memória e colocado dentro de um processo para rodar • Fila de entrada • Conjunto de processos esperando ser carregados • Programas de usuário passam por vários passos antes de rodar Operating System Concepts

  4. Definição de Endereços • Quando são definidos osendereços de memória de instruções e dados • Tempo de compilação • Tempo de carga • Tempo de execução Operating System Concepts

  5. Compilação • Se a locação de memória éconhecida a priori, códigoabsoluto é gerado • Código absoluto tem que ser recompilado se a localização do programa em memória tem que ser mudada Operating System Concepts

  6. Tempo de Carga • Para que o programa possa sercarregado em qualquer posiçãode memória, o código deve serrelocável • Código relocável possui uma tabela com todas as posições do programa onde deve-se somar o valor da posição de memória inicial Operating System Concepts

  7. Tempo de Execução • É possível trocar endereços durante a execução desde quese tenha hardware que suporteisto (transparente ao programa) • O hardware produz mapas de endereços (com registradores base e limite) Operating System Concepts

  8. Passos no Processamento de um Programa de Usuário Operating System Concepts

  9. Endereços Lógicos e Físicos • Diferença básica • Endereços lógicos são usadospela CPU (endereços virtuais) • Endereços físicos são vistos pela memória • Endereços lógicos e físicos são os mesmos se a definição de endereços é feita em tempo de compilação ou carga Operating System Concepts

  10. Unidade de Gerência de Memória (MMU) • Hardware que mapeia endereços virtuais em endereços físicos • O registrador de relocação é adicionado a cada endereço gerado na CPU antes de ser visto pela memória • Programas usam endereços lógicos, nunca vendo os endereços físicos Operating System Concepts

  11. Relocação Dinâmica usando Registrador de Relocação Operating System Concepts

  12. Carga Dinâmica • Rotina só é carregada quandochamada • Melhor utilização de memória • Rotinas que não são usadas nunca são carregadas • Útil quando muito código é necessário para situações infrequentes • Tratamento de erros • Não necessita de suporte do SO Operating System Concepts

  13. Ligação Dinâmica • Ligação (linking) feito em tempo de execução • Um stub fica no lugar da rotina • é usado para localizá-la na biblioteca • O stub é substituído pelo endereço da rotina, que é então executada • O SO tem que saber se a rotina está no espaço de memória do processo • Isto é especialmente útil para bibliotecas Operating System Concepts

  14. Overlays • Mantém em memória só as intruções e dados necessárias no momento • Necessário quando o processo é maior que a memória alocada para ele • Implementado pelo usuário • Não é necessário suporte do SO • Projeto dos overlays é complexo Operating System Concepts

  15. Overlays para um Montador de Duas Passadas Operating System Concepts

  16. Swapping • Método que tira um processo temporariamente da memória • Ele é armazenado em disco • Pode ser recarregado e continuar a execução • Área de Swap • Partição ou arquivo usado para swapping • Roll out, roll in – variante de swap usada em escalonamento por prioridades Operating System Concepts

  17. Swapping • A maior parte do tempo é gasta na transferência para disco • O tempo depende da quantidade de memória a ser copiada • Versões de swapping são encontradas em vários sistemas (Unix, Linux, Windows) Operating System Concepts

  18. Diagrama Operating System Concepts

  19. Alocação contígua • A memória principal é divididanormalmente em duas partes • SO residente • Memória baixa, junto com vetor de interrupções • Processos do usuário • Memória alta Operating System Concepts

  20. Partição Única • Processos são protegidos deoutros usando o registrador derelocação • Isto protege também código e dados do SO • O registrador de relocação contém o valor do menor endereço físico • O registrador de limite contém o valor do maior endereço físico • Endereços tem que ser menores que o limite Operating System Concepts

  21. Suporte de Hardware Operating System Concepts

  22. Alocação em várias partições OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 10 process 2 process 2 process 2 process 2 • Processo é colocado em árealivre grande suficiente para ele • SO mantém info sobre partições alocadas e “buracos” Operating System Concepts

  23. Como Fazer Alocação Dinâmica • First-Fit: a primeira área livregrande o suficiente é alocada • Best-Fit: A área que gera a menor sobra é escolhida • É necessário varrer toda a lista de “buracos” • Worst-Fit: A maior área é escolhida • Gera a maior sobra Operating System Concepts

  24. Fragmentação • Externa: existe memória parasatisfazer um pedido, mas estanão é contígua • Interna: existe uma sobra em cada partição de memória alocada Operating System Concepts

  25. Eliminando a Fragmentação Externa • Compactação • Mover as partições de forma a juntar os “buracos” • Só é possível se a relocação é dinâmica, e pode ser feita em tempo de execução Operating System Concepts

  26. Problemas com E/S • Se um bloco de memória estásendo usado como “buffer”para E/S, ele não pode serretirado da memória • Solução • Manter o bloco em memória (latch) • Só fazer E/S para buffers no espaço de memória do SO Operating System Concepts

  27. Paginação • O espaço de endereçamento lógico de um processo pode não ser contíguo • Memória física é alocada quando necessário • Memória é dividida em partes do mesmo tamanho chamadas quadros (frames) • Memória lógica é dividida em páginas do mesmo tamanho Operating System Concepts

  28. Paginação • Para rodar um programa comn páginas, n quadros livres sãousados • Uma tabela faz a tradução dos endereços lógicos para físicos • Paginação gera fragmentação interna Operating System Concepts

  29. Esquema de Tradução de Endereços • Os endereços gerados pela CPU são divididos em • Página (p) • Usado como índice na tabela de páginas que contém o endereço inicial de cada página na memória física • Offset (d) • Combinado com o endereço inicial define o endereço físico Operating System Concepts

  30. Arquitetura de tradução de Endereços Operating System Concepts

  31. Exemplo de Paginação Operating System Concepts

  32. Exemplo de Paginação Operating System Concepts

  33. Quadros Livres Antes da Alocação Depois da Alocação Operating System Concepts

  34. Implementação de uma Tabela de Páginas • Tabela de páginas mantida namemória principal • Registrador de base da tabela de páginas (PTBR) aponta para a tabela de páginas • Registrador de tamanho da tabela de páginas (PTLR) indica o tamanho • Cada acesso a dados/instruções requer dois acessos à memória Operating System Concepts

  35. TLB • O problema pode ser resolvidousando um cache de hardwarechamado memória associativaou translation lookaside buffer(TLB) Operating System Concepts

  36. Memória Associativa Page # Frame # • Permite busca paralela • Para traduzir um endereço lógico • Se ele está na tabela, o endereço físico é obtido imediatamente • Se não, a tabela de páginas é lida da memória Operating System Concepts

  37. Hardware de Paginação com TLB Operating System Concepts

  38. Tempo Efetivo de Acesso • Busca Associativa =  unidades de tempo • Assuma ciclo de memória dura1microsegundo • Hit ratio – porcentagem em que a página é encontrada nos registradores associativos • Hit ratio =  • Tempo Efetivo de Acesso (EAT) EAT = (1 + )  + (2 + )(1 – ) = 2 +  –  Operating System Concepts

  39. Proteção de Memoria • Proteção de memória usa um bitde proteção para cada quadro • O bitVálido-inválidoindica • “válido” a página está no espaço de endereçamento lógico do processo • A página é “legal” • “inválido” a página não pertence ao espaço de endereçamento lógico • Ela não pode ser acessada Operating System Concepts

  40. Bit Válido (v) ou Inválido (i) naTabela de Páginas Operating System Concepts

  41. Estrutura da Tabela de Páginas • Paginação Hierárquica • Tabela de Páginas “Hashed” • Tabela de Páginas Invertida Operating System Concepts

  42. Tabela de Páginas Hierárquica • O espaço de endereçamento lógico é dividido em várias tabelas de páginas • A técnica mais simples é uma tabela em dois níveis Operating System Concepts

  43. Exemplo de Paginação em Dois Níveis • Um endereço lógico (numa máquina de 32bits com páginas de 4K) é dividido em • Um número de página de 20 bits • Umoffsetde 12 bits • Como a tabela também é paginada, o número de página também é dividido em • Um número de página de 10bits • Umoffset de 10bits Operating System Concepts

  44. Exemplo de Paginação em Dois Níveis page number page offset p2 pi d 10 12 10 • O endereço lógico é dado porOnde pié um índice para a tabela de páginas externa, e p2é em que linha da tabela a página está na tabela externa Operating System Concepts

  45. Esquema de Dois Níveis Operating System Concepts

  46. Tradução de Endereços • Tradução de endereços para dois níveis de paginação com endereços de 32 bits Operating System Concepts

  47. Tabelas de Página usando Hash • Comum em espaços de endereçamento maiores que 32 bits • O número da página virtual é distribuido na tabela de página usando uma função de hash • Ele contêm uma seqüência ou lista de elementos que caem na mesma posição • Os números virtuais são comparados nesta lista quando procura-se por uma página. Se encontrada, o quadro físico pode ser acessado Operating System Concepts

  48. Tabela de Página usando Hash Operating System Concepts

  49. Tabela de Página Invertida • Uma entrada para cada página real (bloco) de memória • Cada entrada contém o endereço virtual da página armazenada naquele bloco da memória, com informações sobre o processo do qual essa página faz parte Operating System Concepts

  50. Tabela de Página Invertida • Diminui a quantidade de memória necessária para armazenar cada tabela de páginas, mas aumenta o tempo de pesquisa na tabela em cada referência a uma página • Uso de tabela hash para limitar a pesquisa a apenas uma — ou no máximo a algumas — entradas na tabela de páginas Operating System Concepts

More Related