Gerenciamento De Memória E Sistemas De Gerenciamento De Memória
Trabalho Escolar: Gerenciamento De Memória E Sistemas De Gerenciamento De Memória. Pesquise 862.000+ trabalhos acadêmicosPor: WesleyRafael • 2/6/2013 • 1.486 Palavras (6 Páginas) • 1.193 Visualizações
1.3 Gerenciamento de Memória:
Gerenciamento (ou gestão) de memória é um complexo campo da ciência da computação e são constantemente desenvolvidas várias técnicas para torná-la mais eficiente. Em sua forma mais simples, está relacionado 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 ser reutilizado para outra requisição.
A cada dia que passa os programadores necessitam de mais memória e mais programas rodando simultaneamente para poderem tratar cada vez mais informações. O tratamento necessário da memória utilizada não é uma tarefa fácil de ser implementada. Existem vários requisitos que devem ser observados para o correto funcionamento, tais como, segurança, isolamento, performance, entre outros. Para isto a função de gerenciar a memória passa a ser do sistema operacional e não mais do aplicativo. Para que uma memória funcione de maneira correta, é necessário que se tome cuidado com vários elementos como segurança e isolamento, e para isso é utilizado o gerenciamento de memória. Este desenvolve sua função a partir de duas tarefas, a Alocação de Memória e a Fragmentação. A Alocação pode ser tanto estática, feita quando o programa é compilado, e a dinâmica, adiada até a execução. A Fragmentação, desperdício de memória, por sua vez pode ser interna, sobra na memória reservada ao programa, e externa que acontece quando após o termino dos programas são deixadas pequenas lacunas entre as páginas. Para que a utilização da memória seja mais vantajosa, é utilizada a Paginação, processos virtuais da memória, aplicados na divisão da memória física em partições menores, chamadas de frames. O conjunto de registradores especiais rápidos chama-se Translation Lookaside Buffer, estes são subdivididos em chave valor que lhe é dado em todos os registradores ao mesmo tempo, e valor. Existe uma técnica de gerencia de memória chamada memória virtual, que é onde memórias principais e secundárias juntas criam a ilusão de que há muito mais memória, com isso os programas e suas estruturas de dados não se limitam ao tamanho da memória física, e assumem endereços na memória secundária. O gerenciamento de memória virtual pode ocasionar vazamento de memória, ou seja, quando determinada quantia de memória é alocada e não liberada mesmo que não sendo utilizada, assim dados perdem a referencia sem ao menos terem usado memória. O gerenciamento automático chama-se Garbage collector. Ele retira os blocos de memória automaticamente. Seus algoritmos são divididos em duas famílias: a Identificação direta, por contagem de referência, e a Identificação indireta, por varrimento.
Gerenciamento de memória no DOS
O IBM PC original foi projetado com uma memória RAM de 1024KB
640KB
Para o sistema operacional programas
384KB - ''área de memória superior'' (Upper Memory Area) ou UMA
Para os adaptadores diversos como EGA & VGA, MDA, adaptadores CGA, e de redes.
ROM BIOS e Shadow RAM.
E mais tarde, área de paginação de expansão de memória (EMS) vista mais adiante.
Logo depois, foi provado que esta quantidade de memória se tornaria insuficiente para as necessidades futuras.
Entretanto, os sistemas operacionais e aplicativos desenvolvidos até então não seriam capazes de reconhecer um endereço de memória superior aos 640KB originais, o que levou os projetistas a desenvolverem ferramentas que executariam esta tarefa.
Memória Virtual
Esse método permite que programas sejam executados mesmo que estejam apenas parcialmente carregados na memória principal.
Partições fixas e Partições variáveis: As principais diferenças são o tamanho e a localização das partições que variam conforme os processos entram e saem da memória nas partições variáveis, enquanto que nas partições fixas os parâmetros são fixos. Nas trocas de processos quando deixam muitos espaços vazios na memória, há a possibilidade aglutiná-los em único espaço contíguo de memória, movendo-os o máximo possível para os endereços mais baixos. Técnica denominada compactação de memória. No entanto não é muito utilizada pelo tempo de processamento necessário considerado alto. Algo que deve ser dado uma devida importância é a quantidade de memória que deve ser alocada a um processo, quando for criado ou trazido do disco para memória. Se o processo possuir tamanho fixo, inalterável, então o processo de alocação torna-se simples: o sistema operacional alocará o espaço necessário. No entanto, na área de dados que o processo puder crescer, é alocado uma área temporária denominada (heap). Se houver espaço disponível ao processo, ele poderá ser alocado a esse determinado processo. Quando os processos puderem ter duas área de expansão, a área de dados sendo usada como área temporária (heap) para variáveis dinamicamente alocadas e liberadas, e uma área de pilha para variáveis locais e para endereços de retorno.
Gerenciamento manual de memória
Em modelos de gerenciamento manual, podem ocorrer os problemas conhecidos como vazamento de memória, que acontece quando uma quantidade de memória é alocada e não é liberada ainda que nunca seja utilizada. Isto ocorre quando objetos perdem a referência sem terem sido liberados, mantendo o uso do espaço de memória.
1.4 Sistemas de Gerenciamento de Memória:
Quando o sistema operacional gerencia a memória do computador, duas grandes tarefas precisam ser cumpridas.
1. Cada processo
...