Sie sind auf Seite 1von 59

Gerncia de Memria

Alocao

Introduo
Atribuio de Endereos, Carregamento Dinmico, Ligao

Dinmica
Espao de Endereamento Fsico versus Lgico
Alocao Contgua Simples
Overlay
Alocao Particionada
Fragmentao Externa e Interna
Gerncia de Memria com Mapeamento de Bits
Gerncia de Memria com Listas Ligadas
Algoritmos de Alocao de Parties
Swapping

Eduardo Nicola F. Zagari

Gerncia de Memria - Alocao

Memria um dos mais importantes recursos de um computador


necessidade de ser gerenciada

Programas devem ser colocados dentro de um processo e ento

carregados em memria para serem executados.


Input queue coleo de processos no disco que esto aguardando

carregamento em memria para executarem o programa.


Funes de um Gerente de Memria
controlar quais partes da memria esto em uso
controlar quais partes esto livres
alocar memria a processos quando estes precisarem
desalocar quando eles no mais necessitarem
gerenciar a troca (swapping ) dos processos entre memria principal e

disco, quando a memria no grande o suficiente para guardar todos os


processos

Eduardo Nicola F. Zagari

Gerncia de Memria - Alocao

A CPU busca instrues da memria de acordo com o valor do

contador de instrues (PC) do programa em execuo. Essas


instrues podem:
buscar novos valores de endereos especficos da memria
armazenar novos valores em posies especficas da memria

Programas de usurio passam por vrios passos antes de

comearem a ser executados.


Instruo

UAL
PC

UC

Parmetros

Registrador
Resultado

Registrador

Eduardo Nicola F. Zagari

Memria
Principal

Gerncia de Memria - Alocao

A maioria dos sistemas permite que os processos de usurios

sejam colocados em qualquer parte da memria


assim, embora o espao de endereamento comece em 0000, o

endereo inicial de um processo no precisa ser este.


A ligao de endereos de

instrues e de dados para os


endereos de memria podem
acontecer em 3 estgios
diferentes:
Em tempo de compilao
cdigo absoluto: se o programa vai

ser carregado no endereo E, o


cdigo gerado pelo compilador
inicia-se neste endereo (se for
alterado, deve ser recompilado).
Ex.: .COM do DOS

Eduardo Nicola F. Zagari

Programa
Fonte

compilador ou
montador

tempo de
compilao

Cdigo
Objeto
Gerncia de Memria - Alocao

Em tempo de carga
cdigo relocvel: quando no se

conhece em tempo de
compilao a posio em que o
programa ser armazenado.
Ex.:
Compilador: 14 bytes do

Cdigo
Objeto

ligador

incio
Carregador: 74000 + 14

Cdigo
Relocvel

Cd Obj
de outros
mdulos
tempo
de carga

Biblioteca
de sistema

carregador

Eduardo Nicola F. Zagari

Gerncia de Memria - Alocao

Em tempo de execuo

Biblioteca
de sistema

se o processo pode ser movido

durante sua execuo, a


determinao do endereo deve
ser atrasada para o tempo de
execuo

carregador

h a necessidade de suporte de

Biblioteca
de sistema
carregada
dinamicamente

hardware para o mapeamento


de endereos (p.ex.:
registradores base e limite)

Cdigo
binrio
executvel

Eduardo Nicola F. Zagari

tempo de
execuo

Gerncia de Memria - Alocao

O conceito de um espao de endereamento lgico que est

associado a um espao de endereamento fsico separado


central ao adequado gerenciamento da memria.
Endereo Lgico gerado pela CPU; tambm conhecido como

endereo virtual.
Endereo Fsico endereo visto pela unidade de memria.

Endereos Lgico e Fsico so os mesmo nos esquemas de

atribuio de endereos em tempo de compilao e em tempo


de carga.
Endereos Lgico e Fsico diferem quando se usa esquema de

atribuio de endereos em tempo de execuo.

