SlideShare uma empresa Scribd logo
1 de 36
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 1
Arquitetura de SistemasArquitetura de Sistemas
OperacionaisOperacionais
Capítulo 9Capítulo 9
Gerência de MemóriaGerência de Memória
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 2
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 3
Introdução
• Historicamente, a memória principal
sempre foi vista como um recurso escasso
e caro.
• Uma das maiores preocupações dos
projetistas era desenvolver sistemas
operacionais que não ocupassem muita
memória e, ao mesmo tempo,
otimizassem a sua utilização.
• Enquanto nos sistemas
monoprogramáveis a gerência de
memória não é muito complexa, nos
sistemas multiprogramáveis ela se torna
crítica.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 4
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 5
Alocação Contígua Simples
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
• Maneira mais simples: alocação contígua da memória.
• Registrador delimita
as áreas do Sist. Op.
e do usuário
(proteção).
• Uso ineficiente do
espaço, somente um
usuário ocupando-o.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 6
Alocação Contígua Simples
• Proteção - Para proteger esse tipo de acesso, que pode ser
intencional ou não, alguns sistemas implementam proteção
através de um registrador que delimita as áreas do SO e
do usuário.
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 7
Alocação Contígua Simples
• Subutilização 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
P r o g r a m a
d o u s u á r i o
Á r e a l i v r e
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 8
ArquiteturadeSistemasOperacionais–Machado/Maia
Técnica de Overlay
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, usando uma mesma área de
memória. Essa técnica é chamada de overlay.
• Considere um programa que tenha três módulos: um
principal, um de cadastramento e outro de impressão, sendo
os módulos de cadastramento e impressão independentes.
• Esta independência significa que quando um dos módulos
estiver na memória para execução, o outro não precisa
necessariamente estar presente também.
• O módulo principal é comum aos dois módulos, logo, deve
permanecer na memória durante toda a execução do
programa.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 9
ASO–Machado/Maia–complem.porSidneyLucena(UNIRIO)
Técnica de Overlay
• 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.
• Áreas de overlay
definidas pelo
programador.
• Expande limites da
memória principal.
• Não possui
compartilhamento
por usuário.
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 10
ArquiteturadeSistemasOperacionais–Machado/Maia
Técnica de Overlay
Técnica de Overlay
• A definição das áreas de overlay é função do
programador da aplicação, através de
comandos específicos da linguagem de
programação utilizada.
• O tamanho de uma área de overlay é
estabelecido a partir do tamanho do maior
módulo.
• A técnica de overlay tem a vantagem de
permitir ao programador expandir os limites
da memória principal.
• O uso desta técnica exige cuidado pois pode
trazer problemas devido à possibilidade de
transferência excessiva de módulos entre a
memória principal e a secundária.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 11
ArquiteturadeSistemasOperacionais–Machado/Maia
Alocação Particionada Estática
• Nos primeiros sistemas multiprogramáveis, a
memória era dividida em pedaços de
tamanho fixo, chamados partições.
• O tamanho das partições, estabelecido na
fase de inicialização do sistema, era definido
em função do tamanho dos programas a
serem executados no ambiente.
• Sempre que fosse necessário a alteração de
tamanho de uma partição, o sistema deveria
ser desativado e reinicializado com uma nova
configuração.
• Este tipo é conhecido como alocação
particionada estática ou fixa.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 12
ASO–Machado/Maia–complem.porSidneyLucena(UNIRIO)
Alocação Particionada Estática
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 1P a r t i ç ã o
T a b e l a d e p a r t i ç õ e s
T a m a n h o
1 2 K b
2 5 K b
3 8 K b
P a r t i ç ã o 2
P a 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 t a d o s :
AE
3 K b
D
6 K b
C
1 K b
B
4 K b 2 K b
• Memória é dividida em partições fixas, cada processo ocupará
uma determinada partição estabelecida na inicialização do
sistema.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 13
Alocação Particionada Estática
Alocação Particionada Estática Absoluta
• Inicialmente, os programas só podiam ser carregados e
executados em apenas uma partição específica mesmo
que outras estivessem disponíveis.
• Esta limitação se devia aos compiladores e montadores,
que geravam apenas código absoluto.
• No código absoluto, todas as referências a endereços no
programa são posições físicas na memória principal, ou
seja, o programa só poderia ser carregado a partir do
endereço de memória especificado no seu próprio
código.
• Se, por exemplo, os programas A e B estivessem sendo
executados e a terceira partição estivesse livre, os
programas C e D não poderiam ser processados.
• A esse tipo de gerência chamou-se alocação
particionada estática absoluta.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 14
Alocação Particionada Estática
Absoluta
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
• 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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 15
Alocação Particionada Estática
Alocação Particionada Estática Relocável
• Com a evolução dos compiladores, montadores, linkers e
loaders, o código gerado deixou de ser absoluto e passa
a ser relocável.
• No código relocável, todas as referências a endereços no
programa são relativas ao início do código e não a
endereços físicos de memória.
• Dessa forma, os programas puderam ser executados a
partir de qualquer partição.
• Quando o programa é carregado, o loader calcula todos
os endereços a partir da posição inicial onde o programa
foi alocado.
• Caso os programas A e B terminassem, o programa E
poderia ser executado em qualquer uma das duas
partições.
• Esse tipo de gerência de memória é denominado
alocação particionada estática relocável.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 16
Alocação Particionada Estática
Relocável
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
• 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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 17
Alocação Particionada Estática
Tabela de Alocação de Partições
• Para manter o controle sobre quais partições
estão alocadas, a gerência de memória
mantém uma tabela com o endereço inicial
de cada partição, o seu tamanho, e se está
em uso.
• Sempre que um programa é carregado para
a memória, o sistema percorre a tabela na
tentativa de localizar uma partição livre,
onde o programa possa ser carregado.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 18
Tabela de Alocação de
Partições
• P/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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 19
Alocação Particionada Estática
• Proteção - Nesse esquema de alocação, a proteção baseia-se em
dois registradores, que indicam os limites inferior e superior da
partição onde o programa está sendo executado. Caso o
programa tente acessar uma posição de memória fora dos limites
definidos pelos registradores, ele é interrompido e uma
mensagem de violação de acesso é gerada pelo SO.
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 20
Alocação Particionada Estática
• Fragmentação Interna - Tanto nos sistemas de alocação absoluta
como nos de alocação relocável, os programas, normalmente,
não preenchem totalmente as partições onde são carregados.
Esse tipo de problema, decorrente da alocação fixa das partições,
é conhecido como fragmentação interna.
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 21
Alocação Particionada Dinâmica
• A alocação particionada estática, vista anteriormente,
deixou evidente a necessidade de uma nova forma de
gerência de memória, onde o problema da
fragmentação interna fosse reduzido e,
conseqüentemente, o grau de compartilhamento da
memória aumentado.
• Na alocação particionada dinâmica ou variável, foi
eliminado o conceito de partições de tamanho fixo.
Neste esquema, cada programa usaria o espaço
necessário, tornando essa área sua partição.
• Como os programas usam apenas o espaço de que
necessitam, no esquema de alocação particionada
dinâmica o problema da fragmentação interna não
ocorre.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 22
Alocação Particionada Dinâmica
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
• Alocação Particionada Dinâmica
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 23
Alocação Particionada Dinâmica
• Fragmentação Externa - Porém, um tipo diferente de fragmentação
começará a ocorrer, quando os programas forem terminando e deixando
espaços cada vez menores na memória, não permitindo o ingresso de
novos programas. No caso, mesmo existindo 12 KB livres de memória, o
programa D, que necessita de 6 KB de espaço, não poderá ser carregado
para execução. Este tipo de problema é chamado 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
D
6 K b
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 24
Alocação Particionada Dinâmica
• Solução para a Fragmentação Externa
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 25
Alocação Particionada Dinâmica
• Solução para a Fragmentação Externa
(relocação dinâmica)
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 26
Estratégias de Alocação
• Os SOs implementam, basicamente, três estratégias para determinar
em qual área livre um programa será carregado para execução.
Essas estratégias tentam evitar ou diminuir o problema da
fragmentação externa.
– Best-fit – nesta, a melhor partição é escolhida, ou seja, aquela em que o
programa deixa o menor espaço sem utilização (Fig. 9.16a). Neste
algoritmo, a lista de áreas livres está ordenada por tamanho, diminuindo o
tempo de busca por uma área desocupada. Uma desvantagem deste
método é que, como é alocada a partição que deixa a menor área livre, a
tendência é que cada vez mais a memória fique com pequenas áreas não-
contíguas, aumentando o problema da fragmentação.
– Worst-fit – aqui, a pior partição é escolhida, ou seja, aquela em que o
programa deixa o maior espaço sem utilização (Fig. 9.16b). Apesar de usar
as maiores partições, esta técnica deixa espaços livres maiores que
permitem a um maior número de programas usar a memória, diminuindo
o problema da fragmentação.
– First-fit – a primeira partição livre de tamanho suficiente para carregar o
programa é escolhida (Fig. 9.16c). Neste algoritmo, a lista de áreas livres
está ordenada crescentemente por endereços. Como o método tenta
primeiro utilizar as áreas livres de endereços mais baixos, existe uma
grande chance de se obter uma grande partição livre nos endereços de
memória mais altos. Das três estratégias apresentadas, a first-fit é a mais
rápida, consumindo menos recursos do sistema.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 27
Estratégias de Alocação
• Lista de Áreas Livres
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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 28
Estratégias de Alocação -
Best-Fit
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
(a ) B e st- fit
• Partição escolhida é aquela em que o programa deixa o menor
espaço sem utilização.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 29
Estratégias de Alocação
-Worst-Fit
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
( b ) W o r s t- f i t
• Partição escolhida é aquela em que o programa deixa o maior
espaço sem utilização.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 30
Estratégias de Alocação -
First-Fit
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
(c)First-fit
• Partição escolhida é primeira livre de tamanho suficiente
para carregar o programa.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 31
Swapping
• 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.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 32
Swapping
• Mesmo com o aumento da eficiência da multiprogramação e,
particularmente, da gerência de memória, muitas vezes um
programa não podia ser executado por falta de uma partição
livre disponível.
• A técnica de swapping foi introduzida para contornar o
problema da insuficiência de memória principal.
• Em todos os esquema apresentados anteriormente, um
processo permanecia na memória principal até o final da sua
execução, inclusive nos momentos em que esperava por um
evento, como uma operação de leitura ou gravação.
• O swapping é uma técnica aplicada à gerência de memória
para programas que esperam por memória livre para serem
executados.
• Neste caso, o sistema escolhe um processo residente, que é
transferido da memória principal para a secundária (swap
out), geralmente disco.
• Posteriormente, o processo é carregado de volta da memória
secundária para a principal (swap in) e pode continuar sua
execução como se nada tivesse acontecido.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 33
Swapping
• Para que a técnica de swapping seja
implementada, é essencial que o sistema
ofereça um loader que implemente a
relocação dinâmica de programas.
• Um loader relocável que não ofereça esta
facilidade permite que um programa seja
colocado em qualquer posição de memória,
porém a relocação é realizada apenas no
momento do carregamento.
• No caso do swapping, um programa pode
sair e voltar diversas vezes para a memória,
sendo necessário que a relocação seja
realizada pelo loader a cada carregamento.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 34
Swapping
• 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
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 35
Swapping
• A relocação dinâmica é realizada através de um registrado
especial denominado registrador de relocação.
• No momento em que o programa é carregado na memória, o
registrador recebe o endereço inicial da posição de memória
que o programa irá ocupar.
• Toda vez que ocorrer a referência a algum endereço, o
endereço contido na instrução será somado ao conteúdo do
registrador gerando, assim, o endereço físico.
• Dessa forma, um programa pode ser carregado em qualquer
posição de memória.
• O conceito de swapping permite uma maior compartilhamento
da memória principal e, consequentemente, maior uso dos
recursos do sistema computacional.
• Seu maior problema é o elevado custo das operações de
entrada/saída (swap in/ou).
• Em situações críticas, quando há pouca memória, disponível,
o sistema pode ficar quase que dedicado à execução de
swapping, deixando de realizar outras tarefas e impedindo a
execução de processos residentes.
ArquiteturadeSistemasOperacionais–Machado/Maia
Gerência de Memória 36
Swapping
• Relocação Dinâmica
E n d e r e ç o d e
m e m ó r i a
E n d e r e ç o i n c i a l
d a p a r t i ç ã o
R e g i s t r a d o r d e R e l o c a ç ã o I n s t r u ç ã o
E n d e r e ç o
C ó d i g o d e
o p e r a ç ã o

