Arquitetura de Sistemas
Operacionais
Francis Berenger Machado
Luiz Paulo Maia
Capítulo 9
Gerência de Memória
1
Cap. 5 – Gerência de Memória
Sumário
•
•
•
•
•
Introdução
Funções básicas
Alocação contígua simples
Técnica de overlay
Alocação Particionada
– Alocação Particionada Estática
– Alocação Particionada Dinâmica
– Estratégias de Alocação de Partição
• Swapping
Cap. 5 – Gerência de Memória
2
1
Introdução
• Enquanto nos sistemas
monoprogramáveis a gerência da
memória não é muito complexa, nos
sistemas multiprogramáveis essa
gerência se torna crítica, devido à
necessidade de se maximizar o número
de usuários e aplicações utilizando
eficientemente o espaço da memória
principal.
3
Cap. 5 – Gerência de Memória
Funções Básicas
• Manter o maior número de processos
na memória
• Maximizar o compartilhamento da UCP
e demais recursos
• Swapping
• Execução de programas maiores que
memória disponível
• Proteção
• Compartilhamento
Cap. 5 – Gerência de Memória
4
2
Esquema de uso
submete JOB para execução
MEMÓRIA PRINCIPAL
LOCATOR
procura na biblioteca
MEMÓRIA
SECUNDÁRIA
Biblioteca de
programas
LOADER
carrega programa
na memória
Sistema Operacional
Código do Programa
e Recursos
PAGEFILE
Quando
o espaço de memória
é insuficiente
EXECUÇÃO
5
Cap. 5 – Gerência de Memória
Alocações de Memória
• ALOCAÇÃO DE MEMÓRIA:
• Contígua
• Simples
• Particionada Estática ou Fixa
• Absoluta
• Relocável
• Particionada Dinâmica
• Não-Contígua ou Memória Virtual
• Paginação
• Segmentação
• Segmentação com Paginação
Cap. 5 – Gerência de Memória
6
3
Alocação Contígua Simples
M e m ó r ia Pr in cip a l
Sist e m a
O p e r a cio n a l
• implementado nos primeiros SO
• monoprogramável
• memória contígua – contínua, adjacentes
• dividida em duas áreas:
• para Sistema Operacional
Á rea p ara
p rog ram a
• para programas do usuário
• não pode exceder o espaço disponível
• usuário tem controle total sobre
o uso da memória
7
Cap. 5 – Gerência de Memória
Alocação Contígua Simples
• Proteção
Memória Principal
Sistema
Operacional
Área para
programa
Cap. 5 – Gerência de Memória
Registrador
• Proteção do SO, o registrador delimita as
áreas do SO
• contém o endereço final do SO
• define o endereçamento da área do
programa.
8
4
Alocação Contígua Simples
• Subutilização da memória
• memória subutilizada
• utilização ineficiente
M e m ó r ia Pr in cip a l
• monousuário – monoprogramável
• desperdício de recurso caro
Sist e m a
O p e r a cio n a l
Pr o g r a m a
d o u su á r io
Memória alocada para o programa
Á r e a l iv r e
Resto da memória não utilizada
“Fragmentação Interna”
9
Cap. 5 – Gerência de Memória
Alocação Contígua Simples
• o programador deve desenvolver suas aplicações,
preocupado, apenas, em não ultrapassar o espaço de
memória disponível, ou seja, a diferença entre o
tamanho total da memória principal e área ocupada pelo
Sistema Operacional.
M e m ó r i a Pr i n ci p a l
Si st e m a
O p e r a ci o n a l
Á rea p ara
p rog ram a
• Espaço de Memória Principal
disponível para programas do
usuário
• Não pode exceder o tamanho
Cap. 5 – Gerência de Memória
10
5
Técnica de Overlay
• Na alocação contígua simples, todos os programas estão
limitados ao tamanho da área de memória principal
disponível para o usuário.
• Uma solução encontrada para o problema é dividir o
programa em módulos, de forma que seja possível a
execução independente de cada módulo, utilizando uma
mesma área de memória.
11
Cap. 5 – Gerência de Memória
Técnica de Overlay
•
•
•
•
•
•
A memória de 8 Kb é insuficiente para o Programa com 9 kb
dividir em 3 módulos (3 kb, 4 kb e 2 Kb)
módulo principal residente na memória de 3 kb
Os Módulos Overlays compartilham a Área de Overlay de 4 kb
Área de Overlay = 4 kb, definido pelo maior módulo (Ex. Cadastramento)
Carregado da Memória Secundária para a Area de Overlay qdo. referenciado.
Memória Principal
2 Kb
Sistema Operacional
3 Kb
Módulo principal
Memória Secundária
processamento
CADASTRAMENTO
4 Kb
cadastramento
4 Kb
ÁREA DE OVERLAY
1 Kb
Área livre
IMPRESSÃO
Área não
utilizada
Cap. 5 – Gerência de Memória
2 Kb
Ficha do cliente
12
6
Alocação Contígua
Particionada Estática
• Partições são fixas e definidas na inicialização do S.O.
• Tamanhos são determinados baseados nos tamanhos
dos programas e da sua necessidade de execução.
• Pode-se mudar os tamanhos das partições reinicializando o SO.
Memória Principal
Tabela de partições
Partição
Tamanho
1
2 Kb
2
5 Kb
3
8 Kb
Sistema Operacional
Programas a serem executados:
E
D
C
B
A
3 Kb
6 Kb
1 Kb
4 Kb
2 Kb
Partição 1
2 Kb
Partição 2
5 Kb
Partição 3
8 Kb
13
Cap. 5 – Gerência de Memória
Alocação Contígua
Particionada Estática Absoluta
Memória Principal
CÓDIGO ABSOLUTO - as referências
e endereços são físicos e absolutos.
Sistema Operacional
C
A
1 Kb
2 Kb
E
B
3 Kb
4 Kb
D
6 Kb
Cap. 5 – Gerência de Memória
Partição 1
2 Kb
Partição 2
5 Kb
São compilados para rodarem nas
partições previamente definidas.
Só rodam na partição onde foram
compilados.
Alocação da partição baseada na
otimização de uso.
Alocação em função do tamanho da
necessidade de memória.
Partição 3
8 Kb
A e C cabem na P1, P2 e P3
B e E não cabem na P1 e
cabem na P2 e P3
D só cabe na P3
14
7
Alocação Contígua
Particionada Estática Relocável
Memória Principal
CÓDIGO RELOCÁVEL – todas as
referências e endereços são
relativos ao início do programa.
Sistema Operacional
Programa C
2 Kb
Podem ser carregados e executados
em qualquer partição.
D
E
6 Kb
3 Kb
Programa A
5 Kb
O Loader recalcula o
endereçamento.
Torna a execução mais flexível.
Programa B
8 Kb
Uso no OS/MFT Multiprogramming
with Fixed Number of Tasks (IBM)
do Mainframe e nos antigos UNIX.
15
Cap. 5 – Gerência de Memória
Alocação Contígua
Particionada Estática
• Tabela de Alocação de Partições
• O SO procura uma partição livre através da tabela de
alocação para determinar a partição de execução.
• Detrmina o tamanho da partição e a ocupação.
Memória Principal
Partição
Tamanho
Livre
1
2 Kb
Não
2
5 Kb
Sim
3
8 Kb
Não
Cap. 5 – Gerência de Memória
Sistema Operacional
1
Programa C
2
Área livre
3
Programa B
16
8
Alocação Particionada Estática
• Proteção
• Limitação de uso – registradores de endereços
• Proteção contra invasão de uso indesejado
Memória Principal
Sistema Operacional
Endereço inicial
Endereço final
17
Cap. 5 – Gerência de Memória
Alocação Particionada Estática
• Fragmentação Interna
• espaços não utilizados da partição na alocação da
memória, são perdidos até o final da execução.
• partição1 = 2 kb
• partição2 = 5 kb
• partição3 = 8 kb
Memória Principal
Sistema Operacional
Programa C
1 Kb
Programa A
D
B
6 Kb
4 Kb
3 Kb
Programa E
5 Kb
Cap. 5 – Gerência de Memória
• programa C = 1 kb
• programa A = 2 kb
• programa E = 3 kb
• Fragmentação Interna
• partição1 = 1 kb
• partição2 = 3 kb
• partição3 = 5 kb
Não serão usadas até o término
da execução de cada partição.
18
9
Alocação Contígua
Particionada Dinâmica
• na Alocação Dinâmica ou Variável, eliminação do conceito de partição
de tamanho fixa.
• cada programa ocupa o espaço necessário tornando este como
partição.
• não ocorre a Fragmentação Interna.
A
E
C
B
2 Kb
3 Kb
1 Kb
4 Kb
Memória Principal
Memória Principal
Sistema Operacional
Sistema Operacional
Programa B
4 Kb
Programa C
1 Kb
Programa E
3 Kb
Programa A
2 Kb
15 Kb
5 Kb
19
Cap. 5 – Gerência de Memória
Alocação Contígua
Particionada Dinâmica
• Fragmentação Externa
•
Ocorre ao término de cada programa na Alocação Contígua
Particionada Dinâmica, deixando espaços insuficientes para carga
de outro programa.
Fragmentação Externa
Espaço não utilizado
O programa D tem 6 kb,
espaço insuficiente nas
fragmentações externas
de 4 kb ou 3 kb
Cap. 5 – Gerência de Memória
20
10
Alocação Contígua
Particionada Dinâmica
• Solução para a Fragmentação Externa
Memória Principal
Memória Principal
Sistema Operacional
Sistema Operacional
4 Kb
8 Kb
Programa C
3 Kb
Programa A
Programa A
5 Kb
5 Kb
• Solução 1: reunião dos espaços adjacentes liberados quando o
programa C terminar, produzindo área livre maior de 8 Kb
(4 + 1 + 3)
21
Cap. 5 – Gerência de Memória
Alocação Contígua
Particionada Dinâmica com Relocação
• Solução para a Fragmentação Externa
Memória Principal
Memória Principal
Sistema Operacional
Sistema Operacional
Programa C
4 Kb
Programa A
Relocação das partições
Programa C
Relocação
3 Kb
Programa A
12 Kb
5 Kb
Solução 2: relocação de todas a partições ocupadas eliminando os
espaços entre elas, produzindo uma única área livre contígua.
• reduz o problema de fragmentação porém aumenta complexidade
• Ex.: OS/MVT Multiprogramming with Variable Number of Tasks (IBM)
Cap. 5 – Gerência de Memória
22
11
Alocação Contígua
Particionada Dinâmica
• Envolve a relocação de todas as partições
ocupadas, eliminando todos os espaços entre
elas e criando uma única área livre contígua.
Para que esta solução possa ser implementada, é
necessário que o sistema tenha a capacidade
de mover os diversos programas na memória
principal, ou seja, realizar a alocação
particionada dinâmica com relocação.
23
Cap. 5 – Gerência de Memória
Estratégias de Alocação
• A melhor estratégia de alocação depende de muitos fatores
e condições: tamanho do programa, prioridade de
execução, etc.
• Lista de Áreas Livres
Áreas livres
Tamanho
1
4 Kb
2
5 Kb
3
3 Kb
Memória Principal
Sistema Operacional
Área livre 1
4 Kb
Programa C
Área livre 2
5 Kb
Programa A
Área livre 3
Cap. 5 – Gerência de Memória
3 Kb
24
12
Estratégias de Alocação
• Best-fit
Memór ia Pr inci pal
Sistema Oper aci onal
Sistema Operacional
4 Kb
Pr ogr ama C
Programa C
F
1 Kb
5 Kb
Pr ogr ama A
Programa A
Programa F
3 Kb
Área livre
2 Kb
• escolhe a partição que produza menor fragmentação interna.
• Lista de Áreas Livres ordenado pelo tamanho para diminuir tempo de
busca.
• desvantagem: tendência de aumentar a quantidade de fragmentação
externa de pequeno tamanho, prejudicando as novas alocações.
25
Cap. 5 – Gerência de Memória
Estratégias de Alocação
• Worst-fit
Memór ia Pr incipal
Sistema Operacional
Sistema Oper acional
4 Kb
Pr ogr ama C
F
1 Kb
Programa C
Programa F
Área livre
5 Kb
Pr ogr ama A
4 Kb
Programa A
3 Kb
• escolhe a partição que produza maior Fragmentação Interna
• tendência de utilização de espaços de memória de maior tamanho, sendo
possível a reutilização, diminuindo os problemas de Fragmentação Externa.
• desvantagem: por utilizar os maiores espaços de memória disponíveis, a
fragmentação interna é grande, qdo. executa programas de pequeno porte,
ficando poucas chances para programas maiores.
Cap. 5 – Gerência de Memória
26
13
Estratégias de Alocação
• First-fit
Memór ia Pr incipal
Sistema Operacional
Progr ama F
Sistema Oper acional
Área li vr e
3 Kb
4 Kb
Progr ama C
Pr ogr ama C
F
1 Kb
5 Kb
Progr ama A
Pr ogr ama A
3 Kb
• escolhe a primeira partição livre de tamanho suficiente para carregar o programa.
• Lista de Áreas Livres está ordenada por endereços crescentes.
• utiliza as áreas livres de endereços mais baixos, existe grande chance de obter
grande partição livre nos endereços mais alta.
• É a estratégia mais rápida por consumir menos recursos do sistema.
27
Cap. 5 – Gerência de Memória
SWAPPING
• Swapping (Paginação)
Sistema
Operacional
• Resolver problemas de
insuficiência de memória
principal
Memória Principal
Programa
H
Programa A
Programa B
• Atender processos no
Programa E
“Estado de Espera” da
Programa G
Swap out
Memória
Secundária
B
B
memória livre
• Algorítmo de escolha:
menor chance de execução
no “Estado de Espera (Espera Outswapped)
Memória Principal
Arquivo
de Swap
Sistema
Operacional
Programa A
ou Pronto (Pronto Outswapped)”
Programa H
Swap in
• Loader com Relocação Dinâmica
Programa E
Qdo. Prgm G
terminar
Implementado.
Área Livre
• o Processo de SWAPPING pode ocorrer várias
Vezes para o mesmo programa
Cap. 5 – Gerência de Memória
28
14
SWAPPING
• Relocação Dinâmica
•
•
•
•
•
•
•
Registrador de Relocação recebe o endereço inicial da carga.
Registrador de Relocação + Endereço da instrução = ender. Físico.
O programa pode ser carregado em qualquer posição da memória.
Permite maior compartilhamento da Memória Principal e maior utilização dos
recursos computacionais.
desvantagem: elevado custo do dispositivo de E/S (swap in/out).
Com pouca memória disponível e em situações críticas, o sistema pode ficar
quase que dedicado a Swapping deixando de executar processos residentes.
1960 – IBM OS/360 da IBM e CTSS da MIT.
Registrador de Relocação
Endereço incial
da partição
Instrução
Código de
operação
Endereço
Endereço de
memória
Cap. 5 – Gerência de Memória
29
15
Download

Cap. 09