Eduardo Nicola F. Zagari

Gerncia de Memria - Alocao

Dispositivo de hardware que mapeia endereos virtuais em

endereos fsicos.
Atravs da MMU, o valor do registrador de relocao

adicionado a todo endereo gerado pelo processo do usurio no


instante em queee enviado memria.
O programa do usurio lida com endereos lgicos; ele nunca v

o endereo fsico real.

Eduardo Nicola F. Zagari

Gerncia de Memria - Alocao

Registrador
Base
14000

CPU

Endereo
Lgico
#346

Endereo
Fsico
#14346

Memria
Principal

MMU
Unidade de
Gerenciamento
de Memria

Eduardo Nicola F. Zagari

10

Gerncia de Memria - Alocao

Rotina no carregada at que ela seja chamada


Melhor utilizao do espao de memria
Rotinas que no so usadas nunca so carregadas.

til quando grandes quantidades de cdigo so necessrias

para manipular casos pouco freqentes.


Nenhum suporte especial do S.O. requerido
Implementado atravs do projeto do programa.

Eduardo Nicola F. Zagari

11

Gerncia de Memria - Alocao

A ligao (linking) adiada at o tempo de execuo.


Stub: um pequeno pedao de cdigo usado para a localizao

da rotina dinmica, residente em memria, apropriada.


O stub substitui a si prprio com o endereo da rotina e a

executa.
necessrio o suporte do S.O. para verificar se a rotina est no

endereo de memria dos processos.


Ligao Dinmica particularmente til para bibliotecas.
Economia de espao
Atualizao
Controle de concorrncia

Eduardo Nicola F. Zagari

12

Gerncia de Memria - Alocao

Toda vez que desejarmos executar um programa (residente em

memria secundria), deveremos, de alguma forma, carreg-lo


para a memria principal, para que o processador possa
referenciar suas instrues e seus dados
Nos sistemas monoprogramados a gerncia da memria no

muito complexa, mas nos sistemas multiprogramados ela se


torna crtica
A seguir apresentaremos os principais esquemas de

organizao e gerncia da memria principal

Eduardo Nicola F. Zagari

13

Gerncia de Memria - Alocao

Implementada nos primeiros SOs e ainda est presente em

alguns sistemas monoprogramados


Esquema mais simples para gerncia de memria
A memria principal dividida em duas partes:
uma para o Sistema Operacional
outra para o(s) programa(s) do(s) usurio(s)

SO pode ocupar tanto a parte baixa quanto a parte mais alta da

memria, dependendo da localizao do vetor de interrupes

Eduardo Nicola F. Zagari

14

Gerncia de Memria - Alocao

No IBM-PC utilizado o terceiro modelo: nos 8KB mais altos dos

1 MB de endereamento existe uma ROM com um programa


chamado BIOS (Basic Input Output System), correspondente a
todos os drivers
Memria Principal
0xFF
rea para o
processo
do usurio

0x00

Sistema
Operacional
em RAM

Eduardo Nicola F. Zagari

Memria Principal

Memria Principal

Sistema
Operacional
em ROM

Drivers de dispositivos em ROM

rea para o
processo
do usurio

15

rea para o
processo
do usurio
SO
em RAM

Gerncia de Memria - Alocao

Usurio tem controle sobre toda a memria principal, podendo

acessar at a rea do SO (caso do DOS)


PROTEO: Pode-se implementar um esquema de proteo

usando um registrador que delimite as reas do SO e usurio

Memria Principal
Sistema
Operacional

Registrador

rea para o
processo
do usurio

Eduardo Nicola F. Zagari

16

Gerncia de Memria - Alocao

Sempre que um programa do usurio faz referncia a um endereo

de memria, o sistema verifica se o endereo est nos seus limites


(registrador base e registrador limite). Caso no esteja, o programa
de usurio pode ser cancelado e ser gerada uma mensagem de
erro

Registrador
Limite
CPU

