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