You are on page 1of 33

Danton Cavalcanti Franco Junior falecom@dantonjr.com.

br

Gerenciamento de Memria
Diversos processos dividem o processador, para que o chaveamento entre eles seja rpido eles devem estar na memria. O gerente de memria do sistema operacional deve prover mecanismos para oferecer segurana e eficincia.

Sistemas Operacionais

Gerenciamento de Memria
Nos sistemas multiprogramveis um controle extremamente crtico. A maior preocupao dos projetistas desenvolver SOs que ocupem pouca memria e ao mesmo tempo otimizem sua utilizao.

Sistemas Operacionais

Gerenciamento de Memria

No confundir:

Memria Principal: Onde residem todos os programas e dados que sero utilizados pelo processador. Memria Secundria: um meio permanente, mais abundante e de baixo custo para armazenar os dados.

Sistemas Operacionais

Gerenciamento de Memria

Alocao Contgua Simples:

Foi implementada nos primeiros SO (ainda presente em sistemas monoprogramveis). A memria principal dividida em 2 partes: uma para o SO e outra para os programas do usurio. O programador no deve ultrapassar o espao de memria disponvel (o tamanho da memria principal menos o espao ocupado pelo SO).
Sistemas Operacionais

Memria Principal

Alocao Contgua Simples

Sistema Operacional

rea para o programa do Usurio

Sistemas Operacionais

Gerenciamento de Memria

Alocao Contgua Simples:

O usurio tem total acesso a memria, inclusive a rea do SO. possvel ao usurio destruir o SO. Implementao de uma proteo atravs de um registrador.

Sistemas Operacionais

Memria Principal

Alocao Contgua Simples proteo por registrador


Sistema Operacional Registrador

rea para o programa do Usurio

Sistemas Operacionais

Memria Principal

Alocao Contgua Simples:

H sempre o controle do endereo de memria. Access violation: Quando o programa do usurio cancelado por estar referenciando uma rea de memria delimitada para o uso Sistema Operacional.

Sistemas Operacionais

Memria Principal

Alocao Contgua Simples:

Problemas de limitao do acesso a memria. Soluo overlay (sobreposio).

Sistemas Operacionais

Memria Principal

Tcnica de Overlay: Divide o programa em mdulos que rodam independentes, utilizando uma mesma rea de memria.

Quando um mdulo estiver na memria o outro no precisa estar. A rea de overlay definida pelo maior overlay disponvel. Cuidado apenas com a transferncia disco/memria.
Sistemas Operacionais

Memria Principal

Overlay
Sistema Operacional 2Kb Cadastro 4Kb

Mdulo principal 3Kb


Impresso 2Kb

rea de Overlay 4Kb

rea Livre 1Kb Sistemas Operacionais

Memria Principal

Alocao Particionada:

Sistemas monoprogramveis o processador fica ocioso, com isso o surgimento da multiprogramao. Permitir que vrios programas estejam na memria ao mesmo tempo.

Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica: A memria dividida em pedaos de tamanhos fixos (parties).

Tamanho estabelecido na fase de inicializao. Sempre que era necessrio mudar o tamanho da partio o sistema deveria ser desativado e reinicializado.

Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica


Sistema Operacional Partio 1 - 2Kb Partio 2 - 5Kb A 2Kb B 4Kb C 1Kb

Partio 3 8Kb

D 6Kb
E 3Kb Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica Absoluta


Gerao apenas de cdigo absluto (compilador/montador) Se A e B rodam, C espera.


A 2Kb Sistema Operacional Partio 1 - 2Kb Partio 2 - 5Kb B 4Kb C 1Kb D 6Kb

Partio 3 8Kb

E 3Kb

Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica Relocvel


Gerao cdigo relocvel (compilador/montador) Qualquer partio que suporte o programa permite que ele execute.
A 2Kb Sistema Operacional Partio 1 - 2Kb Partio 2 - 5Kb B 4Kb C 1Kb D 6Kb

Partio 3 8Kb

E 3Kb

Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica


A proteo baseia-se em dois registradores (inferior e superior). H uma tabela indicando a partio, seu tamanho e se est ou no disponvel. Programas geralmente no ocupam toda a partio. Programas grandes esperam parties que o suportem (mesmo parties adjacentes somadas que suportem seu tamanho no so usadas = fragmentao espaos perdidos).
Sistemas Operacionais

