Gerenciamento De Memória
Dissertações: Gerenciamento De Memória. Pesquise 862.000+ trabalhos acadêmicosPor: flavioerba • 31/5/2013 • 901 Palavras (4 Páginas) • 450 Visualizações
Gerenciamento de memória
Fundamentos
Todos os computadores possuem memória principais que guardam programas em execução. Em sistemas simples, cada programa é alocado um por vez na memória. Assim, neste caso se outro programa for utilizar a memória, o primeiro deve ser removido e assim é alocado outro.
Atualmente, nos sistemas modernos, vários programas são executados na memória ao mesmo tempo. Nestes sistemas existem meios de proteção gerenciados pelo SO onde cada programa não interfere no outro.
Hoje em dia temos processos de 32 e 64 bits, no passado se acontecesse da memória principal ser toda preenchida, o processo seria perdido ou travava a máquina. Em nossos dias nada disso acontece, se a memória for toda preenchida, o SO aloca parte do programa em disco e vai utilizando conforme seu processamento. A esta parte da memória que é alocada em dissco chamamos de memória virtual.
Swapping
É uma técnica aplicada à gerência de memória que visa dar maior taxa de utilização à memória principal, melhorando seu compartilhamento. Visa também resolver o problema da falta de memória principal num sistema. Toda vez que um programa precisa ser alocado para execução e não há espaço na memória principal num sistema. Toda vez que um programa precisa ser alocado para execução e não há espaço na memória principal, o SO escolhe entre os processos alocados que não têm previsão de utilizar a CPU nos próximos instantes (quase sempre entre aqueles que estão em interrupção de E/S ou no final da fila de pronto), e “descarrega” este processo da memória para uma área especial em disco, chamada arquivo de swap, onde o processo fica armazenado temporariamente. Durante o tempo em que o processo fica em swap, o outro que necessitava de memória entra em execução ocupando o espaço deixado pelo que saiu. Pouco antes de chegar a vez do processo armazenado em swap utilizar a CPU, o sistema escolhe um outro processo para descarregar para swap e devolve o anterior da área de swap para a memória principal, para que este possa ser executado novamente. E vai trabalhando assim até que os processos vão terminando. O problema dessa técnica é que pode provocar um número excessivo de acesso à memória secundária (disco), levando o sistema a uma queda de desempenho.
Alocação Contígua de Memória
Implementada principalmente nos primeiros Sistemas Operacionais (monousuários), ela divide a memória principal em duas partes:
• uma para o Sistema Operacional
• uma para o programa do usuário
Neste caso, o programador deve desenvolver suas aplicações preocupadas apenas em não ultrapassar o espaço de memória disponível e tem controle total sobre toda a área da memória, inclusive para alterar e até danificar o Sistema Operacional. A fim de proteger os Sistemas Operacionais deste tipo de dano, alguns deles implementam uma proteção através de um registrador que delimita as áreas do Sistema Operacional e do usuário. Desta forma, sempre que um programa referencia um endereço de memória o sistema verifica se o endereço está dentro dos limites seguros. Caso contrário, o programa é cancelado e uma mensagem de erro é enviada ao usuário.
Apesar da simplicidade de implementação e código reduzido, este tipo de alocação não permite uma utilização mutio eficiente da memória principal (pode haver desperdício de memória se o programa não ocupá-la totalmente) e do processador.
- SO: Pode ocupar tanto a parte baixa, quanto a parte mais alta da memória, dependendo da localização do vetor de interrupções
- USUÁRIO: Têm controle sobre toda a memória principal, podendo acessar até a área do SO (caso do DOS).
Paginação
...