Mais conteúdo relacionado

Mais procurados

Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoClaudio Martins
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Jogo da forca - Diagrama de Classe
Jogo da forca - Diagrama de ClasseJogo da forca - Diagrama de Classe
Jogo da forca - Diagrama de ClasseDaniela Carvalho
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Leinylson Fontinele
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Lista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosLista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosTárcio Sales
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
Apostila 8 sistema de arquivos
Apostila 8   sistema de arquivosApostila 8   sistema de arquivos
Apostila 8 sistema de arquivosPaulo Fonseca
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 

Mais procurados (20)

Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de função
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Jogo da forca - Diagrama de Classe
Jogo da forca - Diagrama de ClasseJogo da forca - Diagrama de Classe
Jogo da forca - Diagrama de Classe
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Visualg
VisualgVisualg
Visualg
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Lista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosLista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e Autômatos
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Apostila 8 sistema de arquivos
Apostila 8   sistema de arquivosApostila 8   sistema de arquivos
Apostila 8 sistema de arquivos
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 

Destaque

Destaque (20)

Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 
Arquitetura 7
Arquitetura 7Arquitetura 7
Arquitetura 7
 
Arquitetura 4
Arquitetura 4Arquitetura 4
Arquitetura 4
 
Arquitetura 8
Arquitetura 8Arquitetura 8
Arquitetura 8
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Arquitetura 8 1
Arquitetura 8 1Arquitetura 8 1
Arquitetura 8 1
 
