GERENCIAMENTO DE MEMÓRIA

MEMÓRIA RAM

Volátil

Usada para a execução de processos

Pode ser gerenciada pelo S.O. através do gerenciador de memória

O gerenciamento do nível mais baixo é feito pelo próprio hardware.

Gerenciamento SEM abstração de memória

Mais de 1 processo executado somente através de swapping

Quando o processo termina a execução, ele é sobrescrito na memória pelo processo seguinte.

Paralelismo somente com threads em programas relacionados.

Programas não relacionados não podem ter paralelismo.

Gerenciamento COM abstração de memória

Espaço de endereçamento

Conjunto de endereços para que o processo use

Cada processo tem seu espaço de endereçamento

Não precisam ser numéricos

Dificuldade: dar a cada programa seu próprio espaço de endereçamento

Registradores base e limite

Mapeia o espaço de cada processo em uma parte diferente da memória física.

Programas são realocados em espaços de memória consecutivos sempre que haja espaço sem realocação

Toda vez que um processo referencia a memória o hardware da CPU adiciona o valor base ao endereço gerado pelo processo antes de enviá-lo ao barramento de memória.

DESVANTAGEM: Necessidade de realizar adição e comparação em cada referência de memória. Adições são muito lentas sem circuitos especiais.

SWAPPING

Consiste em trazer cada processo em sua totalidade, executá-lo por um tempo e então colocá-lo de volta no disco.

MEMÓRIA VIRTUAL: Permite que programas sejam executados mesmo quando estão apenas parcialmente na memória principal.

Processos ociosos ficam armazenados no disco, evitando assim ocupar espaço em disco enquanto não se executam.

COMPACTAÇÃO DE MEMÓRIA

Combinação dos espaços de memória sobrantes pelos processos que foram sendo criados. São combinados em um montante único de memória.

É pouco utilizado devido à alta demanda de tempo da CPU, o que acaba tornando-o inviável.