O gerenciamento da memória é a ferramenta empregada para permitir aos programas em execução no computador aproveitarem a memória do computador para armazenar as instruções e dados que serão manipulados.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Gerenciamento da memória principal
1.
2. AdoniAs oliveirA sAntos
CleudiAn AndrAde
CleidiAne oliveirA
FrAnCisCo MorAis
liliAn FrAnçA vAguer
luCinArA FAlCão
Wesley sAntos PereirA
3.
4. O gerenciamento da memória é a ferramenta
empregada para permitir aos programas em
execução no computador aproveitarem a memória
do computador para armazenar as instruções e
dados que serão manipulados.
5. Manter um maior numero de processos na
memória;
Maximizar o compartilhamento da CPU e demais
recursos;
Swapping;
Execução de programas maiores que a memória
disponível;
Proteção;
Compartilhamento.
6. Maneira mais simples: alocação contígua da memória.
M e m ó r i a P r i n c i p a l
S i s t e m a
O p e r a c i o n a l
Á r e a p a r a
p r o g r a m a
• Registrador delimita as
áreas do Sistema
Operacional e do
usuário (proteção).
• Uso ineficiente do
espaço, somente um
usuário ocupando-o.
7. M e m ó r i a P r i n c i p a l
R e g i s t r a d o r
S i s t e m a
O p e r a c i o n a l
Á r e a p a r a
p r o g r a m a
M e m ó r i a P r i n c i p a l
S i s t e m a
O p e r a c i o n a l
P r o g r a m a
d o u s u á r i o
Á r e a l i v r e
8. A técnica de overlay permite que módulos independentes de
um mesmo programa sejam carregados numa mesma área de
memória em momentos diferentes.
M e m ó r i a P r i n c i p a l
C a d a s t r a m e n t o
I m p r e s s ã o
S i s t e m a O p e r a c i o n a l2 K b
3 K b
4 K b
4 K b
2 K b
2 K b
1 K b
M ó d u l o p r i n c i p a l
Á r e a d e o v e r l a y
Á r e a l i v r e
Á r e a n ã o
u t i l i z a d a
• Áreas de overlay
definidas pelo
programador.
• Expande limites da
memória principal.
• Não possui
compartilhamento por
usuário.
9. Alocação particionada consiste em dividir à memória em
pedaços denominados partição.
Sistema Operacional
Partição 1 2 KB
Partição 2 5 KB
Partição 3 8 KB
A alocação de memória se
dá de duas formas:
Alocação particionada
estática; e
Alocação Particionada
dinâmica.
10. Memória é dividida em partições fixas, cada processo ocupará
uma determinada partição estabelecida na inicialização do
sistema.
M e m ó r ia P r in c i p a l
S is t e m a O p e r a c i o n a l
2 K b
5 K b
8 K b
Pa r t iç ã o 1P a r tiç ã o
Ta b e la d e p a r tiç õ e s
Ta m a n h o
1 2 K b
2 5 K b
3 8 K b
Pa r t iç ã o 2
Pa r t iç ã o 3
P r o g r a m a s a s e r e m e x e c u ta d o s :
AE
3 K b
D
6 K b
C
1 K b
B
4 K b 2 K b
A alocação particionada
estática pode ser
absoluta ou relocável.
11. Compiladores geram códigos absolutos, ou seja, todas as
referências a endereços são posições físicas na memória
principal.
Programas só podem
ser executados em
partição determinada.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
2 K b
5 K b
8 K b
P a r t i ç ã o 1
P a r t i ç ã o 2
P a r t i ç ã o 3
A
B
D
C
E
3 K b
6 K b
1 K b
4 K b
2 K b
12. Compiladores geram códigos relocáveis, ou seja, todas
as referências a endereços são posições relativas ao início
do código
Programas podem ser
executados em
qualquer partição
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
2 K b
5 K b
8 K b
P r o g r a m a C
P r o g r a m a A
P r o g r a m a B
ED
6 K b 3 K b
13. Para manter controle das partições, é gerada uma tabela
de alocação.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
1
2
3
P r o g r a m a C
Á r e a l i v r e
P r o g r a m a B
P a r t i ç ã o T a m a n h o L i v r e
1 2 K b N ã o
2 5 K b S i m
3 8 K b N ã o
14. Proteção se dá através de registradores que armazenam
limites inferior e superior de cada partição.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l E n d e r e ç o i n i c i a l
E n d e r e ç o f i n a l
15. Com um processo por partição, espaço interno não
utilizado em cada partição é desperdiçado.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
1 K b
3 K b
5 K b
P r o g r a m a C
P r o g r a m a A
P r o g r a m a E
BD
6 K b 4 K b
16. Partições são alocadas dinamicamente de acordo com os
requisitos de memória dos programas.
M e m ó r i a P r i n c i p a lM e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a lS i s t e m a O p e r a c i o n a l
4 K b
1 K b
3 K b
5 K b
2 K b
1 5 K b
P r o g r a m a C
P r o g r a m a B
P r o g r a m a A
P r o g r a m a E
BA
2 K b
E
3 K b
C
1 K b 4 K b
17. Término dos processos deixa espaços que podem ser
insuficientes para novos programas.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
4 K b
3 K b
5 K b
P r o g r a m a C
P r o g r a m a A
D
6 K b
18. Reunir espaços adjacentes conforme os programas
terminam.
M e m ó r i a P r i n c i p a lM e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a lS i s t e m a O p e r a c i o n a l
8 K b
4 K b
3 K b
5 K b5 K b
P r o g r a m a C
P r o g r a m a AP r o g r a m a A
19. Relocação dinâmica de todas as partições ocupadas, eliminando
espaços entre elas e criando uma única área livre contígua.
Algoritmo complexo que consome recursos do sistema.
M e m ó r i a P r i n c i p a lM e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
R e l o c a ç ã o
S i s t e m a O p e r a c i o n a l
4 K b
3 K b
1 2 K b
5 K b
P r o g r a m a C
P r o g r a m a C
P r o g r a m a A
P r o g r a m a A
20. SOs mantêm uma lista de áreas livres e implementam,
basicamente, três estratégias de alocação que tentam evitar
ou diminuir o problema de fragmentação externa.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
4 K b
3 K b
5 K b
P r o g r a m a C
P r o g r a m a A
Á r e a s l i v r e s
Á r e a l i v r e 1
Á r e a l i v r e 2
Á r e a l i v r e 3
T a m a n h o
1 4 K b
2 5 K b
3 3 K b
21. Partição escolhida é aquela em que o programa deixa o
menor espaço sem utilização.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
4 K b
3 K b
5 K b
P r o g r a m a C
P r o g r a m a A
F
1 K b
S i s t e m a O p e r a c i o n a l
2 K b
P r o g r a m a C
P r o g r a m a F
P r o g r a m a A
Á r e a l i v r e
22. Partição escolhida é primeira livre de tamanho suficiente
para carregar o programa.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
4 K b
3 K b
5 K b
P r o g r a m a C
P r o g r a m a A
F
1 K b
S i s t e m a O p e r a c i o n a l
3 K b
P r o g r a m a C
P r o g r a m a A
Á r e a l i v r e
P r o g r a m a F
23. Partição escolhida é aquela em que o programa deixa o
maior espaço sem utilização.
M e m ó r i a P r i n c i p a l
S i s t e m a O p e r a c i o n a l
4 K b
3 K b
5 K b
P r o g r a m a C
P r o g r a m a A
F
1 K b
S i s t e m a O p e r a c i o n a l
4 K b
P r o g r a m a C
P r o g r a m a A
Á r e a l i v r e
P r o g r a m a F
24. Problema: e se não houver memória RAM
suficiente para acomodar todos os processos?
Solução: realizar uma troca de processos, ou
swapping.
– Um dos processos em RAM é deslocado para uma memória
secundária (swap out) e dá lugar ao “novo” processo (swap in).
– Opta-se por remover o processo em wait com menos chance de ser
executado (possivelmente pode optar por um processo em ready).
– Uma área do disco passa a ser usada como memória secundária
(área de swap).
– Mais tarde, o processo swapped out é escalonado e, então,
swapped in, voltando a ser executado.
25. Necessário haver relocação
dinâmica.
Permite maior compartilhamento.
Custo elevado p/operações de
swap in e swap out.
Problema: não havendo
espaço para crescimento ou
relocação, e/ou a área de swap
estiver cheia, o processo poderá
ficar em estado de espera ou ser
terminado.
M e m ó r i a P r i n c i p a l
M e m ó r i a P r i n c i p a l
S i s t e m a
O p e r a c i o n a l
S i s t e m a
O p e r a c i o n a l
P r o g r a m a A
P r o g r a m a A
P r o g r a m a G
Á r e a L i v r e
S w a p i n
S w a p o u t
A r q u i v o
d e S w a p
P r o g r a m a E
P r o g r a m a E
P r o g r a m a B
P r o g r a m a H
H
B
B
26. E n d e r e ç o d e
m e m ó r ia
E n d e r e ç o in c ia l
d a p a r tiç ã o
R e g is tr a d o r d e R e lo c a ç ã o In s tr u ç ã o
E n d e r e ç o
C ó d ig o d e
o p e r a ç ã o
27.
28. REFERÊNCIAS
- MACHADO, Francis Berenger e MAIA, Luiz Paulo,
Arquitetura de Sistemas Operacionais, 4ª edição – Rio de
Janeiro: LTC, 2007.
- LEÃO, Erico Meneses, Apostila de Sistemas
Operacionais - Universidade Federal do Piauí – UFPI.