apostila 6 gerência de memória
DESCRIPTION
Gerência de memória em sistemas operacionaisTRANSCRIPT
![Page 1: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/1.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 1
Arquitetura de Sistemas Arquitetura de Sistemas OperacionaisOperacionais
Capítulo 9Capítulo 9Gerência de MemóriaGerência de Memória
![Page 2: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/2.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 3: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/3.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 4: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/4.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 5: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/5.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 aO p e r a c i o n a l
Á r e a p a r ap 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.
![Page 6: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/6.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 rS i s t e m a
O p e r a c i o n a l
Á r e a p a r ap r o g r a m a
![Page 7: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/7.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 aO p e r a c i o n a l
P r o g r a m ad o u s u á r i o
Á r e a l i v r e
![Page 8: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/8.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 8Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
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.
![Page 9: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/9.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 9AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
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 b1 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 ã ou t i l i z a d a
![Page 10: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/10.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 10Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
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.
![Page 11: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/11.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 11Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
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.
![Page 12: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/12.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 12AS
O –
Mac
hado
/Mai
a –
com
plem
. por
Sid
ney
Luc
ena
(UN
IRIO
)
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 3P 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.
![Page 13: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/13.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 14: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/14.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 15: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/15.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 16: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/16.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 17: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/17.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 18: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/18.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 19: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/19.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 20: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/20.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 21: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/21.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 22: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/22.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 EBA
2 K b
E
3 K b
C
1 K b 4 K b
• Alocação Particionada Dinâmica
![Page 23: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/23.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 24: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/24.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 25: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/25.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 26: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/26.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 27: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/27.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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
![Page 28: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/28.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 s t - f i t
• Partição escolhida é aquela em que o programa deixa o menor
espaço sem utilização.
![Page 29: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/29.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 30: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/30.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 ) F i r s t - f i t
• Partição escolhida é primeira livre de tamanho suficiente
para carregar o programa.
![Page 31: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/31.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 32: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/32.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 33: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/33.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 34: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/34.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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 aO p e r a c i o n a l
S i s t e m aO 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 eS w a p i n
S w a p o u t
A r q u i v od 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
![Page 35: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/35.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
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.
![Page 36: Apostila 6 gerência de memória](https://reader033.vdocuments.net/reader033/viewer/2022060201/559ac1fc1a28ab94378b46fd/html5/thumbnails/36.jpg)
Arq
uitet
ura
de
Sis
tem
as O
per
acio
nai
s – M
achad
o/M
aia
Gerência de Memória 36
Swapping
• Relocação Dinâmica
E n d e r e ç o d em e m ó r i a
E n d e r e ç o i n c i a ld 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 ç oC ó d i g o d eo p e r a ç ã o