Arquitetura 10
Arquitetura 10Arquitetura 10
Arquitetura 10
 
Arquitetura 6 1
Arquitetura 6   1Arquitetura 6   1
Arquitetura 6 1
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Arquitetura 8 1
Arquitetura 8 1Arquitetura 8 1
Arquitetura 8 1
 
Arquitetura 8 1 - 2012.2
Arquitetura 8   1 - 2012.2Arquitetura 8   1 - 2012.2
Arquitetura 8 1 - 2012.2
 
Gerência de Memória: Memória Virtual
Gerência de Memória: Memória VirtualGerência de Memória: Memória Virtual
Gerência de Memória: Memória Virtual
 
Arquitetura 6 exercícios
Arquitetura 6   exercíciosArquitetura 6   exercícios
Arquitetura 6 exercícios
 
Arquitetura 6
Arquitetura 6Arquitetura 6
Arquitetura 6
 
Arquitetura 3
Arquitetura 3Arquitetura 3
Arquitetura 3
 
Arquitetura digital works
Arquitetura   digital worksArquitetura   digital works
Arquitetura digital works
 
Arquitetura 5
Arquitetura 5Arquitetura 5
Arquitetura 5
 

Semelhante a Apostila 6 gerência de memória

Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memóriaelliando dias
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptBrennoPimenta
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memóriaMaria194536
 
