Gerencia De Memoria
Artigos Científicos: Gerencia De Memoria. Pesquise 862.000+ trabalhos acadêmicosPor: baga • 13/10/2014 • 3.624 Palavras (15 Páginas) • 347 Visualizações
Gerencia de Memória e Tecnicas de gerenciamento.
Como funciona:
Cabe ao kernel do openSolaris a responsabilidade por diversas funções de gerência de memória, como controlar que partes da memória estão em uso e que partes não estão, alocar memória para processos quando eles necessitarem, liberar quando eles terminarem e gerenciar a troca entre a memória principal e o disco quando a memória principal for muito pequena para armazenar todos os processos. Em sistemas de tempo compartilhado, o gerenciador de memória é responsável pela suspensão e retomada de um processo em intervalos de tempos distintos. Na espera pela execução, os processos ficam na memória até que seja identificado o processo ativo que, a partir desse momento, terá sua execução retomada. O gerenciador também reconhece os processos que estão em estado de espera por entrada/saída para que estes não sejam incluídos na partilha de tempo de execução. O escalonamento de memória do Solaris define as prioridades dos processos, cujo cálculo é referente ao tempo de execução acumulado. Os processos que em execução acumularam muito tempo terão prioridade menor do que processos que ainda não foram executados. No Solaris, além do swapping – técnica que seleciona alguns processos para retirar da memória caso esta esteja cheia – é implementado a gerência de memória virtual com paginação por demanda. Nesse esquema, páginas do processo são trazidas do disco para a memória somente quando são referenciadas.
Métodos:
O Kernel gerencia a memória utilizando os seguintes métodos:
Paginação:
A memória física é dividida em páginas.
Toda página ativa (não livre) é um mapeamento entre um arquivo (vnode) e a memória.
Páginas são identificadas a partir do vnode e de um offset (par vnode/offset).
O par vnode/offset também mapeia o arquivo em swap ou para o cache de arquivo.
O mapeamento entre página física e seu espaço virtual é feito pelo HAT.
Uma lista hash global de páginas contem ponteiros para listas de páginas e é indexada por uma função hash (vnode/offset)
A paginação feita pelo sistema é chamada de paginação por demanda.
Um processo não precisa ser retirado totalmente da memória para dar espaço a outro, para isso basta substituir uma ou mais páginas desse processo.
Essa politica não interfere na execução dos processos que não percebem a troca uma vez que alteramos apenas a referencia do endereço lógico.
Swapping
Consiste na escolha de um programa residente na memória para ser transferido para o disco com a finalidade de liberar espaço na memória.
É possível classificar em dois tipos o swap realizado pelo Open Solaris, soft swapping e hard swapping.
Soft swapping
Se a memória disponível do sistema se encontra abaixo de um nível mínimo de memória livre, por um determinado período de tempo, o escalonador de memória começa a fazer a troca de processos.
Inicialmente o escalonador irá procurar por processos que estão inativos por mais tempo (com um mínimo de tempo definido por maxslp), ou seja o que está na memória mais tempo sem ser referenciado .
Hard swapping
Acontece se há mais de um processo na fila de processos ativos e a atividade de paginação ultrapassa um valor predefinido. Então o núcleo descarrega todos os módulos e cache do sistema que não estão ativos e começa a fazer a troca de processos sequencialmente até que exista memória livre disponível.
Cyclical page cache
Solaris 8 usa um algoritmo diferente para fazer a remoção de paginas da memória chamada cyclical page cachê, ela foi projetada para remover os problemas do cache do sistema de arquivos com a memória virtual, esse novo sistema substitui paginação por demanda existente nas versões anteriores utiliza novo sistema para fazer apenas o cache dos dados do sistema de arquivos. Qualquer outro objeto da memória é tratado em listas diferentes (binários, bibliotecas…), dessa maneira o sistema de arquivos só compete com ele mesmo por memória.
Controle de Memória
O Kernel do Open Solaris tem acesso completo à memória. É ele quem deve dar permissão para que os programas do espaço do usuário tenham acesso à memória quando requisitada.
Gerenciamentos.
Mesmo com a evolução da tecnologia, que faz com que hoje tenhamos memórias muito superiores às de alguns anos atrás - as memórias utilizadas no início da década de 80 era as memórias SIMM de 30 pinos de 256KB, hoje existem os novos modelos de memória como a DDR3 com capacidade de 16GB – o Sistema Operacional precisa gerenciar a memória disponível, pois com a evolução da tecnologia os processos tendem a evoluir também e utilizar toda a memória disponível. Na verdade, os sistemas operacionais possuem estratégias de gerenciamento não só para utilizar a memória, mas também procuram utilizar de outras fontes de armazenamento, como o HD e até dispositivos removíveis, como os pen-drivers, para suprir a necessidade de espaço de memória dos usuários e seus programas.
Memória RAM e a hierarquia da memória
O gerenciamento de memória realizado pelo Sistema Operacional está diretamente voltado para o controle do hardware, conhecido como memória RAM. A sigla RAM deriva da expressão Random Access Memory, que significa memória de acesso aleatório. Os dados armazenados nessa memória podem ser lidos, escritos e apagados pelo processador, existem diversos dispositivos de armazenamento de dados e as características que os diferencia são as seguintes: a velocidade de acesso, a capacidade de armazenamento, e o fato de conseguir ou não manter os dados gravados mesmo quando o computador é desligado. Para relacionar essas características com os diversos dispositivos de armazenamento de dados, foi criada uma hierarquia para facilitar a nossa compreensão. A Figura abaixo mostra essa classificação para os diferentes recursos de memória disponíveis no computador.
Figura
...