1 / 61

Gerenciamento de Memória

Gerenciamento de Memória. Parte I Gerenciamento básico de memória Troca de processos Memória virtual Algoritmos de substituição de páginas Parte II Modelagem de algoritmos de substituição de páginas Questões de projeto para sistemas de paginação Questões de implementação Segmentação.

candid
Télécharger la présentation

Gerenciamento 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. Gerenciamento de Memória • Parte I • Gerenciamento básico de memória • Troca de processos • Memória virtual • Algoritmos de substituição de páginas • Parte II • Modelagem de algoritmos de substituição de páginas • Questões de projeto para sistemas de paginação • Questões de implementação • Segmentação

  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 • O gerenciador de memória trata a hierarquia de memórias

  3. Multiprogramação com Partições Fixas • Partições fixas de memória • filas de entrada separadas para cada partição • fila única de entrada

  4. Modelagem de Multiprogramação Maioria dos processos é CPU-Bound Utilização da CPU como uma função do número de processos na memória Maioria dos processos é IO-Bound

  5. Análise de Desempenho de Sistemas de Multiprogramação • Chegada de 4 jobs e suas necessidades de trabalho • Utilização da CPU por até 4 jobs com 80% de espera por E/S • Sequência de eventos entre chegada e término dos jobs • Note que os números mostram quanto tempo da CPU cada job obtém em cada intervalo

  6. 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 maiores que o valor limite indicam erro

  7. 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

  8. Troca de Processos (2) • Alocação de espaço para uma área de dados em expansão • Alocação de espaço para uma pilha com código e uma área de dados, ambos em expansão

  9. Gerenciamento de Memória com Mapas de Bits • 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 • Mapa de bits correspondente • Mesmas informações em uma lista encadeada

  10. Gerenciamento de Memóriacom Listas Encadeadas Quatro combinações de vizinhança para o processo X em término de execução

  11. Memória VirtualPaginação (1) Localização e função da MMU

  12. 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

  13. Tabelas de Páginas • Endereço de 32 bits com 2 campos (PT1, PT2) para endereçamento de tabelas de páginas • Tabelas de páginas com 2 níveis

  14. Tabelas de Páginas Entrada típica de uma tabela de páginas

  15. Memória Associativa ou TLB TLB para acelerar a paginação TLB = Translation Lookaside Buffer (tabela das traduções de endereços mais recentes em um dispositivo; funciona como uma cache para tabelas de página)

  16. 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

  17. 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

  18. 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

  19. Algoritmo de Substituição de Página Segunda Chance (SC) • Operação do algoritmo segunda chance • lista de páginas em ordem FIFO • 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)

  20. Algoritmo de Substituição de Página Relógio

  21. Menos Recentemente Usada (MRU) • 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

  22. O Algoritmo de Substituiçãode Página WSClock Operação do Algoritmo WSClock

  23. Revisão dos Algoritmos de Substituição de Página

  24. Gerenciamento de Memória Parte II Modelagem de algoritmos de substituição de páginas Projeto para sistemas de paginação Questões de implementação Segmentação

  25. Modelagem de Algoritmos de Substituição de Página – Anomalia de Belady Esperado: quanto mais molduras de página a memória possuir, menos faltas de página o programa terá. Anomalia: neste exemplo, o algoritmo de substituição FIFO tem mais faltas de página (10P) para mais molduras (4)... • 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

  26. Algoritmo de Pilha distância Estado do vetor de memória, M, após cada item na cadeia de referências ter sido processado memória disco

  27. A Cadeia de Distâncias: serve paraPrevisão de Frequência de Faltas de Página 20 3 Cálculo da freqüência de faltas de página • o vetor C • o vetor F 3 14 11 3 9 1 8 Possivelmente, melhor custo-benefício 0

  28. Controle de Carga • Mesmo com um bom projeto, o sistema ainda pode sofrer paginação excessiva (thrashing) • Quando o algoritmo PFF (frequência de falta de páginas)indica • alguns processos precisam de mais memória • mas nenhum processo precisa de menos (ou seja, nenhum pode ceder páginas) • Solução :Reduzir o número de processos que competem pela memória • levar alguns deles para disco (swap) e liberar a memória a eles alocada • reconsiderar grau de multiprogramação

  29. Tamanho de Página 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

  30. Espaços Separados de Instruções e Dados • Espaço de endereçamento único • Espaços separados de instruções (I) e dados (D)

  31. Páginas Compartilhadas P2 P1 Dois processos que compartilham o mesmo código de programa e, por conseqüência, a mesma tabela de páginas para instruções Dados do processo 2 Dados do processo 1

  32. Envolvimento do S.O. com Paginação Quatro circunstâncias de envolvimento: • Criação de processo • determina tamanho do programa • cria tabela de página • Execução de processo • Inicia MMU (Unidade de Gerenciamento de Memória) para novos processos • 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 (swap) • Terminação de processo • Libera tabela de páginas, páginas, e espaço em disco que as páginas ocupam

  33. Gerenciamento da falta de páginas 1) Chamadas do kernel pela MMU - hardware desvia a execução para o núcleo (kernel) 2) Salvamento dos registradores de uso geral 3) S.O. determina página virtual requerida 4) S.O. valida endereço e remove página da memória 5) Se página modificada, escreve para o disco 6) S.O. lê página do disco e põe na memória principal 7) Atualiza tabelas de páginas 8) Executa do começo a instrução que provocou a falta 9) Processo colocado em “pronto” 10) Registradores restaurados 11) Programa continua

  34. Fixação de Páginas na Memória • Memória virtual e E/S interagem ocasionalmente • Processo (1) emite chamada ao sistema para ler do disco para o buffer • enquanto espera pela E/S, outro processo (2) inicia • ocorre uma falta de página para o processo 2 • buffer do processo 1 pode ser escolhido para ser levado para disco – problema! • Solução possível • Fixação de páginas envolvidas com E/S na memória

  35. Memória Secundária (a) Paginação para uma área de troca estática (b) Páginas alocadas dinamicamente em disco

  36. Segmentação (1) • Espaço de endereçamento unidimensional com tabelas crescentes • Uma tabela pode atingir outra… , que contém a análise sintática do programa variáveis

  37. Segmentação (2) Permite que cada tabela cresça ou encolha, independentemente

  38. Comparação entre paginação e segmentação

  39. Sistemas de Arquivos • Arquivos • Diretórios • Implementação do sistema de arquivos • Gerenciamento de espaço em disco Infra-estrutura de Software

  40. Armazenamento da Informação a Longo Prazo • Deve ser possível armazenar uma quantidade muito grande de informação • A informação deve sobreviver ao término do processo que a usa – persistência • Múltiplos processos devem ser capazes de acessar a informação concorrentemente – compartilhamento

  41. Nomeação de Arquivos Extensões típicas de arquivos

  42. Estrutura de Arquivos • Três tipos de arquivos • seqüência de bytes • seqüência de registros • árvore

  43. Tipos de Arquivos Identifica arquivo como executável Endereço no qual a execução deve iniciar (a) Um arquivo executável (b) Um repositório (archive) Mais adiante... Para uso na memória Para depuração

  44. Acesso aos Arquivos • Acesso sequencial • lê todos os bytes/registros desde o início • não pode saltar ou ler fora de seqüência • conveniente quando o meio era a fita magnética • Acesso aleatório • bytes/registros lidos em qualquer ordem • essencial para sistemas de bases de dados • ler pode ser … • mover marcador de arquivo (seek), e então ler ou … • ler e então mover marcador de arquivo

  45. Atributos de Arquivos Possíveis atributos (flags) de arquivos para quando registro é consultado usando uma ‘chave’

  46. Create Delete Open Close Read Write Append Seek: ponteiro para acesso aleatório Get attributes Set Attributes Rename Operações com Arquivos

  47. DiretóriosSistemas de Diretório em Nível Único • Um sistema de diretório de nível único • contém 4 arquivos • propriedades de 3 pessoas diferentes, A, B, e C

  48. Sistemas de Diretórios em Dois Níveis As letras indicam os donos dos diretórios e arquivos

  49. Sistemas de Diretórios Hierárquicos Um sistema de diretório hierárquico

  50. Nomes de Caminhos (pathnames) Uma árvore de diretórios UNIX

More Related