Apresentação Sistemas Operacionais
Apresentação Sistemas OperacionaisApresentação Sistemas Operacionais
Apresentação Sistemas OperacionaisCleudian Andrade
 
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema OperacionalImplementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema OperacionalCleber Fonseca
 
Memórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamentoMemórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamentoJerônimo Medina Madruga
 
Sistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareSistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareCharles Fortes
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas OperacionaisLucas Aires Araújo
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsFernando Mercês
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreHelton Ritter
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 

Semelhante a Apostila 6 gerência de memória (20)

Gestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptxGestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptx
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memória
 
Arquitetura 8 2
Arquitetura 8 2Arquitetura 8 2
Arquitetura 8 2
 
Introdução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.pptIntrodução a Lógica e Conceitos de Programação.ppt
Introdução a Lógica e Conceitos de Programação.ppt
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Aula revisão ok
Aula revisão       okAula revisão       ok
Aula revisão ok
 
7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória7 – mecanismos de gestão de memória
7 – mecanismos de gestão de memória
 
Apresentação Sistemas Operacionais
Apresentação Sistemas OperacionaisApresentação Sistemas Operacionais
Apresentação Sistemas Operacionais
 
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema OperacionalImplementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
 
Arquitetura 8
Arquitetura 8Arquitetura 8
Arquitetura 8
 
Memórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamentoMemórias: Uma visão geral sobre dispositivos de armazenamento
Memórias: Uma visão geral sobre dispositivos de armazenamento
 
