Você está na página 1de 46

Ar qu it e t u r a de Sist e m a s

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

Memória Principal Memória Principal


Registrador
Sistema Sistema
Operacional Operacional

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

4 Kb Área de overlay Impressão

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

Tabela de partições Sistema Operacional

Partição Tamanho Partição 1 2 Kb

1 2 Kb
Partição 2 5 Kb
2 5 Kb

3 8 Kb

Programas a serem executados:


Partição 3 8 Kb
E D C B A

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

Partição Tamanho Livre Sistema Operacional

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

Sistema Operacional Endereço inicial

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

Memória Principal Memória Principal

Sistema Operacional Sistema Operacional

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

Sistema Operacional Sistema Operacional

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

Sistema Operacional Sistema Operacional


Programa C

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

Sistema Operacional Sistema Operacional

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.

Você também pode gostar