Você está na página 1de 33

Gerenciamento de Memria

Prof. Dr. Jos Lus Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto
Faculdade de Tecnologia de Americana Centro Paula Souza

Tpicos

Introduo Alocao Contgua Simples Alocao Particionada Alocao Particionada Esttica Alocao Particionada Dinmica Estratgias para a Escolha da Partio Swapping

Introduo

Na memria principal residem todos os programas e dados que sero executados ou referenciados pelo processador. Toda vez que deseja-se executar um programa residente na memria secundria, deve-se, de alguma forma, carreg-lo para a memria principal. Organizao e gerncia de memria principal tm sido fatores importantes no projeto de sistemas operacionais.

Introduo

Historicamente, a memria principal sempre foi vista como um recurso escasso e caro. Uma das maiores preocupaes dos projetistas era desenvolver sistemas operacionais que no ocupassem muita memria e, ao mesmo tempo, otimizassem a sua utilizao. Enquanto nos sistemas monoprogramveis a gerncia de memria no muito complexa, nos sistemas multiprogramveis ela se torna crtica.

Alocao Contgua Simples

A alocao contgua simples foi implementada nos primeiros sistemas operacionais desenvolvidos, porm, ainda est presente em alguns sistemas monoprogramveis. Nesse tipo de organizao, a memria principal dividida em duas partes: uma para o sistema operacional; M e m r ia P r in c ip a l outra para o programa do usurio.
S is te m a O p e r a c io n a l

re a p a ra p ro g ra m a

Alocao Contgua Simples

O usurio tem controle sobre toda a memria principal, podendo ter acesso a qualquer posio de memria, inclusive alterar e destruir o sistema operacional. Para proteg-lo desses ataques, conscientes ou no, alguns sistemas operacionais implementam proteo atravs de um registrador, que delimita as reas do sistema operacional e do usurio.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l R e g i s tr a d o r

re a p a ra p ro g ra m a

Alocao Contgua Simples

Apesar de sua simplicidade de implementao e cdigo reduzido, a alocao contgua simples no permite a utilizao eficiente do processador e da memria pois apenas um usurio pode utilizar este recurso. Em relao memria, caso o programa no a preencha totalmente, existir um espao de memria sem utilizao. Fragmentao.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l

Pro g ra m a d o u s u r io

re a liv r e

Alocao Contgua Simples

No princpio, os programas dos usurios estavam limitados ao tamanho da memria principal disponvel. A soluo encontrada para o problema foi dividir o programa em partes (mdulos), de forma que pudessem executar independentemente uma da outra, utilizando a mesma rea da memria. Esta tcnica recebeu o nome de overlay.

Alocao Contgua Simples


M e m r ia P r in c ip a l 2 Kb S is te m a O p e r a c io n a l C a d a s tr a m e n to 3 Kb M d u lo p r in c ip a l 4 Kb

4 Kb

re a d e o v e rla y

Im p re ss o 2 Kb

1 Kb

r e a liv r e re a n o u ti l i z a d a 2 Kb

Alocao Particionada

Os sistemas monoprogramveis permitem que o processador permanea ocioso e que a memria seja subutilizada, enquanto um programa aguarda o trmino de uma operao de I/O, por exemplo. A multiprogramao vem resolver este problema, pois enquanto aguarda algum evento, outros processos podem ser executados pela CPU nesse intervalo de tempo. Para a multiprogramao ser eficiente, necessrio que vrios programas estejam na memria ao mesmo tempo, da a necessidade de uma nova forma de organizao da memria principal.

Alocao Particionada Esttica

Nos primeiros sistemas multiprogramveis, a memria foi dividida em pedaos de tamanho fixo, chamados parties. O tamanho das parties eram estabelecidos na fase de inicializao do sistema (boot), em funo do tamanho dos programas que seriam executados no ambiente.

Alocao Particionada Esttica


M e m r ia P r in c ip a l Ta b e la d e p a r ti e s P a r ti o 1 2 3 Ta m a n h o 2 Kb 5 Kb 8 Kb P a r ti o 2 5 Kb S is te m a O p e r a c io n a l P a r ti o 1 2 Kb