Progeto pim ii
Progeto pim iiProgeto pim ii
Progeto pim ii
 
aula_05.pdf
aula_05.pdfaula_05.pdf
aula_05.pdf
 
Sistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e SoftwareSistemas Operacionais - Aula 3 - Hardware e Software
Sistemas Operacionais - Aula 3 - Hardware e Software
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas Operacionais
 
Basico sobre clp
Basico sobre clpBasico sobre clp
Basico sobre clp
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas Multicore
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 

Mais de Paulo Fonseca

Arquitetura 6 exercícios
Arquitetura 6   exercíciosArquitetura 6   exercícios
Arquitetura 6 exercíciosPaulo Fonseca
 
Arquitetura 4 complemento de 2
Arquitetura 4   complemento de 2Arquitetura 4   complemento de 2
Arquitetura 4 complemento de 2Paulo Fonseca
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - novaPaulo Fonseca
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Apostila 2 conceitos de hardware e software
Apostila 2   conceitos de hardware e softwareApostila 2   conceitos de hardware e software
Apostila 2 conceitos de hardware e softwarePaulo Fonseca
 
Cabeamento 5 componentes do cabeamento estruturado
Cabeamento 5   componentes do cabeamento estruturadoCabeamento 5   componentes do cabeamento estruturado
Cabeamento 5 componentes do cabeamento estruturadoPaulo Fonseca
 
Cabeamento 3 limitação de sinais nos meios de transmissão
Cabeamento 3   limitação de sinais nos meios de transmissãoCabeamento 3   limitação de sinais nos meios de transmissão
Cabeamento 3 limitação de sinais nos meios de transmissãoPaulo Fonseca
 
Cabeamento 2 visão geral do cabeamento estuturado
Cabeamento 2   visão geral do cabeamento estuturadoCabeamento 2   visão geral do cabeamento estuturado
Cabeamento 2 visão geral do cabeamento estuturadoPaulo Fonseca
 
Cabeamento 1 introdução - normas - categorias
Cabeamento 1   introdução - normas - categoriasCabeamento 1   introdução - normas - categorias
Cabeamento 1 introdução - normas - categoriasPaulo Fonseca
 
Cabeamento 4 meios de transmissão
Cabeamento 4   meios de transmissãoCabeamento 4   meios de transmissão
Cabeamento 4 meios de transmissãoPaulo Fonseca
 

Mais de Paulo Fonseca (18)

Arquitetura 6 1
Arquitetura 6 1Arquitetura 6 1
Arquitetura 6 1
 
Arquitetura 6
Arquitetura 6Arquitetura 6
Arquitetura 6
 
Arquitetura 6 exercícios
Arquitetura 6   exercíciosArquitetura 6   exercícios
Arquitetura 6 exercícios
 
Arquitetura 5
Arquitetura 5Arquitetura 5
Arquitetura 5
 
Arquitetura 4 complemento de 2
Arquitetura 4   complemento de 2Arquitetura 4   complemento de 2
Arquitetura 4 complemento de 2
 
Arquitetura 2
Arquitetura 2Arquitetura 2
Arquitetura 2
 
Arquitetura 9
Arquitetura 9Arquitetura 9
Arquitetura 9
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Apostila 2 conceitos de hardware e software
Apostila 2   conceitos de hardware e softwareApostila 2   conceitos de hardware e software
Apostila 2 conceitos de hardware e software
 
Cabeamento 5 componentes do cabeamento estruturado
Cabeamento 5   componentes do cabeamento estruturadoCabeamento 5   componentes do cabeamento estruturado
Cabeamento 5 componentes do cabeamento estruturado
 
Cabeamento 3 limitação de sinais nos meios de transmissão
Cabeamento 3   limitação de sinais nos meios de transmissãoCabeamento 3   limitação de sinais nos meios de transmissão
Cabeamento 3 limitação de sinais nos meios de transmissão
 
Cabeamento 2 visão geral do cabeamento estuturado
Cabeamento 2   visão geral do cabeamento estuturadoCabeamento 2   visão geral do cabeamento estuturado
Cabeamento 2 visão geral do cabeamento estuturado
 
Cabeamento 1 introdução - normas - categorias
Cabeamento 1   introdução - normas - categoriasCabeamento 1   introdução - normas - categorias
Cabeamento 1 introdução - normas - categorias
 