Endereo
Lgico

Registrador
Base

<

Endereo Memria
Fsico Principal

MMU
interrupo de software; erro de endereamento

Eduardo Nicola F. Zagari

17

Gerncia de Memria - Alocao

Problemas: no permite a utilizao

eficiente do processador e nem da


memria principal, alm de limitar o
tamanho do programa do usurio
Em SOs que suportam o conceito de

MULTIPROGRAMAO, preciso que


existam outras formas de organizao da
memria principal, a fim de suportar
vrios processos na memria
simultaneamente

Memria Principal
Sistema
Operacional

Processo
do Usurio

rea Livre

Eduardo Nicola F. Zagari

18

Gerncia de Memria - Alocao

Sobreposio (Overlay) (usurio)


O que fazer quando se tem um programa que ocupa mais memria

do que a disponvel?
Verifica-se se o programa tem sees que no necessitem

permanecer na memria durante toda a execuo


Mantm-se na memria somente aquelas instrues e dados

que so necessrios a qualquer hora.


Essas sees, uma vez executadas, podem ser substitudas por

outras
A substituio ocorre pela transferncia da seo do disco para a

memria na rea de overlay, cobrindo a seo anterior


O programa inicialmente carregado mais rapidamente, entretanto,

a execuo ficar um pouco mais lenta, devido ao tempo extra


gasto com a sobreposio

Eduardo Nicola F. Zagari

19

Gerncia de Memria - Alocao

Armazenamento
Primrio
Parte fixa
50K
do
processo
20K

Rotina de
controle
de overlay

80K

rea
de
Overlay

Eduardo Nicola F. Zagari

Armazenamento
Secundrio
Fase inicial

50K

20

Fase
intermediria

Fase final

30K
80K

Gerncia de Memria - Alocao

O mecanismo de overlay pouco transparente, pois a definio

das reas de overlay funo do programador (no do SO),


atravs de comandos especficos da linguagem utilizada.
Dependendo da definio, pode ocasionar srias implicaes no

desempenho das aplicaes, devido transferncia excessiva


dos mdulos entre o disco e a memria

Eduardo Nicola F. Zagari

21

Gerncia de Memria - Alocao

Motivao:
tornar mais fcil programar uma aplicao, dividindo-a em dois ou

mais processos
existncia de servio interativo para vrios usurios

simultaneamente (tempo de resposta)


utilizao da CPU (existncia de processos I/O bound )

Modelos de Multiprogramao
Modelos Simplista
Se cada processo gasta 20% de seu tempo na memria usando

o processador, ento 5 processos alcanam um fator de


utilizao da CPU de 100%
E se os 5 processos esperam por E/S simultaneamente?

Eduardo Nicola F. Zagari

22

Gerncia de Memria - Alocao

Modelo Probabilistico
Cada processo gasta p% de seu tempo com E/S
n processos probabilidade de estarem aguardando E/S

simultaneamente: pn

F.U.CPU = 1 - pn
Exemplo:

1 MB de memria, SO de 200K, processos de 200K e cada


um gasta 80% do tempo com E/S 4 processos na
memria FUCPU 60%
Adio de 1 MB de RAM grau de 4 p/ 9 FU 87%
Adio de mais 1 MB de RAM grau de multiprogramao
de 9 para 14 FU 96%

Eduardo Nicola F. Zagari

23

Gerncia de Memria - Alocao

Nos primeiros SOs multiprogramados a memria principal era dividida em

pedaos de tamanho fixo (possivelmente distintos), chamados parties


O tamanho das parties era estabelecido na fase de inicializao do

sistema (boot), em funo dos tamanhos dos programas que iriam ser
executados

Memria Principal

alterao de tamanho de partio

reinicializao

Tabela de parties
Partio

Tamanho

2 KB

5 KB

8 KB

Eduardo Nicola F. Zagari

Sistema Operacional

Programas a
serem executados
E

Partio 1

Partio 2