P r o g r a m a s a s e r e m e x e c u ta d o s : E 3 Kb D 6 Kb C 1 Kb B 4 Kb A 2 Kb

P a r ti o 3

8 Kb

Alocao Particionada Esttica

No princpio, os programas s podiam ser executados em uma das parties, mesmo que outras estivessem disponveis. Essa limitao era devido aos compiladores utilizados na poca, que geravam cdigos absolutos. Este tipo de alocao recebeu o nome de alocao particionada esttica absoluta.

Alocao Particionada Esttica


M e m r ia P r in c ip a l S is te m a O p e r a c io n a l C 1 Kb E 3 Kb A 2 Kb B 4 Kb P a r ti o 2 5 Kb P a r ti o 1 2 Kb

D 6 Kb

P a r ti o 3

8 Kb

Alocao Particionada Esttica

Com a evoluo dos compiladores, linkers e loadres, a gerao de cdigo relocvel foi possvel e os programas puderam ser carregados em qualquer partio. A esse novo tipo de alocao deu-se o nome de alocao particionada esttica relocvel.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l Pro g ra m a C 2 Kb

D 6 Kb

E 3 Kb

Pro g ra m a A

5 Kb

Pro g ra m a B

8 Kb

Alocao Particionada Esttica

Para manter o controle sobre quais as parties estavam alocadas ou no, os sistemas possuam uma tabela delimitando cada partio, seu tamanho e se estava em uso ou no.
M e m r ia P r in c ip a l P a r ti o 1 2 3 Ta m a n h o 2 Kb 5 Kb 8 Kb L iv r e N o S im N o 2 r e a liv r e 1 S is te m a O p e r a c io n a l Pro g ra m a C

Pro g ra m a B

Alocao Particionada Esttica

A proteo baseava-se em dois registradores, que indicavam os limites inferiores e superiores da partio onde o processo seria carregado.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l E n d e r e o in ic ia l

E n d e r e o fin a l

Alocao Particionada Esttica

Tanto nos sistemas de alocao absoluta como nos sistemas com alocao relocvel, os processos no preenchiam totalmente as parties onde eram alocadas. Desta forma, a fragmentao tambm estava presente nestes esquemas.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l Pro g ra m a C 1 Kb Pro g ra m a A D 6 Kb B 4 Kb 3 Kb

Pro g ra m a E

5 Kb

Alocao Particionada Dinmica

Aumenta o grau de compartilhamento de memria. Diminui o grau de fragmentao. Neste esquema foi eliminado o conceito de parties com tamanho fixo. Cada programa utiliza o espao que necessitasse, desde que existisse este espao na memria,transformando-o em uma partio.

Alocao Particionada Dinmica


M e m r ia P r in c ip a l S is te m a O p e r a c io n a l M e m r ia P r in c ip a l S is te m a O p e r a c io n a l

Pro g ra m a B Pro g ra m a C Pro g ra m a E A 2 Kb E 3 Kb C 1 Kb B 4 Kb 15 Kb Pro g ra m a A

4 Kb 1 Kb 3 Kb 2 Kb

5 Kb

Alocao Particionada Dinmica

Neste esquema tambm ocorre a fragmentao e ela aparecer na medida em que os processos forem terminado e deixando espaos cada vez memores na memria, no permitindo o carregamento de outros processos.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l

4 Kb Pro g ra m a C D 6 Kb Pro g ra m a A 3 Kb

5 Kb

Alocao Particionada Dinmica

Uma soluo seria fazer com que os espaos adjacentes fossem reunidos, produzindo um nico espao de tamanho maior.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l M e m r ia P r in c ip a l S is te m a O p e r a c io n a l

4 Kb Pro g ra m a C 3 Kb Pro g ra m a A Pro g ra m a A 8 Kb

5 Kb

5 Kb

Alocao Particionada Dinmica

A segunda maneira seria realizar uma relocao de todas as parties ocupadas, eliminando todos os espaos entre elas e criando-se uma nica rea livre contgua.
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l M e m r ia P r in c ip a l S is te m a O p e r a c io n a l Pro g ra m a C 4 Kb Pro gra m a C 3 Kb Pro gra m a A 12 Kb Pro g ra m a A

