Sei sulla pagina 1di 28

Gerncia de Memria

http://www.inf.ufes.br/~rgomes/so.htm

Introduo
Consideraes:
Recurso caro e escasso; Programas s executam se estiverem na memria principal; Quanto mais processos residentes na memria principal, melhor ser o compartilhamento do processador; Necessidade de uso otimizado; O S.O. no deve ocupar muita memria; um dos fatores mais importantes em um projeto de S.O..

LPRM/DI/UFES

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Introduo
Sistema operacional deve
controlar quais regies de memria so utilizadas e por qual processo decidir qual processo deve ser carregado para a memria, quando houver espao disponvel alocar e desalocar espao de memria

Algumas funes do Gerenciador de memria:


Controlar quais as unidades de memria esto ou no esto em uso, para que sejam alocadas quando necessrio; Liberar as unidades de memria que foram desocupadas por um processo que finalizou; Tratar do Swapping entre memria principal e memria secundria.
Transferncia temporria de processos residentes na memria principal para memria secundria.
LPRM/DI/UFES 3 Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Execuo de um Programa (1)

Programa em Ling. de Alto Nvel

Compilador

Programa em Ling. de Montagem

Montador

Objeto: rotinas de bibliotecas (em ling de mquina)

Objeto: mdulo em ling de mquina

linkeditor
Executvel: programa em ling de mquina

Carregador

Memria

Sistemas Operacionais

LPRM/DI/UFES

Execuo de um Programa
Executvel: programa em ling de mquina

(2)

Espao de Endereamento Lgico

Cdigo absoluto: - Endereos relativos ao incio da memria (endereos reais) - Programas exclusivos para parties especficas na memria
Sistemas Operacionais

Cdigo relocvel - O programa pode ser carregado em qualquer posio da memria. - Deve haver uma traduo de endereos (ou relocao de endereos)
5
LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Execuo de um Programa
Relocao de Endereos
Esttica

(3)

O Loader (em tempo de carga) reloca os endereos das instrues relocvies (ex: JMP endx)

Dinmica
Em tempo de execuo O processo pode ser movimentado dentro da memria fsica Um hardware especial deve estar disponvel para que funcione (MMU)
Sistemas Operacionais

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Execuo de um Programa
Relocao de Endereos
Executvel: programa em ling de mquina (cont.)

(4)

Espao de Endereamento Lgico

Traduo

Espao de Endereamento Fsico - Conjunto de endereos reais

Sistemas Operacionais

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Gerncia de Memria Memria Lgica - aquela que o processo enxerga, o processo capaz de acessar. Memria Fsica - aquela implementada pelos circuitos integrados de memria, pela eletrnica do computador (memria real)
CPU Endereo lgico Gerenciador Endereo de Memria fsico Memria

Sistemas Operacionais

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Tcnicas de Gerncia de Memria Real Alocao Contgua Simples Alocao Particionada


Parties Fixas
Alocao Particionada Esttica;

Parties Variveis
Alocao Particionada Dinmica.

Sistemas Operacionais

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Contgua Simples

(1)

Alocao implementada nos primeiros sistemas e ainda usada nos monoprogramveis; A Memria dividida em duas reas:
rea do Sistema Operacional rea do Usurio

Memria principal
Sistema Operacional

Um usurio no pode usar uma rea maior do que a disponvel; Sem proteo:
Um usurio pode acessar a rea do Sistema Operacional.

rea de Programas do usurio

Sistemas Operacionais

10

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Contgua Simples

(2)

Registrador de proteo delimita as reas do sistema operacional e do usurio; Reg Sistema verifica acessos memria em relao ao endereo do registrador; A forma de alocao era simples, mas no permitia utilizao eficiente de processador e memria;

Memria principal
Sistema Operacional

rea de Programas do usurio

Sistemas Operacionais

11

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Contgua Simples

(3)

Programas de usurio limitados pelo tamanho da memria principal disponvel. Soluo: Overlay
Dividir o programa em mdulos; Permitir execuo independente de cada mdulo, usando a mesma rea de memria;

Memria principal
Sistema Operacional rea do Mdulo Principal rea de Overlay

rea de Overlay
rea de memria comum onde mdulos compartilham mesmo espao.

A
Sistemas Operacionais

C
LPRM/DI/UFES

12

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada
Multiprogramao.
Necessidade do uso da memria por vrios usurios simultaneamente.

Ocupao mais eficiente do processador; A memria foi dividida em pedaos de tamanho fixo chamados parties; O tamanho de cada partio era estabelecido na inicializao do sistema; Para alterao do particionamento, era necessrio uma nova inicializao com uma nova configurao.

Sistemas Operacionais

13

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada Esttica


Parties fixas

(1)

Tamanho fixo ; nmero de parties fixo

a) Alocao Particionada Esttica Absoluta:

Compiladores gerando cdigo absoluto; Programas exclusivos para parties especficas. Simples de gerenciar E se todos os processos s pudessem ser executados em uma mesma partio (mesmo endereo base?)

b) Alocao Particionada Esttica Relocvel:


Compiladores gerando cdigo relocvel; Programas podem rodar em qualquer partio.
Sistemas Operacionais

Endereos relativos ao incio da partio;


14
LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada Esttica Proteo:


Registradores com limites inferior e superior de memria acessvel.

(2)

Memria principal
Reg. de Relocao Reg Limite

Sistema Operacional Partio A

Programas no ocupam totalmente o espao das parties, gerando uma fragmentao interna.
Sistemas Operacionais

Partio B Partio C

15

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada Dinmica