Memria Principal

Alocao Particionada Dinmica (varivel): A memria dividida em pedaos de tamanhos variveis.


Eliminado o conceito de partio fixa. Cada programa utiliza o espao que necessita para executar. Ocorrncia de fragmentao na sada (programas vo deixando espaos cada vez menores a medida que vo terminando, impedindo o ingresso de novos programas).
Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica


Sistema Operacional A 2Kb B 4Kb C 1Kb rea livre 11Kb

D 6Kb
E 3Kb Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica


Sistema Operacional A 2Kb B 4Kb C 1Kb

B 4Kb
C 1Kb

E 3Kb
A 2Kb Livre 1Kb

D 6Kb
E 3Kb Sistemas Operacionais

Memria Principal

Alocao Particionada Dinmica


Se B e E terminarem, D no pode rodar pois no h espao livre (consecutivo). Soluo:


Juntar

partes adjacentes a partir do momento que os programas terminam de executar. Relocar os programas (Alocao Dinmica com Relocao) compactao. Consome muito recurso e muito complexo.

Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica


Sistema Operacional A 2Kb B 4Kb C 1Kb

Livre 4Kb
C 1Kb

Livre 3Kb
A 2Kb Livre 1Kb

D 6Kb
E 3Kb Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica (partes adjacentes)


Sistema Operacional A 2Kb B 4Kb Livre 8Kb C 1Kb

D 6Kb
A 2Kb Livre 1Kb E 3Kb Sistemas Operacionais

Memria Principal

Alocao Particionada Esttica (relocao)


Sistema Operacional C 1Kb A 2Kb B 4Kb C 1Kb

A 2Kb

Livre 8Kb

D 6Kb
E 3Kb Sistemas Operacionais

Memria Principal

Estratgias para Escolha da Partio


Devem principalmente evitar ou diminuir o problema da fragmentao. O fator mais importante na escolha da estratgia o tamanho do programa. Basicamente implementam-se trs estratgias: Best-fit, Worst-fit e First-fit.

Sistemas Operacionais

Memria Principal

Independente do mecanismo, sempre h uma lista indicando as parties livres. Sistema Operacional Livre 3Kb C 1Kb Livre 4Kb Lista reas livres 1 3Kb 2 4Kb 3 2Kb

X 1Kb
A 2Kb Livre 2Kb Sistemas Operacionais

Memria Principal

Estratgia Best-fit:

Escolhe a melhor partio, ou seja, aquela em que o programa deixa o menor espao sem utilizao. A lista de parties livres ordenada por tamanho. H uma forte tendncia de que cada vez mais a memria fique com pequenas reas no contguas, aumentando o problema da fragmentao.
Sistemas Operacionais

Memria Principal

Best-fit
Sistema Operacional Livre 3Kb C 1Kb Livre 4Kb Lista reas livres 1 3Kb 2 4Kb 3 1Kb

X 1Kb
A 2Kb X 1Kb Livre 1Kb

Sistemas Operacionais

Memria Principal

Estratgia Worst-fit:

Nesta estratgia, o mecanismo escolhe a pior partio, ou seja, aquela em que o programa deixa o maior espao sem utilizao. Como conseqncia, deixa espaos livres maiores o que permite um maior nmero de programas utilizando a memria, diminuindo a fragmentao.

Sistemas Operacionais

Memria Principal

Worst-fit
Sistema Operacional Livre 3Kb C 1Kb X 1Kb Lista reas livres 1 3Kb 2 3Kb 3 2Kb

Livre 3Kb
A 2Kb Livre 2Kb

X 1Kb

Sistemas Operacionais

Memria Principal

Estratgia First-fit:

O mecanismo escolhe a primeira partio livre de tamanho suficiente para carregar o programa. A lista ordenada por endereos crescentes. a mais rpida. H uma grande chance de se obter uma grande partio livre nos endereos mais altos da memria.
Sistemas Operacionais

Memria Principal

First-fit
Sistema Operacional X 1Kb

Livre 2Kb
C 1Kb Livre 4Kb

Lista reas livres 1 2Kb 2 4Kb 3 2Kb

X 1Kb
A 2Kb Livre 2Kb Sistemas Operacionais

You might also like