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.