2 KB
5 KB

3KB 6KB 1KB 4KB 2KB

Partio 3

24

8 KB

Gerncia de Memria - Alocao

A proteo baseia-se em dois registradores, que indicam os limites inferior

e superior da partio onde o programa est sendo executado


Acessos do processo usurio provocam a comparao com o registrador

limite, caso haja invaso, o processo terminado com uma mensagem de


erro.
Endereo inicial

Memria Principal

Endereo final

Sistema Operacional
Partio 1
Partio 2
Partio 3
Eduardo Nicola F. Zagari

25

Gerncia de Memria - Alocao

E as chamadas aos servios do SO ?


Isto resolvido atravs da instruo chamada ao supervisor

(supervisor call )

Modo Usurio versus Modo Supervisor


Modo Usurio:
Execuo das instrues disponveis aos usurios

Modo Supervisor:
Todas as instrues permitidas (no feita comparao com o

registrador limite)
A passagem do modo usurio para o modo supervisor ocorre

quando da solicitao de um servio

Eduardo Nicola F. Zagari

26

Gerncia de Memria - Alocao

Parties Fixas com Filas Mltiplas:


processo colocado em uma partio determinada. Se estiver ocupada,

aguarda na fila;
ou, processo colocado na fila da menor partio em que caiba

Problema: parties no utilizadas

Programas a
serem executados

Memria Principal
Sistema Operacional
Partio 1
Partio 2
Partio 3

Eduardo Nicola F. Zagari

27

Gerncia de Memria - Alocao

Parties Fixas com Fila nica:


fila nica para todas as parties;
processo colocado na fila da menor partio disponvel em que caiba

Memria Principal
Sistema Operacional

Programas a
serem executados

Partio 1
Partio 2
Partio 3

Eduardo Nicola F. Zagari

28

Gerncia de Memria - Alocao

Problema:
colocao de um programa pequeno em uma partio grande
parties vazias por falta de clientes

Uma tentativa de soluo:


correr toda a fila antes de escolher o cliente
Problema:
discrimina pequenos processos

Eduardo Nicola F. Zagari

29

Gerncia de Memria - Alocao

Em sistemas em que os compiladores e montadores geram

apenas cdigo absoluto, os processos podem executar em


apenas uma das parties, mesmo que outras estejam livres

Memria Principal

Programas a
serem executados

Sistema Operacional

Partio 1

Partio 2

Eduardo Nicola F. Zagari

Partio 3

30

Se os processos A e
2 KB
5 KB

B estivessem
executando e a
partio 3 estivesse
livre, os processos C
e E no poderiam ser
executados

8 KB

Gerncia de Memria - Alocao

Com a evoluo dos compiladores, linkers e loaders, tornou-se

possvel a gerao de cdigo relocvel, permitindo que os


processos sejam carregados em qualquer uma das parties

Memria Principal
Programas a
serem executados
D

6KB

3KB

Sistema Operacional
Processo C
Processo A
Processo B

Eduardo Nicola F. Zagari

Se os processos A e

31

2 KB
5 KB

B terminarem de
executar, o processo
E pode ser carregado
e executado em
qualquer uma das
duas parties

8 KB

Gerncia de Memria - Alocao

Problema da APE: fragmentao excessiva


Fragmentao o problema que surge quando pedaos de

memria ficam impedidos de serem utilizados por outros processos.

Memria Principal
Programas a
serem executados
D

6KB

4KB

Sistema Operacional
Processo C
1 KB
Processo A

3 KB

Processo E
3 KB

Eduardo Nicola F. Zagari

32

Gerncia de Memria - Alocao

Visa reduzir o problema da fragmentao e, consequentemente,

aumentar o grau de compartilhamento da memria


eliminado o conceito de parties de tamanho fixo
Na APD, cada processo utiliza o espao necessrio, passando

esse pedao a ser a sua partio


Memria Principal
Sistema Operacional

