Buscar

SO_Memoria

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Gerenciamento de Memória
Erinaldo Pereira
erinaldo@usp.br
 
Introdução
● Em geral programas são armazenados em memórias 
secundárias, como disco ou fita, por serem meios não-voláteis, 
abundantes e de baixo custo.
● Como o processador somente executa instruções localizadas na 
memória principal, o SO deve sempre transferir programas da 
memória sencundária para a memória principal, antes de serem 
executados.
● Como o tempo de acesso à memória secundária é muito superior 
ao tempo de acesso à memória principal, o SO deve reduzir o 
número de operações de E/S à memória secundária, caso 
contrário, sérios problemas no desempenho do sistema podem 
ser ocasionados
 
Introdução
● A gerência de memória deve tentar manter na memória 
principal o maior número de processos residentes, 
permitindo maximar 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. 
Isso é possível por meio da transferência temporária de 
processos residentes na memória principal para memória 
secundária, liberando espaço para novos processos.
● Esse mecanismo é conhecido como swapping e será 
detalhado posteriormente.
 
Introdução
● Outra preocupação na gerência de memória é permitir a execução 
de programas que sejam maiores que a memória física disponível 
implementada por meio de técnicas como memória virtual.
● Em um ambiente de multiprogramação, o SO deve proteger as 
àreas de memória ocupadas por cada processo, além da área 
onde reside o próprio sistema. Caso um programa tente realizar 
algum acesso indevido à memória, o sistema deve impedi-lo de 
alguma forma.
● Apesar de a gerência de memória garantir a proteção de áreas da 
memória, mecanismos de compartilhamento devem ser 
orferecidos para que diferentes processos possam trocar dados 
de forma protegida.
 
Tipos de Alocação 
● Contígua Simples a memória principal é 
subdividida em duas áreas: uma para o SO e 
outra para o programa do usuário.
Memória Principal
SO
Área para 
programa
 
Contígua Simples
● Presente em alguns sistemas monoprogramáveis, nesse 
esquema, o usuário tem o controle sobre toda a memória 
principal, podendo ter acesso a qualquer posição da 
memória, inclusive a área do SO.
● Para proteger o sistema desse tipo de acesso, que pode ser 
intencional ou não, alguns sistemas implementam proteção 
por meio de um registrador que delimita as áreas do SO e 
do usuário.
● Dessa forma, sempre que um programa faz referência a um 
endereço na memória, o sistema verifica se o endereço 
está dentro dos limites permitidos.
 
Alocação Particionada
● Os Sistemas Operacionais evoluíram no sentido de 
proporcionar melhor aproveitamento dos recursos 
disponíveis.
● Os sistemas multiprogramáveis já são muito mais 
efecientes no uso do processador, necessitando 
assim que diversos programas estejam, ao mesmo 
tempo, na memória principal e que novas formas de 
gerência de memória sejam implementadas.
 
Alocação Particionada Estática
● A memória é dividida em pedaços de tamanho fixo, 
chamados partições. O tamanho das partições deve ser 
estabelecido na fase iniciação do sistema e definido em 
função do tamanho dos programas que executarão no 
ambiente.
Memória Principal
SO
Partição 1
Partição 2
Partição 3
2 Kb
5 Kb
8 Kb
Partições Tamanho
1 2Kb
2 5Kb
3 8Kb
Tabela de Partições
E D C B A
Programas a serem executados
3 Kb 6 Kb 1 Kb 4 Kb 2 Kb3 Kb
 
Alocação Particionda Esatática
● 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.
Memória Principal
6Kb
SO
Partição 1
Partição 2
Partição 3
2 Kb
5 Kb
8 Kb
E
D
C
B
A
1Kb 2Kb
3Kb 4Kb
 
Alocação Particionada Estática
● Com a evolução dos compiladores, montadores, linkers e 
loaders, o código gerado deixou de ser absolutoe passou 
a ser realocavel. No código realocá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. 
Esse tipo de gerência de memória é denominada alocação 
particionada estática realocável.
SO
Partição C
Partição A
Partição B
2 Kb
5 Kb
8 Kb
D E
4Kb 3Kb
 
Alocação Particionada Estática
● Nesse esquema de alocação de memória, a proteção 
baseia-se em dois registradores que indicam o limite 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 
será interrompido e uma mensagem de violação de acesso 
será gerada pelo SO.
SO
End. Inicial
End. Final
Memória Principal
 
Alocação Particionada Estática
● Tanto nos sistemas de alocação absoluta quantos nos de 
alocação relocavél, 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.
SO
Programa C
Programa A
Programa E
D E
4Kb6Kb
2Kb
3Kb
5Kb
Memória Principal
 
Alocação Particionada Dinâmica
● Na alocação particionada dinâmica ou variável, 
cada programa utiliza um espaço necessário, 
tornando essa área sua partição.
SO
Memória Principal
A E C B
2Kb 3Kb 1Kb 4Kb
15Kb
SO
Memória Principal
Programa B
Programa C
Programa E
Programa A
5Kb
2Kb
3Kb
1Kb
4Kb
 
