Escolar Documentos
Profissional Documentos
Cultura Documentos
Ope r a cion a is
Fa bia n o Ut iya m a
Ca pít u lo 9
Ge r ê n cia de M e m ór ia
9/1
I n t r odu çã o
• Nos sistemas monoprogramáveis a
gerência de memória não é muito
complexa
• Nos sistemas multiprogramáveis ela 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
9/2
Fu n çõe s Bá sica s
• Em geral, programas são armazenados
em memórias secundárias, como disco
ou fita, por ser um meio não-volátil,
abundante e de baixo custo
• Como o processador somente executa
instruções localizadas na memória
principal, o sistema operacional deve
sempre transferir programas da
memória secundária para a memória
principal antes de serem executados
9/3
Fu n çõe s Bá sica s
• A gerência de memória deve tentar
manter na memória principal o maior
número de processos residentes,
permitindo maximizar o
compartilhamento do processador e
demais recursos computacionais
• Mesmo na ausência de espaço livre, o
sistema deve permitir que novos
processos sejam aceitos e executados
(swapping)
9/4
Fu n çõe s Bá sica s
• A gerência de memória deve permitir a
execução de programas que sejam
maiores que a memória física
disponível
• Implementada através de técnicas
como:
– Overlay
– Memória virtual
9/5
Fu n çõe s Bá sica s
• Em um ambiente de
multiprogramação, o sistema
operacional deve proteger as áreas de
memória ocupadas por cada processo,
além da área onde reside o próprio
sistema
9/6
Aloca çã o Con t ígu a Sim ple s
• Foi implementada nos primeiros
sistemas operacionais, e ainda está
presente em alguns sistemas
monoprogramáveis
• A memória principal é subdividida em
duas áreas:
– Uma para o sistema operacional
– Outra para o programa do usuário
9/7
Aloca çã o Con t ígu a Sim ple s
• O programador deve desenvolver suas
aplicações preocupado, apenas, em
não ultrapassar o espaço de memória
disponível
• Como o usuário tem acesso a toda
memória principal, alguns sistemas
implementam proteção através de um
registrador que delimita as áreas do
sistema operacional e do usuário
• Apenas um usuário dispõe dos recursos
9/8
Aloca çã o Con t ígu a Sim ple s
Memória Principal
Sistema
Operacional
Área para
programa
9/9
Aloca çã o Con t ígu a Sim ple s
Programa
Área para do usuário
programa
Área livre
9/10
Té cn ica s de Ove r la y
• O programa alocada na memória é
dividido em módulos, de forma que
seja possível a execução independente
de cada módulo, utilizando uma
mesma área de memória
• Essa técnica é chamada de overlay
9/11
Té cn ica de Ove r la y
Memória Principal
2 Kb Sistema Operacional
Cadastramento
3 Kb Módulo principal
4 Kb
2 Kb
1 Kb Área livre
Área não 2 Kb
utilizada
9/12
Té cn ica de Ove r la y
• Pode trazer implicações no
desempenho das aplicações, devido à
possibilidade de transferência
excessiva dos módulos entre a
memória principal e secundária
9/13
Aloca çã o Pa r t icion a da Est á t ica
• 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 que executariam no
ambiente
9/14
Aloca çã o Pa r t icion a da Est á t ica
• Sempre que fosse necessária a
alteração do tamanho de uma partição,
o sistema deveria ser desativado e
reinicializado com uma nova
configuração
• Esse tipo de gerência de memória é
conhecido como alocação particionada
estática ou fixa
9/15
Alocação Particionada Estática
Memória Principal
1 2 Kb
Partição 2 5 Kb
2 5 Kb
3 8 Kb
3 Kb 6 Kb 1 Kb 4 Kb 2 Kb
9/16
Aloca çã o Pa r t icion a da Est á t ica
Absolu t a
• Inicialmente, os programas só podiam
ser carregados e executados em
apenas uma partição específica,
mesmo se outras estivessem
disponíveis
• A esse tipo de gerência de memória
chamou-se alocação particionada
estática absoluta
9/17
Aloca çã o Pa r t icion a da Est á t ica
Absolu t a
Memória Principal
Sistema Operacional
C A Partição 1 2 Kb
1 Kb 2 Kb
E B Partição 2 5 Kb
3 Kb 4 Kb
D Partição 3 8 Kb
6 Kb
9/18
Aloca çã o Pa r t icion a da Est á t ica
Re locá ve l
• No código relocável, todos os
programas podem ser executados a
partir de qualquer partição
9/19
Aloca çã o Pa r t icion a da Est á t ica
Re locá ve l
Memória Principal
Sistema Operacional
Programa C 2 Kb
D E Programa A 5 Kb
6 Kb 3 Kb
Programa B 8 Kb
9/20
Ta be la de Aloca çã o de Pa r t içõe s
• 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, seu
tamanho e se está em uso
9/21
Ta be la de Aloca çã o de
Pa r t içõe s
Memória Principal
1 2 Kb Não 1 Programa C
2 5 Kb Sim
2 Área livre
3 8 Kb Não
3 Programa B
9/22
Pr ot e çã o n a Aloca çã o Pa r t icion a da
• Neste esquema de alocação de
memória a proteção baseia-se em dois
registradores, que indicam os limites
inferior e superior da partição onde o
programa está sendo executado
9/23
Pr ot e çã o n a Aloca çã o
Pa r t icion a da
Memória Principal
Endereço final
9/24
Fr a gm e n t a çã o I n t e r n a
• Tanto nos sistemas de alocação
absoluta quanto nos de alocação
relocável os programas, normalmente,
não preenchem totalmente as partições
onde são carregados
• Este tipo de problema, decorrente da
alocação fixa das partições, é
conhecido como fragmentação interna
• Exemplo de sistema operacional que
implementou esse tipo de gerência de
memória é o OS/MFT da IBM
9/25
Fr a gm e n t a çã o I n t e r n a
Memória Principal
Sistema Operacional
Programa C
1 Kb
Programa A
D B
6 Kb 4 Kb 3 Kb
Programa E
5 Kb
9/26
Aloca çã o Pa r t icion a da D in â m ica
• Na alocação particionada dinâmica, ou
variável, cada programa utilizaria o
espaço necessário, tornando essa área
sua partição
9/27
Aloca çã o Pa r t icion a da
D in â m ica
Programa B 4 Kb
Programa C 1 Kb
Programa E 3 Kb
A E C B 15 Kb
2 Kb 3 Kb 1 Kb 4 Kb Programa A 2 Kb
5 Kb
9/28
Fr a gm e n t a çã o Ex t e r n a
• Um diferente tipo 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
9/29
Fr a gm e n t a çã o Ex t e r n a
Memória Principal
Sistema Operacional
4 Kb
Programa C
3 Kb
D
6 Kb Programa A
5 Kb
9/30
Solu çã o pa r a a Fr a gm e n t a çã o
Ex t e r n a
Memória Principal Memória Principal
4 Kb
Programa C 8 Kb
3 Kb
Programa A Programa A
5 Kb 5 Kb
9/31
Solu çã o pa r a a Fr a gm e n t a çã o
Ex t e r n a
Memória Principal Memória Principal
4 Kb Programa A
Programa C
Relocação
3 Kb
Programa A 12 Kb
5 Kb
9/32
Aloca çã o Pa r t icion a da D in â m ica
• A realização da relocação dinâmica
reduz em muito o problema da
fragmentação, porém a complexidade
do seu algoritmo e o consumo de
recurso do sistema, como processador
e área em disco, podem torná-la
inviável
• Um exemplo de sistema operacional
que implementou esse tipo de gerência
de memória é o OS/MVT da IBM
9/33
Est r a t é gia s de Aloca çã o de
Pa r t içã o
• Os sistema operacionais implementam,
basicamente, três estratégias para
determinar em qual área livre um
programa será carregado para
execução
• A melhor estratégia depende de uma
série de fatores, sendo o mais
importante o tamanho dos programas
processados no ambiente
9/34
Be st - fit
• A melhor partição é escolhida, ou seja,
aquela em que o programa deixa o
menor espaço sem utilização
• Neste algoritmo, a lista de áreas livres
está ordenada por tamanho,
diminuindo o tempo de busca por uma
área desocupada
9/35
Be st - Fit
Sistema Operacional
Memória Principal
Programa C
Sistema Operacional
4 Kb
Programa C Programa A
Programa F
F
5 Kb Área livre 2 Kb
1 Kb
Programa A
3 Kb
9/36
W or st - fit
• A pior partição é escolhida, ou seja,
aquela em que o programa deixa o
maior espaço sem utilização
9/37
W or st - Fit
Memória Principal
4 Kb
Programa C Programa C
(b) Worst-fit Programa F
F
5 Kb Área livre
1 Kb 4 Kb
Programa A Programa A
3 Kb
9/38
Fir st - fit
• A primeira partição livre de tamanho
suficiente para carregar o programa é
escolhida
• Nesse algoritmo, a lista de áreas livres
está ordenada por endereços
crescentemente
• Das três estratégias apresentadas, a
first-fit é a mais rápida, consumindo
menos recursos do sistema
9/39
Fir st - Fit
Memória Principal
Sistema Operacional
4 Kb
Programa C
F Sistema Operacional
5 Kb
1 Kb Programa F
Área livre 3 Kb
Programa A
Programa C
3 Kb
Programa A
9/40
Sw a ppin g
• A técnica de swapping foi introduzida
para contornar o problema da
insuficiência de memória principal
• O algoritmo de escolha do processo a
ser retirado da memória principal deve
priorizar aquele com menores chances
de ser escalonado
9/41
Sw a ppin g
Memória Principal
Sistema
Operacional
Programa A
H Programa B
Swap out
Programa E
Programa G
Memória Principal
Sistema
Operacional
Programa A
Programa H
Programa E
Swap in
B Área Livre
Arquivo
de Swap
9/42
Sw a ppin g
• Os primeiros sistemas operacionais que
implementaram esta técnica surgiram
na década de 1960, como o CTSS do
MIT e OS/360 da IBM
9/43
Ex e r cícios
• Quais as funções básicas da gerência
de memória?
• Qual a diferença entre fragmentação
interna e externa da memória
principal?
• Qual a limitação da alocação
particionada estática absoluta em
relação à alocação estática relocável?
9/44
Ex e r cícios
• Considere um sistema computacional
com 40 Kb de memória principal e que
utilize um sistema operacional de 10
kb que implemente alocação contígua
de memória. Qual a taxa de
subutilização da memória principal
para um programa que ocupe 20 Kb de
memória?
9/45
This document was created with Win2PDF available at http://www.win2pdf.com.
The unregistered version of Win2PDF is for evaluation or non-commercial use only.
This page will not be added after purchasing Win2PDF.