Programas a
serem executados
A

Processo B
11 KB

Processo C
Processo E

2KB 3KB 1KB 4KB

Eduardo Nicola F. Zagari

Sistema Operacional

Processo A

33

4 KB
1 KB
3 KB
2 KB
1 KB

Gerncia de Memria - Alocao

Memria Principal
0
400K

Fila de processos

Sistema Operacional

Processo Tamanho

P1
P2
P3
P4
P5

600K
1000K
300K
700K
500K

Tempo

10
5
20
8
15

2560K

Eduardo Nicola F. Zagari

34

Gerncia de Memria - Alocao

0
400K

so

0
400K

P1
1000K

P2
2000K
2300K

P3

2560K

Eduardo Nicola F. Zagari

so

so

400K

P1
1000K

P2

aloca
a P4

2000K
2300K
2560K

P3

400K

so

0
400K

900K
1000K

1000K

P4

P1

termina

P4

aloca
a P5

1700K

1700K

1700K

2000K

2000K

2000K

P3

2300K
2560K

2300K
2560K

35

so
P5

P1

1000K

termina

P3

2300K

P4
P3

2560K

Gerncia de Memria - Alocao

Neste esquema, a fragmentao comea a ocorrer quando os

processos forem terminando e deixando espaos cada vez


menores na memria, no permitindo o ingresso de novos
processos
Memria Principal
Programa a
ser executado
D

Sistema Operacional
4 KB

Processo C

6KB

Processo A

Eduardo Nicola F. Zagari

Apesar da

36

1 KB
3 KB
2 KB
1 KB

existncia de 8
Kbytes de
memria livre, o
processo D no
poder ser
carregado

Gerncia de Memria - Alocao

Solues para a fragmentao:


Primeira: aglutinar espaos livres adjacentes em um nico espao

de tamanho maior. No exemplo anterior, caso o processo C termine,


teramos:

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional
4 KB

Processo C
Processo A

Eduardo Nicola F. Zagari

1 KB

8 KB

3 KB
2 KB
1 KB

Processo A

37

2 KB
1 KB

Gerncia de Memria - Alocao

Como gerenciar? (ver tpico Gerncia de Uso da Memria)


Mapa de Bits
Lista de parties ocupadas
Lista de parties livres
Ao trmino do processo, um buraco pode ser:

adicionado lista de parties livres (caso a nova partio


livre esteja cercada de parties ocupadas)
incorporada a uma das parties da lista de parties livres
(caso o buraco seja adjacente a uma partio livre)
No resolve completamente o problema (pode haver buracos

pequenos...)

Eduardo Nicola F. Zagari

38

Gerncia de Memria - Alocao

Segunda: fazer uma relocao de todas as regies ocupadas

(movimento de todos os processos), eliminando todos os espaos


entre elas e criando-se uma nica rea livre contgua. Este mtodo
conhecido como compactao.

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional
1 KB
Processo C
2 KB
Processo A

4 KB

Processo C
Processo A

Eduardo Nicola F. Zagari

1 KB
3 KB

8 KB

2 KB
1 KB

39

Gerncia de Memria - Alocao

Problemas:
Consumo de recursos (grande quantidade de rea em disco e

de tempo de processador consumido em sua implementao)


Sistema necessita parar (pode ser desastroso para sistemas de

tempo real)

Eduardo Nicola F. Zagari

40

Gerncia de Memria - Alocao

Modos de Compactao
0
300K
500K
600K

so
P1
P2
400K

1000K
1200K

P3

0
300K
500K
600K
800K

so

300K

P1
P2
P3

500K
600K

so
P1
P2

P4

1000K
1200K

1200K

Configurao
inicial
Eduardo Nicola F. Zagari

so
P1
P2
900K

1500K

900K

P4
200K

500K
600K

P3

1500K

2100K

300K

P4

300K

1900K

900K

2100K

2100K

600K
transferidos

400K
transferidos
41