Alocação Particionada Dinâmica
● Um tipo diferente de fragmentação comecerá a 
ocorrer, quando os programas forem terminando e 
deixando espaços cada vez menores na memória, 
não permitinso o ingresso de novos programas, 
chamada fragmentação externa.
SO
Memória Principal
4Kb
D
Programa C
Programa A
3Kb
5Kb
6Kb
 
Alocação Particionada Dinâmica
● Existem duas soluções para o problema da 
fragmentação externa da memória principal:
SO
Memória Principal
4Kb
Programa C
Programa A
3Kb
5Kb
SO
Memória Principal
Programa A
8Kb
5Kb
 
Alocação Particionada Dinâmica
● Solução 2 (Muito custosa)
SO
Memória Principal
4Kb
Programa C
Programa A
3Kb
5Kb
SO
Memória Principal
Programa A
12Kb
Realocação
Programa C
 
Estratégias de alocação de partição
● Os sistemas operacionais 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.
● A melhor estratégia a ser adotada por um sistema depende 
de uma série de fatores, sendo mais importante, o tamanho 
dos programas processados no ambiente. 
Independentemente do algoritmo utilizado, o sistema possui 
uma lista de áreas livres, com o endereço e tamanho de 
cada área.
 
Estratégias de alocação de partição
Áreas Livres Tamanho
1 4 Kb
2 5 Kb
3 3 Kb
SO
Memória Principal
4Kb
Programa C
Programa A
5Kb
3Kb
Área livre 1
Área livre 2
Área livre 3
 
Best-Fit
● Escolhe a partição em que o programa deixa o menor espaço sem 
utilização.
● Nesse algoritimo a lista de áreas livres está ordenada por 
tamanho, diminuindo o tempo de busca por uma área desocupada. 
● Uma grande desvantagem desse método é consequência do 
próprio algoritmo. 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.Best-Fit
SO
Memória Principal
Programa C
Programa A
5Kb
3Kb
4Kb
F
1Kb
SO
Memória Principal
Programa C
Programa A
2KbÁrea livre
Programa F
Best-fit (1)
 
Worst-Fit
● Escolhe a partição em que o programa deixa o 
maior espaço sem utilização.
● Por utilizar as maiores partições, a técnica de 
worst-fit deixa maiores espaços livres, 
permitindo que um maior número de programas 
utilize a memória diminuindo o problema da 
fragmentação.
 
Worst-Fit
SO
Memória Principal
Programa C
Programa A
5Kb
3Kb
4Kb
F
1Kb
SO
Memória Principal
Programa C
Programa A
4KbÁrea livre
Programa F
Worst-fit (2)
 
Best-Fit
SO
Memória Principal
Programa C
Programa A
5Kb
3Kb
4Kb
F
1Kb
SO
Memória Principal
Programa C
Programa A
2KbÁrea livre
Programa F
Best-fit (1)
 
First-Fit
● Escolhe a primeira partição livre, de tamanho suficiente 
para carregar o programa.
● Nesse algoritmo, a lista de áreas livres está ordenada 
de forma crescente 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 
alto. 
● Nas três estratégias apresentandas qual a mais rápida?
 
first-fit é a mais rápida, consumindo menos 
recursos do sistema.
SO
Memória Principal
Programa C
Programa A
5Kb
3Kb
4Kb
F
1Kb
SO
Memória Principal
Programa C
Programa A
3KbÁrea livre
Programa F
First-fit (3)
 
Swapping
● A técnica de swapping foi produzida para 
contronar o problema da insuficiência de 
memória principal.
● É uma técnica aplicada à gerência de memória 
para programas que esperam por memória livre 
para serem executados. 
 
Swapping
● Nessa situação, o sistema escolhe um 
processo residente que é transferido a memória 
principal para secundária (swap out).
● Posteriormente, o processo é carregado de 
volta da memória secundária para principal 
(swap in) e pode continuar sua execução como 
se nada tivesse ocorrido.
 
Swapping
SO
Memória Principal
Programa B
Programa E
H
SO
Memória Principal
Programa C
Programa A
Área livre
Programa F
Swa
p-ou
t
Programa A
Programa C
Programa D
Programa F
D
D
Disco
Programa B
Programa E
Swap-in
 
Swapping
● O algoritmo de escolha do processo a ser retirado da 
memória principal deve priorizar aquele com menor chance 
de ser executado, para evitar o swapping desnecessário de 
um processo que será executado logo em seguida.
● O conceito de swapping permite maior compartilhamento 
da memória principal e, consequentemente, maior 
utilização dos recursos do sistema operacional.
● Seu maior problema é o elevado custo das oprações de 
E/S (swap in/out).
 
Dúvidas ?
Muito obrigado pela sua atenção
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30

Outros materiais