Você está na página 1de 5

SISTEMAS OPERACIONAIS ABERTOS

Prof. Ricardo Rodrigues Barcelar


http://www.ricardobarcelar.com
- Aula 5 1. TROCA (Swapping)
Em sistemas operacionais que operam em lotes muito efetivo utilizar parties fixas; cada
job carregado em uma partio quando chega ao comeo da fila e permanece na memria at
que termine.
Com sistemas de compartilhamento de tempo ou computadores grficos pessoais esta
estratgia no pode ser utilizada, pois muitas vezes no h memria suficiente para armazenar
todos os processos ativos. Dessa forma, os processos em excesso so mantidos no disco e trazidos
de l para execuo dinamicamente.
1.1. Multiprogramao com Parties Variveis
Como visto em sistemas multiprogramados um processo no pode invadir a memria de
outro processo;
No caso das parties variveis a alocao da memria dinmica, ou seja, alterada
medida que os processos entram e saem da memria. A vantagem a melhor utilizao da
memria em relao s parties fixas; e a desvantagem que as trocas de processos deixam
muitos espaos vazios na memria fragmentando-a. Para este problema possvel a reorganizao
da memria, contudo esse processo muito demorado.
Dois pontos devem ser considerados nas parties variveis: a quantidade de memria que
deve ser alocada a um processo quando ele for criado. Se o processo no puder crescer ento a
alocao simples, ou seja, o SO aloca somente o necessrio. Soluo alternativa prevenir ou
alocar uma memria extra para o seu possvel crescimento. Pode-se criar uma memria para
variveis dinmicas que so alocadas e desalocadas (Heap), e outra (Stack) para variveis locais
comuns e endereos de retorno.
Para que seja possvel a alocao dinmica de memria o SO precisa gerenciar esse
processo, usando duas formas para fazer isso:
- Gerenciamento de Memria com Mapa de Bits; e
- Gerenciamento de Memria com Listas Encadeadas.

SISTEMAS OPERACIONAIS ABERTOS


Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com

O nmero, o tamanho e a localizao das parties variam dinamicamente medida que os


processos entram e saem da memria:
Esta entrada e sada de dados da memria podem formar buracos, formando o que
conhece por Fragmentao externa.

Uma soluo para a fragmentao externa a compactao da memria, no entanto se o


processo crescer durante o tempo de execuo outra soluo a alocao dinmica da memria.
Contudo, se no houver espao suficiente esta movimentao vai causar um erro denominado

overhead.

SISTEMAS OPERACIONAIS ABERTOS


Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com

1.2. Gerenciamento de Memria com Mapa de Bits


Este tipo de gerenciamento consiste em:
- Dividir a memria em unidades de alocao (o tamanho desta unidade pode variar de
poucos bytes a vrios kilobytes.
- Associar a cada unidade de alocao um bit de controle que diz se aquela unidade est
alocada ou no (0 para no alocada e 1 para alocada).
- O conjunto de todos os bits de controle denominado Mapa de Bits.
Para alocar a memria para um processo o SO deve, inicialmente, percorrer o mapa de bits
em busca de uma seqncia de 0s que represente um espao de memria capaz de suportar o
processo, que pode ser muito demorado.

SISTEMAS OPERACIONAIS ABERTOS


Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com

1.2.1. Tamanho da unidade de alocao


Quanto menor a unidade de alocao, maior ser o mapa de bits e maior o tempo de
procura do SO em busca de espao disponvel para carregar o processo; Contudo, maior ser o
aproveitamento da memria.
Quanto maior a unidade de alocao, menor ser o mapa de bits e menor ser o tempo de
procura do SO em busca de espao disponvel para carregar o processo. Contudo, menor ser o
aproveitamento da memria, pois na ltima posio sempre poder sobrar muito espao da
unidade de alocao.
1.3. Gerenciamento de Memria com Listas Encadeadas
Este tipo de gerenciamento consiste em:
- Manter uma lista encadeada que represente a situao da memria;
- Cada n da lista pode representar um processo na memria ou um espao na memria;
- Cada n vai ter dois vizinhos, que representaro exatamente a situao da vizinhana
daquele n na memria, ou seja:
- Se o n representa um espao em branco os seus vizinhos devero representar
dois processos, pois na memria, um espao em branco sempre delimitado por processos;
- Se o n representa um processo, os seus vizinhos podero ser espaos em branco
ou processos, dependendo da situao da memria.

SISTEMAS OPERACIONAIS ABERTOS


Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com
1.3.1. Algoritmos Utilizados no Gerenciamento de Memria com Listas Encadeadas
Firstfit: O gerenciador de memria procura na lista encadeada um n que represente um
segmento de memria livre suficientemente grande para suportar o processo que deve ser
carregado. Ento o segmento de memria quebrado em duas partes, uma com o processo e o
que sobrar em um novo n que representa um segmento livre;
Nextfit: Funciona como o FirstFit, contudo quando encontra um segmento de memria apto ele
guarda a posio e na prxima vez que for chamado comea a busca a partir daquele ponto;
Bestfit: Este algoritmo vasculha a lista toda procura de um espao que se ajuste o mais
perfeitamente possvel ao tamanho do processo. o algoritmo que mais desperdia memria dos
trs at aqui citados;
Worst fit: Vasculha a lista procura do maior espao disponvel, j que tomando o maior espao
possvel, o restante do espao ainda grande o suficiente para acomodar um novo processo. Na
verdade, a simulao mostrou que esta abordagem no leva a bons resultados.
1.4. Alocao de Espao de Troca (swap)
Espao de troca o espao ocupado no disco pelos processos que a esto guardados, pois
foram retirados da memria devido a uma troca. Os algoritmos para gerenciar o espao alocado
em disco para swap so os mesmos apresentados para o gerenciamento de memria. A diferena
que em alguns sistemas, cada processo tem no disco um espao reservado para o mesmo e na
memria ele constantemente mudado de lugar. Alm disso, como os discos so dispositivos de
bloco, a quantidade de espao reservado para os processos no disco dever ser mltipla do
tamanho do bloco.

Você também pode gostar