P4
1900K
2100K

P3

200K
transferidos
Gerncia de Memria - Alocao

Fragmentao Externa:
existe memria suficiente para satisfazer uma requisio, mas ela no

contnua
Estatisticamente, de cada N blocos alocados, N/2 blocos so

perdidos devido fragmentao (33%)

Memria Principal

Fragmentao Interna:
memria interna a uma partio,

mas que no usada. Ex.:

Sistema Operacional
Processo 1
18464
bytes

requisio de 18462 bytes


Uma soluo para fragmentao

Processo 43

externa compactao
Eduardo Nicola F. Zagari

42

Gerncia de Memria - Alocao

Memria subdividida em unidades de alocao


A cada unidade de alocao 1 bit no mapa
Se bit 0, esta parte da memria est livre
Se bit 1, est ocupada

Tamanho da unidade de alocao versus tamanho do mapa


Se a unidade de alocao for de 4 bytes a parte da memria gasta

com este mapa de apenas 3%


Se a unidade for maior tamanho do mapa menor, mas aumenta o

desperdcio de memria (fragmentao interna)


Desvantagem: para encontrar k unidades de alocao livres

percorrer mapa inteiro procurando k bits iguais a zero muito


lento!

Eduardo Nicola F. Zagari

43

Gerncia de Memria - Alocao

(a) Parte da memria (b) Mapa de bits correspondente


(c) Lista ligada correspondente
Eduardo Nicola F. Zagari

44

Gerncia de Memria - Alocao

Lista ligada de segmentos alocados e de segmentos livres


Ordenao por endereos
rpida atualizao quando do trmino/remoo da memria
Possveis combinaes para a concluso de um processo X:

A X B
A X
X B

aps o trmino
de X fica

A
A

B
B

X
Com listas duplamente encadeadas a tarefa ainda mais simples!

Eduardo Nicola F. Zagari

45

Gerncia de Memria - Alocao

Como atender uma requisio de tamanho n a partir de uma lista

de buracos livres?
Estratgias de alocao de memria para escolher o ponto em que

deve ser carregado um processo recm criado ou que veio do disco


por troca (swapped in)
Listas separadas para processos e buracos:
mais rpido na busca por buracos
mais lento na liberao de memria
variante: os prprios buracos podem ser usados para implementar

a lista de parties livres


First-fit:
A lista de parties livres percorrida e a primeira partio

suficientemente grande para o pedido escolhida


A lista pode ser mantida em ordem aleatria ou ordenada em ordem

crescente de endereo
rpido
Eduardo Nicola F. Zagari

46

Gerncia de Memria - Alocao

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional
Processo F
2 KB

3 KB

Processo C
4 KB

1 KB

Processo A

Eduardo Nicola F. Zagari

Processo C

Processo A

2 KB

47

Gerncia de Memria - Alocao

Next-fit:
Idntico ao First-fit com a diferena que a busca se inicia a partir do

ltimo ponto em que encontrou um buraco


desempenho ligeiramente mais lento que o First-fit

Best-fit:
A lista de parties livres percorrida e a menor partio

suficientemente grande para o pedido escolhida


A lista ordenada em ordem crescente de tamanho
lento se a lista no estiver ordenada (teria que percorrer a lista

inteira)
desempenho ruim devido a muitos buracos pequenos

(fragmentao externa)

Eduardo Nicola F. Zagari

48

Gerncia de Memria - Alocao

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional
3 KB

Processo C
4 KB

1 KB

Processo A

Eduardo Nicola F. Zagari

Processo C
Processo A
Processo F

2 KB

49

1 KB

Gerncia de Memria - Alocao

Worst-fit:
A lista de parties livres percorrida e a maior partio

suficientemente grande para o pedido escolhida


A lista ordenada em ordem decrescente de tamanho
diminui um pouco o problema da fragmentao

Quick-fit:
Listas separadas para alguns tamanhos mais comuns especificados