No existe realmente o conceito de partio dinmica.
O espao utilizado por um programa a sua partio.

(1)

Memria principal
Sistema Operacional Processo A Processo C Processo F Processo E

No ocorre fragmentao interna.


o tamanho da memria alocada igual ao tamanho do programa

Ao terminarem, os programas deixam espalhados espaos pequenos de memria, provocando a fragmentao externa.
os fragmentos so pequenos demais para serem reaproveitados
Sistemas Operacionais

16

LPRM/DI/UFES

Alocao Particionada Dinmica


Sistema Operacional Sistema Operacional A B C D rea livre 1KB
A - 2 kB C - 1 kB
Sistemas Operacionais

(2)

Sistema Operacional A rea livre 4KB C rea livre 4KB

REA LIVRE 11 KB

B - 4 kB

E - 6 kB
D- 3 kB
17

?
LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada Dinmica


Solues:
Reunio dos espaos contguos. Realocar todas as parties ocupadas eliminando espaos entre elas e criando uma nica rea livre contgua-> Relocao Dinmica de endereos:
Movimentao dos programas pela memria principal. Resolve o problema da fragmentao. Consome recursos do sistema
Processador, disco, etc.
Sistemas Operacionais

(3)

Memria principal
Sistema Operacional Processo A

Processo F Processo E

18

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada Dinmica

(4)

A multiprogramao implica em um problema


Ao mudar de partio o programa necessita ser relocado

Relocao implica em correo de endereos de instrues


Via software (mapa de correes) Via hardware (reg. base e limite)

Proteo

No correo ou correo errada implica em acesso a outra partio


LPRM/DI/UFES

Sistemas Operacionais

19

http://www.inf.ufes.br/~rgomes/so.htm

Alocao Particionada Dinmica

(5)

Definio do tamanho das parties pode ser difcil


Processos crescem quando em execuo bom definir reas extras para dados e pilhas

Como gerenciar as parties alocveis de memria


Mapamento de bits Mapeamento da Memria com listas encadeadas
Sistemas Operacionais

20

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Mapa de bits
Usado para o gerenciamento com alocao dinmica Memria dividida em unidades de alocao
De algumas palavras a vrios kilobytes
Qto menor maior o mapa de bits Qto maior desperdio na ltima unidade

A cada unidade associado um bit que descreve a disponibilidade da unidade


Disponvel = 0 Ocupada = 1

Principal problema
Busca de k zeros consecutivos para alocao de k unidades Raramente utilizado atualmente.
muito lenta
Sistemas Operacionais

21

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Mapeamento da Memria com lista encadeada


Tambm usado para gerenciar a alocao dinmica. Lista ligada de segmentos alocados ou livres Um segmento uma rea de memria alocada ou livre Cada elemento da lista indica
Estado do segmento (P) Alocado por um processo ou (H) Livre Unidade em que inicia Tamanho em unidades

Lista duplamente encadeada facilita de concatenao de segmenos Lista ordenada por endereo permite vrios algoritmos de alocao P: Processo
H: Hole (buraco)

Header
Sistemas Operacionais

P/H incio tamanho


22

P/H incio tamanho


LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Mapeamento da Memria com lista encadeada


Header

P 0 100

H 100 200

P 300 50

H 350 400

P 750 50

H 800 50

A: 190

Header

P 0 100 P 100 190

P 300 50 H 290 10 P 300 50

H 350 400

P 750 50

H 800 50

Header

P 0 100

H 100 200

P 750 50 H 540 210

H 800 50

P 350 190 B: 250


Sistemas Operacionais

23

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

A escolha da partio ideal

(1)

Existem 4 maneiras de percorrer a lista de espaos livre atrs de uma lacuna de tamanho suficiente, so eles:
Best-fit (utiliza a lacuna que resultar a menor sobra)
Espao mais prximo do tamanho do processo; Tempo de busca grande; Provoca fragmentao.

Worst-Fit (utiliza a lacuna que resultar na maior sobra):


Escolhe o maior espao possvel; Tempo de busca grande; No apresenta bons resultados.

Sistemas Operacionais

24

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

A escolha da partio ideal

(2)

First-Fit (primeira alocao):


utiliza a primeira lacuna que encontrar com tamanho suficiente Melhor performance.

Circular-fit ou Next-Fit (prxima alocao):


como first-fit mas inicia a procura na lacuna seguinte a ltima sobra Performance inferior ao First-Fit.

Sistemas Operacionais

25

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

A escolha da partio ideal

(3)

Consideraes sobre Mapeamento da Memria com listas ligadas :


Todos melhoram em performance se existirem listas distintas para processos e espaos, embora o algoritmo fique mais complexo. Listas ordenadas por tamanho de espao melhoram a performance.

Sistemas Operacionais

26

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Referncias
A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 2a. Edio, Editora Prentice-Hall, 2003.
Captulo 4 (at seo 4.2 inclusa)
Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edio, Editora LTC, 2004.
Captulo 9 (at seo 9.3 inclusa)

Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3. Edio, Editora Prentice-Hall, 2005
??

Sistemas Operacionais

27

LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Referncias
A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 2a. Edio, Editora Prentice-Hall, 2003.
Captulo 4 (at seo 4.2 inclusa) Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de Sistemas Operacionais'', 6a. Edio, Editora LTC, 2004.
Captulo 9 (at seo 9.3 inclusa)

Deitel H. M.; Deitel P. J.; Choffnes D. R.; Sistemas Operacionais, 3. Edio, Editora Prentice-Hall, 2005
??

Sistemas Operacionais

28

LPRM/DI/UFES

Potrebbero piacerti anche