Você está na página 1de 4

1

SISTEMAS OPERACIONAIS
PROF: GUILHERME GODOY

APOSTILA 1
GERENCIAMENTO DE MEMÓRIA
Os computadores pessoais evoluíram tanto que há algum tempo as aplicações
e os próprios sistemas operacionais demandam mais memória que a disponível
fisicamente nas máquinas.

Várias técnicas ao longo do tempo foram desenvolvidas para que haja espaço
para todas as aplicações possam ser executadas sem que o tamanho da
memória física disponível impossibilite.

As principais técnicas são:

 Swapping

 Memória Virtual

Swapping
Consiste em trazer totalmente cada processo para a
memória, executá-lo durante um tempo e, então,
devolvê-lo ao disco.

Processos ociosos ficam inteiramente no disco quando não estão executando,


não ocupando assim a memória.
2

a) Somente o processo A está na memória.


b) O processo B é criado ou trazido do disco.
c) O processo C é criado ou trazido do disco.
d) O processo A é devolvido para o disco.
e) O processo D entra na memória.
f) O processo B é retirado da memória.
g) O processo A é novamente trazido do disco para a memória.

São executadas as seguintes ações:

 Swap Out: o Sistema Operacional escolhe um processo residente e o


transfere para a memória secundária.
 Swap in: ocorre um processo inverso ao swap out. O processo é
carregado de volta da memória secundária para a memória principal e o
programa pode continuar sua execução como se nada tivesse
acontecido.

O algoritmo deve selecionar os processos com menos chances de serem


executados.
Para tanto, geralmente são escolhidos os processos que estão no estado de
espera. Mas processos no estado de pronto também poderão ser selecionados.
3

Sempre que o Escalonador (CPU scheduler) decide executar um processo ele


chama o Dispatcher.

O Dispatcher verifica se o processo a ser executado está residente em


memória, se não, ele remove (swap out) algum processo que esteja
correntemente na memória principal e carrega (swap in) o processo
escolhido para ser executado.

Após isto o contexto do processo a ser executado é restaurado e o controle é


passado ao processo que passa então a executar.

Para que a técnica de swapping seja implementada é essencial que o sistema


ofereça um loader que implementa a alocação dinâmica de programas.

Problemas na utilização do Swapping

FRAGMENTAÇÃO
Após muitas operações de swap-in e swap-out é possível que a memória
fique fragmentada .
Se um processo maior sai e dá espaço para um processo ligeiramente
menor, aquele espaço entre 2 processos será desperdiçado.
E pior, se um processo maior que os espaços livres disponíveis tentar carregar
ele vai falhar por falta de espaço de alocação.

Uma estratégia para resolver a fragmentação seria a compactação da


memória.
4

Compactação de Memória:

Consiste em mover cada processo para baixo na memória, fazendo com que
ele ocupe os espaços vazios abaixo do seu endereço base.

Apesar de otimizar o uso da memória esta estratégia normalmente não é


usada.
O tempo necessário para mover todos os processos para o fim da memória
seria muito grande.
Por exemplo: um computador com 1 GB de memória que possa copiar 4 bytes
em 20 ns gastaria 5 segundos para compactar a memória.

CRESCIMENTO DINÂMICO DO APLICATIVO

O que acontece quando um processo excede o tamanho alocado da sua área


de crescimento?

● Ele precisará ser realocado em uma área de memória com espaço contínuo
que caiba o seu novo tamanho.

● Isso pode levar muito tempo, pois pode ser necessário fazer swap-out de
outros processos e ainda mover os dados do processo para uma nova área de
memória.

Qual seria a solução?

Você também pode gostar