(por exemplo, uma fila para 2K, outra para 4K, outra para 8K, etc)
busca por buraco rpida
entretanto, a liberao de memria lenta (reagrupar buracos e

modific-los de fila)

Eduardo Nicola F. Zagari

50

Gerncia de Memria - Alocao

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional
3 KB

Processo C

1 KB

Processo A

Eduardo Nicola F. Zagari

4 KB

Processo C
Processo F

2 KB

Processo A

51

3 KB

Gerncia de Memria - Alocao

Mesmo com o aumento da eficincia da multiprogramao e da

gerncia de memria, muitas vezes um programa no podia ser


executado por falta de uma partio livre disponvel
Em todos os esquemas apresentados anteriormente, um

programa permanecia na memria principal at o final de sua


execuo, inclusive nos momentos em que esperava por um
evento, como uma operao de E/S
Uma soluo a tcnica de swapping, cujo objetivo o de

liberar espao na RAM para que outros processos possam ser


carregados e executados
Backing store disco rpido e grande o suficiente para acomodar

cpias de todas as imagens de memria para todos os usurios


Verses modificadas de swapping so encontradas em vrios

sistemas (p.ex., UNIX, Linux e Windows).

Eduardo Nicola F. Zagari

52

Gerncia de Memria - Alocao

Neste esquema, o SO escolhe um programa residente na

memria principal, levando-o da memria para o disco (swap


out)

Memria Principal
Sistema Operacional
Processo C

Processo A

4 KB

Processo G
Processo B

Eduardo Nicola F. Zagari

53

Gerncia de Memria - Alocao

Posteriormente, o processo retorna para a memria principal

(swap in), como se nada tivesse ocorrido

Memria Principal
Sistema Operacional
Processo C
Processo H

Eduardo Nicola F. Zagari

Swap in

Processo G

54

Gerncia de Memria - Alocao

Mapeamento de espao lgico em espao fsico de

endereamento, em tempo de carregamento, torna ineficiente


recarregar o processo em outra regio fsica diferente da do
primeiro carregamento
Soluo:
Introduo de hardware que faa o mapeamento durante a

execuo do processo: interceptador de endereos lgicos que


soma um valor base aos mesmos, produzindo o endereo fsico
No h mais necessidade da tabela de endereos relocveis

Eduardo Nicola F. Zagari

55

Gerncia de Memria - Alocao

Relocao Esttica:
Mapeamento em tempo de carregamento

Relocao Dinmica:
Mapeamento durante a execuo

Endereo Lgico = Endereo Virtual


o valor de um deslocamento em relao ao incio do programa

Eduardo Nicola F. Zagari

56

Gerncia de Memria - Alocao

Exemplo de hardware para mapeamento


Contm o endereo fsico onde foi carregado o incio do programa

Instruo

Registrador Base

Operao End. Lgico

+
Endereo Fsico = Endereo Real
(disponvel na memria)

Eduardo Nicola F. Zagari

57

Gerncia de Memria - Alocao

Proteo em relocao dinmica


Consiste em comparar o endereo fsico com o comprimento do

programa
Instruo de chamada ao supervisor

Separao entre dados e instrues


Permite o compartilhamento de instrues por dois ou mais

processos
Permite duplicar o tamanho mximo do espao lgico
Exige a duplicao do hardware necessrio para relocao e

proteo

Eduardo Nicola F. Zagari

58

Gerncia de Memria - Alocao

Garantir espao em disco sempre que algum processo

swapped out
Os algoritmos para gerenciar o espao alocado em disco para

swapping so os mesmos de gerncia da memria principal


Em alguns sistemas, isto feito somente no momento da

criao do processo e tal espao permanece reservado


A nica diferena que a quantidade de espao reservado no

disco deve ser um mltiplo do tamanho dos blocos do disco

Eduardo Nicola F. Zagari

59

Gerncia de Memria - Alocao

Das könnte Ihnen auch gefallen