• Nenhum resultado encontrado

Gerenciamento de memória

ƒ Nos sistemas operacionais, a parte

parcialmente responsável por gerenciar a hierarquia de memória é o gerenciador de memória, que tem como tarefa

conhecer todo espaço de memória, alocar para os processos que estão alocar para os processos que estão

necessitando e liberar as partes que não estão mais em uso pelos processos.

ƒ Contemporaneamente, programadores

necessitam de mais memória e mais programas rodando simultaneamente para que consigam tratar cada vez mais informações.

No tratamento de memória, alguns

requisitos devem ser observados para o correto funcionamento:

ƒ Segurança. ƒ Isolamento.Isolamento.

Gerenciamento de memória

ƒ Por conta dos requisitos, a tarefa de

gerenciar memória passa a ser do sistema operacional, não mais dos aplicativos.

O gerenciamento de memória baseia-se basicamente em duas tarefas essenciais:

ƒ Alocação: quando o programa requisita

um bloco de memória, o gerenciador o disponibiliza para a alocação.

ƒ Reciclagem: Quando um bloco de

memória foi alocado, mas os dados não foram requisitados por um determinado número de ciclos ou não há nenhum tipo de referência a este bloco pelo

programa esse bloco é liberado e pode programa, esse bloco é liberado e pode ser reutilizado para outra requisição.

Gerenciamento de memória

Swapping:

ƒ O swapping, é um dos métodos mais

triviais para gerir a sobrecarga de memória. Esse método vem sofrendo modificações ao longo dos anos. Ele faz a cópia completa do conteúdo da

memória (que geralmente são processos ociosos) para um arquivo no disco rígido e libera a memória para outro processo ocupá-la.

ƒ Sistemas e aplicativos atuais demandam

uma grande quantidade de memória, por conta disto, técnicas como a de

ƒ Swapping: quando os recursos de

memória estão esgotados, como por exemplo, quando uma aplicação faz uso de toda a memória RAM de um

computador e outro processo necessita de uma área nesta mesma memória

de uma área nesta mesma memória,

entre em ação a técnica de swapping, ou seja, troca de processos. Isso consiste em o sistema operacional pegar o

conteúdo completo da memória e movê- lo para um arquivo na memória em disco lo para um arquivo na memória em disco rígido e, subsequentemente, liberar a memória para o próximo processo.

Gerenciamento de memória

Swapping.

ƒ Vantagens:

ƒ Maior compartilhamento da memória. ƒ Maior throughput.

ƒ Eficiência. ƒ Desvantagens:

ƒ Elevados custos das operações de

ƒ Memória virtual: Em 1961, um método

desenvolvido por John Fotheringham ficou conhecido como memória virtual, permitindo que programas usem mais RAM do que realmente está disponível fisicamente Esse processo é possível fisicamente. Esse processo é possível porque o sistema operacional mantém rodando na memória principal somente as partes necessárias do programa e as outras, que não estão em uso, ficam no disco rígido. Quando é necessário que disco rígido. Quando é necessário que outra parte, que está no disco, seja carregada, então haverá o processo de

Gerenciamento de memória

Memória virtual:

ƒ A memória virtual possui dois aspectos

importantes: o primeiro é a quantidade de memória fisicamente instalada no equipamento, que chamamos de

memória real. O outro tem muito mais capacidade que o primeiro e chamamos de espaço de memória virtual.

ƒ No hardware, temos um componente de

extrema importância que é a Unidade de Gerenciamento de Memória (MMU).

Memória virtual:

ƒ O MMU suporta o sistema operacional na

execução do mapeamento dos endereços da memória física e endereços da memória virtual,

permitindo, assim, a eficaz maestria de mover as partes dos programas da memória virtual para o disco ou vice- versa.

Gerenciamento de memória

Paginação:

ƒ A técnica chamada paginação é usada na

maioria dos sistemas de memória virtual. A memória virtual é dividida em unidades de espaçamento de endereços

adjacentes chamadas de páginas. Estas correspondem a unidades das memórias chamadas de frames.

Gerenciamento de memória

Paginação:

ƒ A paginação é implementada

normalmente por unidades dedicadas de

hardware integradas nos processadores.

No caso dos processadores da família

Intel x86, esta funcionalidade está

atribuída à MMU. A paginação é obtida através de consulta a tabelas que

relacionam os endereços lineares das páginas de memória com os endereços físicos das frames de memória

físicos das frames de memória respectivas.

Paginação:

ƒ Neste sistema, cada processo no

computador tem a sua própria tabela de páginas, em que a cada endereço virtual corresponde o endereço físico em que a informação está efetivamente

armazenada. Visto que a informação está dividida em pequenas unidades, o seu armazenamento não tem de ser

necessariamente sequencial, o que elimina a fragmentação externa da elimina a fragmentação externa da memória.

Gerenciamento de memória

Segmentação:

ƒ Qualquer programa de computador está

dividido em secções, como as

declarações de variáveis e declarações de sub-rotinas (principalmente se ele foi escrito numa linguagem de alto nível). Em termos de execução, cada uma

dessas secções vai ocupar um segmento da memória.

ƒ O sistema operacional que suporta

segmentação possui uma tabela com os tamanhos e endereços de memória dos vários segmentos de um programa para saber onde estão.

Na tarefa de gerenciamento de memória, qual a função da MMU?

a) Manter rodando na memória principal somente as partes necessárias de um programa.

b) Definir o tamanho máximo de uma área de swapping.

c) Traduzir endereços virtuais em endereços físicos.

d) Liberar a memória de processos inativos d) Liberar a memória de processos inativos. e) Informar ao programador endereços de

Conteúdo complementar –

Documentos relacionados