Aula 04-gerenciamento-basico-de-memoria

5.989 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.989
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
284
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 04-gerenciamento-basico-de-memoria

  1. 1. Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição de páginas 4.6 Questões de projeto para sistemas de paginação 4.7 Questões de implementação 4.8 Segmentação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1sexta-feira, 27 de maio de 2011
  2. 2. 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 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2sexta-feira, 27 de maio de 2011
  3. 3. Gerenciamento Básico de Memória Monoprogramação sem Troca de Processos ou Paginação Três maneiras simples de organizar a memória - um sistema operacional e um processo de usuário Pearson Education Sistemas Operacionais Modernos – 2ª Edição 3sexta-feira, 27 de maio de 2011
  4. 4. Gerenciamento Básico de Memória Monoprogramação sem Troca de Processos ou Paginação • A) Era usado em computadores de grande porte; • B) Utilizado em computadores de mão; • C) Primeiros computadores pessoais: a parte contida em ROM é a BIOS; • Os processos eram carregados um de cada vez; • Monoprogramação é raramente utilizada hoje. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 4sexta-feira, 27 de maio de 2011
  5. 5. Multiprogramação • Aumenta o uso de CPU; • Maneira mais comum de realizar multiprogramação: dividir a memória em n partições (normalmente de tamanhos diferentes); – Pode ser feita quando o sistema for inicializado; – Quando um job chega ele é colocado no menor espaço que o caiba; – O espaço não utilizado é perdido. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 5sexta-feira, 27 de maio de 2011
  6. 6. Multiprogramação com Partições Fixas • Partições fixas de memória a) filas de entrada separadas para cada partição b) fila única de entrada Pearson Education Sistemas Operacionais Modernos – 2ª Edição 6sexta-feira, 27 de maio de 2011
  7. 7. Multiprogramação com Partições Fixas • Fila única: – O próximo que estiver na fila e couber no espaço vazio; – O próximo maior que não desperdiçar espaço; – Criar pelo menos uma partição pequena para que os processos menores e, geralmente interativos tenham vez. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7sexta-feira, 27 de maio de 2011
  8. 8. Relocação e Proteção • Não se sabe com certeza onde o programa será carregado na memória – Localizações de endereços de variáveis e de código de rotinas não podem ser absolutos • Uma possível solução: instruções do programa são modificadas segundo a partição de memória em que ele será carregado • Uma solução para relocação e proteção: uso de valores base e limite – localizações de endereços são somadas ao valor base antes de serem mapeadas na memória física – localizações de endereços maior que o valor limite indicam erro Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8sexta-feira, 27 de maio de 2011
  9. 9. Troca de Processos (1) • Alterações na alocação de memória à medida que processos entram e saem da memória • Regiões sombreadas correspondem a regiões de memória não utilizadas naquele instante Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9sexta-feira, 27 de maio de 2011
  10. 10. Troca de Processos (2) a) Alocação de espaço para uma área de dados em expansão b) Alocação de espaço para uma pilha e uma área de dados, ambos em expansão Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10sexta-feira, 27 de maio de 2011
  11. 11. Gerenciamento de Memória com Mapas de Bits a) Parte da memória com 5 segmentos de processos e 3 segmentos de memória livre − pequenos riscos simétricos denotam as unidades de alocação − regiões sombreadas denotam segmentos livres b) Mapa de bits correspondente c) Mesmas informações em uma lista encadeada Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11sexta-feira, 27 de maio de 2011
  12. 12. Gerenciamento de Memória com Listas Encadeadas Quatro combinações de vizinhança para o processo X em término de execução Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12sexta-feira, 27 de maio de 2011
  13. 13. Evolução de organizações de Memória Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13sexta-feira, 27 de maio de 2011
  14. 14. Memória Virtual • Normalmente os programas são maiores que a memória disponível; • Solução: dividir a memória em módulos de sobreposição (overlays); • Overlay 0 seria o primeiro a ser executado; • Quando terminar, chamaria o próximo, que seria trocado por outro que estava em disco; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14sexta-feira, 27 de maio de 2011
  15. 15. Memória Virtual • Esse troca de overlay do disco para a memória e vice-versa era feita pelo SO; • A divisão do programa em módulos pelo programador; • Em 1961, Fotheringham desenvolveu um método para que o SO dividisse os programas automaticamente: Memória Virtual. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15sexta-feira, 27 de maio de 2011
  16. 16. Memória Virtual • Ideia básica: o programa (código+dados +pilha) pode exceder o tamanho da memória física. O SO mantém as partes ativas na memória e o restante em disco; • Também é possível usar Mem. Virtual em um sistema com multiprogramação. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16sexta-feira, 27 de maio de 2011
  17. 17. Memória Virtual Paginação (1) • A maioria dos sistemas com M.V. utiliza paginação; • Existe um conjunto de endereços que podem ser gerados quando um programa é executado; • Esses endereços são os endereços virtuais e constituem o espaço de endereçamento virtual; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17sexta-feira, 27 de maio de 2011
  18. 18. Memória virtual ■ Soluciona o problema de pouco espaço de memória. ■ Cria a ilusão de que existe mais memória do que a disponível no sistema. ■ Existem dois tipos de endereço nos sistemas de memória virtual: ● Endereços virtuais →Referenciados por processos. ● Endereços físicos →Indicam localizações físicas na memória principal. ■ Unidade de gerenciamento de memória (MMU) ● Traduz os endereços virtuais para endereços físicos. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18sexta-feira, 27 de maio de 2011
  19. 19. Memória Virtual Paginação (1) • Em computadores sem memória virtual: – Endereço virtual = endereço físico • Em computadores com memória virtual: – Encaminha o endereço a uma MMU (memory management unit – unidade de gerenciamento de memória) – MMU: mapeia endereços virtuais em endereços físicos. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19sexta-feira, 27 de maio de 2011
  20. 20. Memória Virtual Paginação (1) Localização e função da MMU Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20sexta-feira, 27 de maio de 2011
  21. 21. Memória Virtual Paginação (1) n Espaço de endereço virtual, V ■ Gama de endereços virtuais que um processo pode referenciar. n Espaço de endereço real, R ■ Gama de endereços físicos disponíveis em um sistema de computador específico. n Mecanismo de tradução dinâmica de endereço (DAT) ■ Converte endereços virtuais em endereços físicos durante a execução de um programa. Pearson Education Sistemas Operacionais Modernos – 2ª Ediçãosexta-feira, 27 de maio de 2011
  22. 22. Memória Virtual Paginação (1) n |V| em geral é bem maior que |R|. ■ O sistema operacional tem de armazenar partes de V para cada processo externo à memória principal. ■ Armazenamento de dois níveis: ● O sistema operacional move porções de V entre a memória principal (e os caches) e o armazenamento secundário. Pearson Education Sistemas Operacionais Modernos – 2ª Ediçãosexta-feira, 27 de maio de 2011
  23. 23. Memória Virtual Paginação (1) • O espaço de endereçamento virtual é dividido em unidades denominadas páginas (pages); • As unidades correspondentes em mem. física são molduras de páginas (page frames); • Páginas e molduras de páginas tem o mesmo tamanho. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 23sexta-feira, 27 de maio de 2011
  24. 24. Memória Virtual Paginação (2) A relação entre endereços virtuais e endereços físicos de memória dada pela tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24sexta-feira, 27 de maio de 2011
  25. 25. Memória Virtual Paginação • Um bit presente/ausente em cada entrada da tabela de páginas informa se a página está fisicamente na memória ou não; • O que acontece se não estiver? Pearson Education Sistemas Operacionais Modernos – 2ª Edição 25sexta-feira, 27 de maio de 2011
  26. 26. Memória Virtual Paginação • A MMU verifica e força o desvio da CPU para o SO; • Essa interrupção (trap): falta de página (page fault); • O SO escolhe uma moldura de página pouco usada e salva em disco; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 26sexta-feira, 27 de maio de 2011
  27. 27. Memória Virtual Paginação • SO carrega a página virtual referenciada pela instrução na moldura liberada; • Atualiza o mapeamento da tabela de páginas; • Reinicia a instrução que causou a interrupção. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 27sexta-feira, 27 de maio de 2011
  28. 28. Tabelas de Páginas (1)Operação interna de uma MMU com 16 páginas de 4KB Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28sexta-feira, 27 de maio de 2011
  29. 29. Tabela de Páginas • Objetivo: mapear páginas virtuais em molduras de página física; • O número da página virtual é usado como índice dentro da tabela de páginas; • O número da moldura da página física é concatenado aos bits de deslocamento; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 29sexta-feira, 27 de maio de 2011
  30. 30. Tabela de Páginas • Substitui-se o número da página virtual pelo da moldura de página física. • Forma-se o endereço físico que será enviado à memória. • Dois pontos devem ser considerados: – A tabela de páginas pode ser extremamente grande; – O mapeamento deve ser rápido. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 30sexta-feira, 27 de maio de 2011
  31. 31. Tabela de Páginas Pedaços de espaços de de endereçamento existem na memória e no armazenamento secundário. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 31sexta-feira, 27 de maio de 2011
  32. 32. Outra forma de mostrar... Pearson Education Sistemas Operacionais Modernos – 2ª Edição 32sexta-feira, 27 de maio de 2011
  33. 33. Tabelas de Páginas(2) a) Endereço de 32 bits com 2 campos para endereçamento de tabelas de páginas b) Tabelas de páginas com 2 níveis Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33sexta-feira, 27 de maio de 2011
  34. 34. Estrutura de uma entrada da tabela de páginas • Número da moldura de página; • O bit presente/ausente; – 1 entrada válida; – 0 page fault; • Bits de proteção: tipos de permissão de acesso à página: – 0 leitura/escrita; – 1 somente leitura; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 34sexta-feira, 27 de maio de 2011
  35. 35. Estrutura de uma entrada da tabela de páginas • Uma forma mais sofisticada: 3 bits; – Habilita/desabilita leitura, escrita, execução; • Modificada: controla o uso da página; – 1 foi usada; – 0 não foi usada, mesmo conteúdo do disco. • Referenciada: verifica se a página foi usada; – 1 foi usada; – 0 não foi usada, pode ser trocada. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 35sexta-feira, 27 de maio de 2011
  36. 36. Estrutura de uma entrada da tabela de páginas • Cache desabilitado: quando um valor deve ser constantemente atualizado, desabilita a cache. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 36sexta-feira, 27 de maio de 2011
  37. 37. Tabelas de Páginas(3) Entrada típica de uma tabela de páginas Pearson Education Sistemas Operacionais Modernos – 2ª Edição 37sexta-feira, 27 de maio de 2011
  38. 38. Memória Associativa ou TLB • TLB (translation lookaside buffer): tabela de tradução de endereços; • Também conhecida como memória associativa; • Localizada dentro da MMU; Pearson Education Sistemas Operacionais Modernos – 2ª Edição 38sexta-feira, 27 de maio de 2011
  39. 39. Memória Associativa ou TLB • Como funciona? – Quando um endereço é apresentado à MMU: • Primeiro verifica se o número da página virtual está presente na TLB; • Se é encontrada, e o acesso não viola os bits de proteção; • O número da moldura de página é obtido diretamente da TLB; • Sem necessidade de buscá-lo na tabela de páginas. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 39sexta-feira, 27 de maio de 2011
  40. 40. Memória Associativa ou TLB TLB para acelerar a paginação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 40sexta-feira, 27 de maio de 2011
  41. 41. Apresentação do Trabalho Pearson Education Sistemas Operacionais Modernos – 2ª Edição 41sexta-feira, 27 de maio de 2011
  42. 42. Algoritmos de Substituição de Páginas • A falta de página força uma escolha – qual página deve ser removida – alocação de espaço para a página a ser trazida para a memória • A página modificada deve primeiro ser salva – se não tiver sido modificada é apenas sobreposta • Melhor não escolher uma página que está sendo muito usada – provavelmente precisará ser trazida de volta logo Pearson Education Sistemas Operacionais Modernos – 2ª Edição 42sexta-feira, 27 de maio de 2011
  43. 43. O Algoritmo de Substituição de Página Ótimo • Substitui a página necessária o mais a frente possível – ótimo mas não realizável • Estimada através de... – registro do uso da página em execuções anteriores do processo ... – apesar disto ser impraticável Pearson Education Sistemas Operacionais Modernos – 2ª Edição 43sexta-feira, 27 de maio de 2011
  44. 44. O Algoritmo de Substituição de Página Não Usada Recentemente (NUR) • Cada página tem os bits Referenciada (R) e Modificada (M) – Bits são colocados em 1 quando a página é referenciada e modificada • As páginas são classificadas − Classe 0: não referenciada, não modificada − Classe 1: não referenciada, modificada − Classe 2: referenciada, não modificada − Classe 3: referenciada, modificada • NUR remove página aleatoriamente – da classe de ordem mais baixa que não esteja vazia Pearson Education Sistemas Operacionais Modernos – 2ª Edição 44sexta-feira, 27 de maio de 2011
  45. 45. Algoritmo de Substituição de Página Primeira a Entrar, Primeira a Sair • Mantém uma lista encadeada de todas as páginas – página mais antiga na cabeça da lista – página que chegou por último na memória no final da lista • Na ocorrência de falta de página • página na cabeça da lista é removida • nova página adicionada no final da lista • Desvantagem – página há mais tempo na memória pode ser usada com muita freqüência Pearson Education Sistemas Operacionais Modernos – 2ª Edição 45sexta-feira, 27 de maio de 2011
  46. 46. Algoritmo de Substituição de Página Segunda Chance (SC) • Operação do algoritmo segunda chance a) lista de páginas em ordem FIFO b) estado da lista em situação de falta de página no instante 20, com o bit R da página A em 1 (números representam instantes de carregamento das páginas na memória) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 46sexta-feira, 27 de maio de 2011
  47. 47. Algoritmo de Substituição de Página Relógio Pearson Education Sistemas Operacionais Modernos – 2ª Edição 47sexta-feira, 27 de maio de 2011
  48. 48. Menos Recentemente Usada (MRU)35 • Assume que páginas usadas recentemente logo serão usadas novamente – retira da memória página que há mais tempo não é usada • Uma lista encadeada de páginas deve ser mantida – página mais recentemente usada no início da lista, menos usada no final da lista – atualização da lista à cada referência à memória • Alternativamente manter contador em cada entrada da tabela de página – escolhe página com contador de menor valor – zera o contador periodicamente Pearson Education Sistemas Operacionais Modernos – 2ª Edição 48sexta-feira, 27 de maio de 2011
  49. 49. Simulação do MRU em Software (1) MRU usando uma matriz – páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 49sexta-feira, 27 de maio de 2011
  50. 50. Simulação do MRU em Software (2) • O algoritmo do envelhecimento (aging) simula o MRU em software • Note 6 páginas para 5 tiques de relógio, (a) – (e) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 50sexta-feira, 27 de maio de 2011
  51. 51. O Algoritmo de Substituição de Página do Conjunto de Trabalho (1) • O conjunto de trabalho é o conjunto de páginas usadas pelas k referências mais recentes à memória • w(k,t) é o tamanho do conjunto de trabalho no instante t Pearson Education Sistemas Operacionais Modernos – 2ª Edição 51sexta-feira, 27 de maio de 2011
  52. 52. O Algoritmo de Substituição de Página do Conjunto de Trabalho (2) O algoritmo do conjunto de trabalho Pearson Education Sistemas Operacionais Modernos – 2ª Edição 52sexta-feira, 27 de maio de 2011
  53. 53. O Algoritmo de Substituição de Página WSClock Operação do Algoritmo WSClock Pearson Education Sistemas Operacionais Modernos – 2ª Edição 53sexta-feira, 27 de maio de 2011
  54. 54. Revisão dos Algoritmos de Substituição de Página Pearson Education Sistemas Operacionais Modernos – 2ª Edição 54sexta-feira, 27 de maio de 2011
  55. 55. Modelagem de Algoritmos de Substituição de Página – Anomalia de Belady • FIFO com 3 molduras de página • FIFO com 4 molduras de página • P mostra quais referências de página causaram faltas de página Pearson Education Sistemas Operacionais Modernos – 2ª Edição 55sexta-feira, 27 de maio de 2011
  56. 56. Tamanho de Página (1) Tamanho de página pequeno • Vantagens – menos fragmentação interna – menos programa não usado na memória • Desvantagens – programas precisam de mais páginas, tabelas de página maiores Pearson Education Sistemas Operacionais Modernos – 2ª Edição 56sexta-feira, 27 de maio de 2011
  57. 57. Espaços Separados de Instruções e Dados a) Espaço de endereçamento único b) Espaços separados de instruções (I) e dados (D) Pearson Education Sistemas Operacionais Modernos – 2ª Edição 57sexta-feira, 27 de maio de 2011
  58. 58. Páginas Compartilhadas Dois processos que compartilham o mesmo código de programa e, por conseqüência, a mesma tabela de páginas para instruções Pearson Education Sistemas Operacionais Modernos – 2ª Edição 58sexta-feira, 27 de maio de 2011
  59. 59. Questões de Implementação Envolvimento do S.O. com a Paginação Quatro circunstâncias de envolvimento: 1. Criação de processo − determina tamanho do programa − cria tabela de página 2. Execução de processo − MMU reinicia tabela para novo processo − TLB é esvaziada 3. Ocorrência de falta de página − determina endereço virtual que causou a falta − descarta, se necessário, página antiga − carrega página requisitada para a memória 4. Terminação de processo Pearson Education Sistemas Operacionais Modernos – 2ª Edição 59sexta-feira, 27 de maio de 2011
  60. 60. Tratamento de Faltas de Página (1) 1) Hardware desvia a execução para o núcleo 2) Salva conteúdo de registradores e outras informações voláteis 3) SO determina a página virtual necessária 4) SO checa validade de endereço, busca moldura de página 5) Se moldura de página selecionada foi modificada (suja), salvá-la em disco Pearson Education Sistemas Operacionais Modernos – 2ª Edição 60sexta-feira, 27 de maio de 2011
  61. 61. Tratamento de Faltas de Página (2) 6) SO busca em disco página virtual referenciada 7) Tabela de páginas é atualizada 8) Estado da instrução que causou falta de página é recuperado 9) Processo que causou falta de página é escalado para executar 10)Programa continua Pearson Education Sistemas Operacionais Modernos – 2ª Edição 61sexta-feira, 27 de maio de 2011
  62. 62. Segmentação (1) • Espaço de endereçamento unidimensional com tabelas crescentes • Uma tabela pode atingir outra Pearson Education Sistemas Operacionais Modernos – 2ª Edição 62sexta-feira, 27 de maio de 2011
  63. 63. Segmentação (2) Permite que cada tabela cresça ou encolha, independentemente Pearson Education Sistemas Operacionais Modernos – 2ª Edição 63sexta-feira, 27 de maio de 2011
  64. 64. Segmentação (3) Comparação entre paginação e segmentação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 64sexta-feira, 27 de maio de 2011
  65. 65. Implementação de Segmentação Pura (a)-(d) Desenvolvimento de fragmentação externa (e) Remoção da fragmentação via compactação Pearson Education Sistemas Operacionais Modernos – 2ª Edição 65sexta-feira, 27 de maio de 2011
  66. 66. Segmentação com Paginação: MULTICS (1) a) Descritores de segmentos apontam para tabelas de páginas b) Descritor de segmento – números indicam tamanhos dos campos Pearson Education Sistemas Operacionais Modernos – 2ª Edição 66sexta-feira, 27 de maio de 2011
  67. 67. Segmentação com Paginação: MULTICS (2) Um endereço virtual de 34 bits no MULTICS Pearson Education Sistemas Operacionais Modernos – 2ª Edição 67sexta-feira, 27 de maio de 2011
  68. 68. Segmentação com Paginação: MULTICS (3) Conversão de um endereço MULTICS de duas partes em um endereço da memória principal Pearson Education Sistemas Operacionais Modernos – 2ª Edição 68sexta-feira, 27 de maio de 2011

×