1 / 37

Gerenciamento de Memória - Capítulo 7 -

Gerenciamento de Memória - Capítulo 7 - . Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso. Sumário. Definição Requisitos Técnicas de Gerenciamento de Memória. Gerenciamento de Memória.

hali
Download Presentation

Gerenciamento de Memória - Capítulo 7 -

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- Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso

  2. Sumário • Definição • Requisitos • Técnicas de Gerenciamento de Memória

  3. Gerenciamento de Memória • Principal operação – trazer programas para dentro da memória principal para ser executados pelo processador. • Dividir dinamicamente a parte “User” da memória principal de forma que acomode vários processos. • Alocar a memória de forma eficiente para empacotar tantos processos na memória quanto possível para evitar que o processador fique ocioso. • Deve ser capaz de rodar um programa em que seu tamanho seja maior que o disponível pela memória real.

  4. Requisitos • Relocação • Proteção • Compartilhamento • Organização lógica • Organização física

  5. Requisito - Relocaçã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.

  6. Técnica de Endereçamento -> Imagem do Processo

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

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

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

  10. Requisito – 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

  11. Técnicas de Gerenciamento de Memória • Partição de memória • Partição fixa • Partição dinâmica • Sistema Buddy • Paginação simples • Segmentação simples • Paginação de Memória Virtual • Segmentação de Memória Virtual

  12. Partição Fixa • Memória principal é dividida dentro de um no. de partições estáticas (tamanho igual ou diferente). O processo é carregado dentro de uma partição de tamanho = ou >. • Ponto forte: Simples de implementar, pouco overhead no sistema • Ponto fraco: Fragmentação interna -> Uso ineficiente da memória principal. Qualquer programa, não importando o quanto pequeno é, ocupa uma partição na memória.

  13. Algoritmo de Locação • Partição de tamanho igual: todas as partições com o mesmo tamanho, não importa qual partição é usada; • Partição de tamanho diferente: • Dois caminhos: • Uma fila para cada partição -> Processos são atribuídos de forma a minimizar o desperdício de memória na partição • Uma única fila para todas as partições ->Os processos são atribuídos a partição de menor tamanho disponível no momento.

  14. Partição Fixa (cont.) • Desvantagens: • No. de partições especificadas no tempo de geração do sistema -> limita o no. de processos ativos dentro do sistema • Tamanho das partições são setadas no tempo de geração do sistema -> jobs pequenos utilizam os espaços das partições de forma ineficiente • Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramação com no. fixo de tarefa)

  15. Partição Dinâmica • Partições são criadas dinamicamente, de forma que cada processo é alocado dentro da partição do mesmo tamanho do processo • Ponto forte: Não tem fragmentação interna e usa de forma mais eficiente a memória • Ponto fraco: Uso ineficiente do processador por necessitar de compactação para solucionar a fragmentaçãoexterna (memória vai ficando cheia de vários buracos) • Usada com sucesso: Mainframe da IBM e Os/MFT(Multiporgramação com no. variável de tarefa)

  16. Algoritmo de Locação • O SO deve decidir qual bloco livre a ser alocado ao processo de forma eficiente. • Três algoritmos podem ser usados: • First-fit : Procura dentro da memória a partir o inicio e escolhe o primeiro bloco que é grande o suficiente para o processo a ser alocado; • Next-fit: Inicia a procura a partir do local onde foi feito a ultima locação e escolhe o bloco que é grande o suficiente para o processo a ser alocado • Best-fit: Escolhe o bloco que mais se aproxima do tamanho requerido;

  17. Qual deles é o melhor? • First-fit : • Mais rápido e o melhor • Ele gera no inicio da memória pequenas partições livres que necessitam ser pesquisadas a cada passo subseqüente do first-fit • Next-fit: • Freqüentemente aloca blocos livres no fim da memória • Como resultado, blocos grandes de memória são quebrados rapidamente em blocos menores • Compactação mais freqüente é requerida para obter grandes blocos no fim da memória • Best-fit: • Tem a pior performance • Procura pelo menor bloco que satisfaça o requisito • Como resultado, a memória principal é rapidamente quebrada em blocos muito pequenos que não podem satisfazer um pedido de alocação, exigindo assim uma compactação freqüente

  18. Sistema Buddy • O espaço disponível total da memória é tratado como um único bloco de 2U(bloco de maior tamanho que pode ser alocado) • Se um pedido de tamanho s é tal que 2U-1 < s ≤ 2U, • Então: o bloco completo 2U é alocado • Senão: O bloco é divido em 2 “buddies” iguais. A divisão continua até que o bloco encontrado seja > ou = ao s requerido. • Uma forma modificada deste sistema é usada para alocação de memória no kernel do UNIX. Também tem sido usado em aplicações de sistemas paralelos (alocação e liberação de programas paralelos).

  19. Paginação Simples • A memória é divida em pequenos pedaços de tamanho igual chamados frames. Cada processo é dividido em pequenos pedaços de tamanho igual ao do frame chamado pages. Quando um processo é carregado na memória, todas as suas páginas são carregadas dentro dos frames disponíveis, e uma tabela de página é setada. Os frames usados não precisam estar em seqüência. • Ponto forte: Não tem fragmentação externa • Ponto fraco: tem uma pequena quantidade de fragmentação interna.

  20. Como o SO controla as páginas alocadas e os frames livres? • O SO usa: • Conceito de endereço lógico; • Mantém ma tabela de frames livres ; • Mantém uma tabela de pagina para cada processo, contendo a localização do frame para cada pagina do processo.

  21. Dentro do programa, cada endereço lógico consiste: um número de pagina + um offset da pagina Exemplo: Endereço lógico= Page 1 e offset 478 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0

  22. Tradução do endereço lógico para o endereço físico é feito pelo hardware do processador , da seguinte forma: Endereço lógico 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 Tabela de Página 0 0 0 0 1 0 1 1 0 0 0 1 1 0 2 0 1 1 0 0 1 Endereço físico 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0

  23. Segmentação Simples • Cada processo é dividido em um número de segmentos de tamanho desigual (limitado pelo tamanho máximo). Um processo é carregado na memória, todos os seus segmentos são carregados dentro de partições dinâmicas que não necessitam ser continuas. • Ponto forte: Não tem fragmentação interna • Ponto fraco: Tem uma pequena quantidade de fragmentação externa

  24. Exemplo de Segmentação 1400 Segmento 0 Sub-rotina 2400 3200 Segmento 3 pilha 4300 Segmento2 Programa principal 4700 Segmento 4 Tabela de símbolos 5700 6300 Segmento 1 Variáveis Globais 6700

  25. Como o SO controla os segmentos alocados e blocos livres? • O SO mantém: • Conceito de endereço lógico • mantém uma tabela de blocos livres ; • mantém uma tabela de segmentos para cada processo, contendo a endereço inicial na memória principal (base) + o tamanho do segmento (limite). Exemplo de uma Tabela de Segmento 0 1 2 3 4

  26. Tradução do endereço lógico para o endereço físico é feito pelo hardware do processador , da seguinte forma: Segmento Offset Endereço lógico 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 Tabela de Segmento 0 001011101110 0000010000000000 + 1 011110011110 0010000000100000 Limite Base Endereço físico 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0

  27. Memória Virtual - Paginação • É igual a paginação simples, exceto que não necessita ser carregada todas as páginas do processo. Paginas não residentes que são necessárias, são trazidas mais tarde automaticamente. • Ponto forte: Não tem fragmentação externa; Alto grau de multiprogramação; Espaço para grandes processos virtuais. • Ponto fraco: Overhead no gerenciamento complexo de memória.

  28. Memória Virtual - Segmentação • É igual a segmentação simples, exceto que não necessita ser carregada todas os segmentos do processo. Segmentos não residentes que são necessárias, são trazidas mais tarde automaticamente. • Ponto forte: Não tem fragmentação interna; Alto grau de multiprogramação; Espaço para grandes processos virtuais; Suporte de proteção e compartilhamento. • Ponto fraco: Overhead no gerenciamento complexo de memória.

More Related