Cabeamento 4 meios de transmissão
Cabeamento 4   meios de transmissãoCabeamento 4   meios de transmissão
Cabeamento 4 meios de transmissão
 
Arquitetura 9
Arquitetura 9Arquitetura 9
Arquitetura 9
 
Arquitetura 8 3
Arquitetura 8 3Arquitetura 8 3
Arquitetura 8 3
 

Apostila 6 gerência de memória

  • 1. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 1 Arquitetura de SistemasArquitetura de Sistemas OperacionaisOperacionais Capítulo 9Capítulo 9 Gerência de MemóriaGerência de Memória
  • 2. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 2 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
  • 3. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 3 Introdução • Historicamente, a memória principal sempre foi vista como um recurso escasso e caro. • Uma das maiores preocupações dos projetistas era desenvolver sistemas operacionais que não ocupassem muita memória e, ao mesmo tempo, otimizassem a sua utilização. • Enquanto nos sistemas monoprogramáveis a gerência de memória não é muito complexa, nos sistemas multiprogramáveis ela se torna crítica.
  • 4. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 4 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
  • 5. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 5 Alocação Contígua Simples 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 • Maneira mais simples: alocação contígua da memória. • Registrador delimita as áreas do Sist. Op. e do usuário (proteção). • Uso ineficiente do espaço, somente um usuário ocupando-o.
  • 6. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 6 Alocação Contígua Simples • Proteção - Para proteger esse tipo de acesso, que pode ser intencional ou não, alguns sistemas implementam proteção através de um registrador que delimita as áreas do SO e do usuário. 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
  • 7. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 7 Alocação Contígua Simples • Subutilização 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 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. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 8 ArquiteturadeSistemasOperacionais–Machado/Maia Técnica de Overlay 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, usando uma mesma área de memória. Essa técnica é chamada de overlay. • Considere um programa que tenha três módulos: um principal, um de cadastramento e outro de impressão, sendo os módulos de cadastramento e impressão independentes. • Esta independência significa que quando um dos módulos estiver na memória para execução, o outro não precisa necessariamente estar presente também. • O módulo principal é comum aos dois módulos, logo, deve permanecer na memória durante toda a execução do programa.
  • 9. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 9 ASO–Machado/Maia–complem.porSidneyLucena(UNIRIO) Técnica de Overlay • 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. • Áreas de overlay definidas pelo programador. • Expande limites da memória principal. • Não possui compartilhamento por usuário. 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
  • 10. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 10 ArquiteturadeSistemasOperacionais–Machado/Maia Técnica de Overlay Técnica de Overlay • A definição das áreas de overlay é função do programador da aplicação, através de comandos específicos da linguagem de programação utilizada. • O tamanho de uma área de overlay é estabelecido a partir do tamanho do maior módulo. • A técnica de overlay tem a vantagem de permitir ao programador expandir os limites da memória principal. • O uso desta técnica exige cuidado pois pode trazer problemas devido à possibilidade de transferência excessiva de módulos entre a memória principal e a secundária.
  • 11. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 11 ArquiteturadeSistemasOperacionais–Machado/Maia Alocação Particionada Estática • Nos primeiros sistemas multiprogramáveis, a memória era dividida em pedaços de tamanho fixo, chamados partições. • O tamanho das partições, estabelecido na fase de inicialização do sistema, era definido em função do tamanho dos programas a serem executados no ambiente. • Sempre que fosse necessário a alteração de tamanho de uma partição, o sistema deveria ser desativado e reinicializado com uma nova configuração. • Este tipo é conhecido como alocação particionada estática ou fixa.
  • 12. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 12 ASO–Machado/Maia–complem.porSidneyLucena(UNIRIO) Alocação Particionada Estática 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 1P a r t i ç ã o T a b e l a d e p a r t i ç õ e s T a m a n h o 1 2 K b 2 5 K b 3 8 K b P a r t i ç ã o 2 P a 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 t a d o s : AE 3 K b D 6 K b C 1 K b B 4 K b 2 K b • Memória é dividida em partições fixas, cada processo ocupará uma determinada partição estabelecida na inicialização do sistema.
  • 13. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 13 Alocação Particionada Estática Alocação Particionada Estática Absoluta • Inicialmente, os programas só podiam ser carregados e executados em apenas uma partição específica mesmo que outras estivessem disponíveis. • Esta limitação se devia aos compiladores e montadores, que geravam apenas código absoluto. • No código absoluto, todas as referências a endereços no programa são posições físicas na memória principal, ou seja, o programa só poderia ser carregado a partir do endereço de memória especificado no seu próprio código. • Se, por exemplo, os programas A e B estivessem sendo executados e a terceira partição estivesse livre, os programas C e D não poderiam ser processados. • A esse tipo de gerência chamou-se alocação particionada estática absoluta.
  • 14. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 14 Alocação Particionada Estática Absoluta 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 • 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.
  • 15. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 15 Alocação Particionada Estática Alocação Particionada Estática Relocável • Com a evolução dos compiladores, montadores, linkers e loaders, o código gerado deixou de ser absoluto e passa a ser relocável. • No código relocável, todas as referências a endereços no programa são relativas ao início do código e não a endereços físicos de memória. • Dessa forma, os programas puderam ser executados a partir de qualquer partição. • Quando o programa é carregado, o loader calcula todos os endereços a partir da posição inicial onde o programa foi alocado. • Caso os programas A e B terminassem, o programa E poderia ser executado em qualquer uma das duas partições. • Esse tipo de gerência de memória é denominado alocação particionada estática relocável.
  • 16. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 16 Alocação Particionada Estática Relocável 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 • 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
  • 17. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 17 Alocação Particionada Estática Tabela de Alocação de Partições • Para manter o controle sobre quais partições estão alocadas, a gerência de memória mantém uma tabela com o endereço inicial de cada partição, o seu tamanho, e se está em uso. • Sempre que um programa é carregado para a memória, o sistema percorre a tabela na tentativa de localizar uma partição livre, onde o programa possa ser carregado.
  • 18. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 18 Tabela de Alocação de Partições • P/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
  • 19. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 19 Alocação Particionada Estática • Proteção - Nesse esquema de alocação, a proteção baseia-se em dois registradores, que indicam os limites inferior e superior da partição onde o programa está sendo executado. Caso o programa tente acessar uma posição de memória fora dos limites definidos pelos registradores, ele é interrompido e uma mensagem de violação de acesso é gerada pelo SO. 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
  • 20. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 20 Alocação Particionada Estática • Fragmentação Interna - Tanto nos sistemas de alocação absoluta como nos de alocação relocável, os programas, normalmente, não preenchem totalmente as partições onde são carregados. Esse tipo de problema, decorrente da alocação fixa das partições, é conhecido como fragmentação interna. 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
  • 21. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 21 Alocação Particionada Dinâmica • A alocação particionada estática, vista anteriormente, deixou evidente a necessidade de uma nova forma de gerência de memória, onde o problema da fragmentação interna fosse reduzido e, conseqüentemente, o grau de compartilhamento da memória aumentado. • Na alocação particionada dinâmica ou variável, foi eliminado o conceito de partições de tamanho fixo. Neste esquema, cada programa usaria o espaço necessário, tornando essa área sua partição. • Como os programas usam apenas o espaço de que necessitam, no esquema de alocação particionada dinâmica o problema da fragmentação interna não ocorre.
  • 22. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 22 Alocação Particionada Dinâmica 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 • Alocação Particionada Dinâmica
  • 23. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 23 Alocação Particionada Dinâmica • Fragmentação Externa - Porém, um tipo diferente de fragmentação começará a ocorrer, quando os programas forem terminando e deixando espaços cada vez menores na memória, não permitindo o ingresso de novos programas. No caso, mesmo existindo 12 KB livres de memória, o programa D, que necessita de 6 KB de espaço, não poderá ser carregado para execução. Este tipo de problema é chamado 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 D 6 K b
  • 24. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 24 Alocação Particionada Dinâmica • Solução para a Fragmentação Externa 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
  • 25. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 25 Alocação Particionada Dinâmica • Solução para a Fragmentação Externa (relocação dinâmica) 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
  • 26. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 26 Estratégias de Alocação • Os SOs implementam, basicamente, três estratégias para determinar em qual área livre um programa será carregado para execução. Essas estratégias tentam evitar ou diminuir o problema da fragmentação externa. – Best-fit – nesta, a melhor partição é escolhida, ou seja, aquela em que o programa deixa o menor espaço sem utilização (Fig. 9.16a). Neste algoritmo, a lista de áreas livres está ordenada por tamanho, diminuindo o tempo de busca por uma área desocupada. Uma desvantagem deste método é que, como é alocada a partição que deixa a menor área livre, a tendência é que cada vez mais a memória fique com pequenas áreas não- contíguas, aumentando o problema da fragmentação. – Worst-fit – aqui, a pior partição é escolhida, ou seja, aquela em que o programa deixa o maior espaço sem utilização (Fig. 9.16b). Apesar de usar as maiores partições, esta técnica deixa espaços livres maiores que permitem a um maior número de programas usar a memória, diminuindo o problema da fragmentação. – First-fit – a primeira partição livre de tamanho suficiente para carregar o programa é escolhida (Fig. 9.16c). Neste algoritmo, a lista de áreas livres está ordenada crescentemente por endereços. Como o método tenta primeiro utilizar as áreas livres de endereços mais baixos, existe uma grande chance de se obter uma grande partição livre nos endereços de memória mais altos. Das três estratégias apresentadas, a first-fit é a mais rápida, consumindo menos recursos do sistema.
  • 27. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 27 Estratégias de Alocação • Lista de Áreas Livres 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
  • 28. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 28 Estratégias de Alocação - Best-Fit 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 (a ) B e st- fit • Partição escolhida é aquela em que o programa deixa o menor espaço sem utilização.
  • 29. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 29 Estratégias de Alocação -Worst-Fit 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 ( b ) W o r s t- f i t • Partição escolhida é aquela em que o programa deixa o maior espaço sem utilização.
  • 30. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 30 Estratégias de Alocação - First-Fit 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 (c)First-fit • Partição escolhida é primeira livre de tamanho suficiente para carregar o programa.
  • 31. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 31 Swapping • 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.
  • 32. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 32 Swapping • Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível. • A técnica de swapping foi introduzida para contornar o problema da insuficiência de memória principal. • Em todos os esquema apresentados anteriormente, um processo permanecia na memória principal até o final da sua execução, inclusive nos momentos em que esperava por um evento, como uma operação de leitura ou gravação. • O swapping é uma técnica aplicada à gerência de memória para programas que esperam por memória livre para serem executados. • Neste caso, o sistema escolhe um processo residente, que é transferido da memória principal para a secundária (swap out), geralmente disco. • Posteriormente, o processo é carregado de volta da memória secundária para a principal (swap in) e pode continuar sua execução como se nada tivesse acontecido.
  • 33. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 33 Swapping • Para que a técnica de swapping seja implementada, é essencial que o sistema ofereça um loader que implemente a relocação dinâmica de programas. • Um loader relocável que não ofereça esta facilidade permite que um programa seja colocado em qualquer posição de memória, porém a relocação é realizada apenas no momento do carregamento. • No caso do swapping, um programa pode sair e voltar diversas vezes para a memória, sendo necessário que a relocação seja realizada pelo loader a cada carregamento.
  • 34. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 34 Swapping • 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
  • 35. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 35 Swapping • A relocação dinâmica é realizada através de um registrado especial denominado registrador de relocação. • No momento em que o programa é carregado na memória, o registrador recebe o endereço inicial da posição de memória que o programa irá ocupar. • Toda vez que ocorrer a referência a algum endereço, o endereço contido na instrução será somado ao conteúdo do registrador gerando, assim, o endereço físico. • Dessa forma, um programa pode ser carregado em qualquer posição de memória. • O conceito de swapping permite uma maior compartilhamento da memória principal e, consequentemente, maior uso dos recursos do sistema computacional. • Seu maior problema é o elevado custo das operações de entrada/saída (swap in/ou). • Em situações críticas, quando há pouca memória, disponível, o sistema pode ficar quase que dedicado à execução de swapping, deixando de realizar outras tarefas e impedindo a execução de processos residentes.
  • 36. ArquiteturadeSistemasOperacionais–Machado/Maia Gerência de Memória 36 Swapping • Relocação Dinâmica E n d e r e ç o d e m e m ó r i a E n d e r e ç o i n c i a l d a p a r t i ç ã o R e g i s t r a d o r d e R e l o c a ç ã o I n s t r u ç ã o E n d e r e ç o C ó d i g o d e o p e r a ç ã o