Memória virtual - sistemas operacionais
Gerenciamento de memória
-Listas encadeadas
-Memória virtual
O gerenciamento de memória é a parte do sistema operacional responsável por controlar quais partes da memória está sendo utilizadas, quais as livres, alocar memória a processos quando eles precisam desalocar quando eles não necessitarem mais e gerenciar a trocados processos entre a memória principal e o disco (quando a memória principal não é suficiente para manter todos os processos).
Métodos de gerencia de memória:
Basicamente são separadas em três conjuntos:
1. Gerenciamento sem Troca ou Paginação: troca e paginação são métodos utilizados de movimentação da memória para o disco e vice-versa durante a execução dos processos. Sem troca ou paginação é o caso mais simples.
2. Monoprogramação sem Troca ou Paginação: temos um único processo sendo executado por vez, de forma que o mesmo possa utilizar toda a memória disponível, com exceção da parte reservada ao SO (que permanece constante em local pré-determinado). O SO carrega um programa do disco para a memória executa-o e em seguida aguarda comandos do usuário para carregar um novo programa, que irá se sobrepor ao anterior.
3. Multiprogramação: a monoprogramação não é mais utilizada em sistemas grandes, pois possuem desvantagens.
Escolhemos dois gerenciamentos, com listas encadeadas e com memória virtual, abaixo iremos falar sobre eles.
Gerenciamento com Listas Encadeadas: mantemos uma lista encadeada de segmentos alocados e livres, sendo que cada segmento é um processo ou um buraco entre dois processos. A lista apresenta-se em ordem de endereços, e quando um processo termina ou é enviado para o disco, e a atualização da lista ocorre da seguinte maneira: cada processo, desde que não seja nem o primeiro nem o último da lista, apresenta-se cercado por dois segmentos, que podem ser buracos ou outros processos, o que nos dá as quatro possibilidades. Os buracos adjacentes devem ser combinados num único. Para escolher o ponto em