R e lo ca o

5 Kb

Estratgias para Escolha da Partio

Os sistemas operacionais implementam, basicamente, trs estratgias para determinar em qual partio livre um programa ser carregado para execuo. Essas estratgias tentam evitar, ou diminuir, o problema da fragmentao antes que ela ocorra. Independente do algoritmo utilizado, o sistema possui uma lista de reas livres ( free list ), com endereo de cada rea livre e seu respectivo tamanho.

Estratgias para Escolha da Partio


M e m r ia P r in c ip a l S is te m a O p e r a c io n a l r e a s liv r e s 1 2 3 Ta m a n h o 4 Kb 5 Kb 3 Kb r e a liv r e 2 5 Kb Pro g ra m a C

r e a liv r e 1

4 Kb

Pro g ra m a A r e a liv r e 3 3 Kb

Estratgias para Escolha da Partio

BEST FIT Esse mecanismo escolhe a melhor partio (best fit), ou seja, aquela em que o processo deixa o menor espao sem utilizao.

WORST FIT Esse mecanismo escolhe a pior partio (worst fit), ou seja, aquela em que o processo deixa o maior espao sem utilizao.

FIRST FIT Esse mecanismo escolhe a primeira partio (first fit) livre, de tamanho suficiente para carregar o processo.

Estratgias para Escolha da Partio


S is te m a O p e r a c io n a l

M e m r ia P r in c ip a l

Pro g ra m a C
S is te m a O p e r a c io n a l

4 Kb Pro g ra m a C F 1 Kb 5 Kb

(a

es B

t- f

it

Pro g ra m a A Pro g ra m a F r e a liv r e 2 Kb

Pro g ra m a A 3 Kb

Estratgias para Escolha da Partio


M e m r ia P r in c ip a l S is te m a O p e r a c io n a l

S is te m a O p e r a c io n a l

4 Kb Pro g ra m a C F 1 Kb 5 Kb

( b ) W o r s t- f i t

Pro g ra m a C Pro g ra m a F r e a liv r e 4 Kb

Pro g ra m a A 3 Kb

Pro gra m a A

Estratgias para Escolha da Partio


M e m r ia P r in c ip a l S is te m a O p e r a c io n a l

4 Kb Pro g ra m a C F 1 Kb 5 Kb

S is te m a O p e r a c io n a l Pro g ra m a F r e a liv r e Pro g ra m a C 3 Kb

(c it -f st ir )F

Pro g ra m a A 3 Kb

P ro g ra m a A

Swapping

A tcnica de swapping veio para tentar resolver o problema de insuficincia de memria para todos os usurios. Nos esquemas apresentados at o momento, um processo permanecia na memria principal at o final de sua execuo, inclusive quando realizava operaes de entrada e sada. O swapping uma tcnica aplicada gerncia de memria, para processos que esperam por memria livre para serem processados. O sistema escolhe um processo residente que levado da memria para o disco (swapped out), retornando posteriormente para a memria principal (swapped in), como se nada tivesse ocorrido.

Swapping
M e m r ia P r in c ip a l S is te m a O p e r a c io n a l Pro g ra m a A H Pro g ra m a B Pro g ra m a E Pro gra m a G B M e m r ia P r in c ip a l S is te m a O p e r a c io n a l Pro g ra m a A Pro gra m a H Pro g ra m a E B S w a p in r e a L iv r e Sw ap out

A r q u iv o de Sw ap

Swapping

Um dos problemas gerados pelo swapping a relocao dos processos. O loader relocvel permite que um processo seja colocado em qualquer posio de memria, porm a relocao realizada no momento do carregamento. O conceito de swapping permitiu um maior compartilhamento de memria e, consequentemente, um maior throughput. Mostrou-se eficiente em ambientes onde existiam poucos usurios competindo pela memria e com aplicaes pequenas. Seu maior problema o custo das operaes de entrada e sada.

Gerenciamento de Memria
Prof. Dr. Jos Lus Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto
Faculdade de Tecnologia de Americana Centro Paula Souza

Você também pode gostar