gerência de memória - si2012.files.wordpress.com · alocação particionada dinâmica memória...

26
Gerência de Recursos Gerência de Memória

Upload: tranngoc

Post on 10-Feb-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Gerência de Recursos

Gerência de Memória

Page 2: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

• Na alocação particionada dinâmica ou variável, foi eliminado o conceito de partições de tamanho fixo.

• Nesse esquema, cada programa utilizara o espaço necessário, tornando essa área sua partição.

Page 3: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional

4 Kb

1 Kb

3 Kb

5 Kb

2 Kb

15 Kb

Programa C

Programa B

Programa A

Programa EBA

2 Kb

E

3 Kb

C

1 Kb 4 Kb

Page 4: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

• A principio, o problema da fragmentação interna está resolvido, porém, nesse caso, existe um problema que não é tão obvio quanto no esquema anterior.

• 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.

Page 5: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória Principal

Sistema Operacional

4 Kb

3 Kb

5 Kb

Programa C

Programa A

D

6 Kb

Page 6: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

• Mesmo existindo espaço o exemplo anterior não será executado pois precisa de 6 Kb para ser carregado, este problema se chama fragmentação externa.

• Existem duas soluções para isto:– Primeira solução = conforme os programas

terminam, apenas os espaços livres adjacentes são reunidos, produzindo áreas livres de tamanho maior. Caso o programa C termine, uma área de 8 Kb será criada.

Page 7: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória PrincipalMemória Principal

Sistema OperacionalSistema Operacional

8 Kb

4 Kb

3 Kb

5 Kb5 Kb

Programa C

Programa APrograma A

Page 8: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

– Segunda solução = envolve a relocação de todas as partições ocupadas, eliminando todos os espaços entre elas e criando uma única área livre contígua.

– Para que este processo seja possível, énecessário que o sistema tenha a capacidade de mover os diversos programas na memória principal.

Page 9: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória PrincipalMemória Principal

Sistema Operacional

Relocação

Sistema Operacional

4 Kb

3 Kb

12 Kb

5 Kb

Programa C

Programa C

Programa A

Programa A

Page 10: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Estratégias de Alocação de Partição

• Os SO’s 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.

Page 11: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Estratégias de Alocação de Partição

• A melhor estratégia a ser adotada por um sistema depende de uma série de fatores, sendo o 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.

Page 12: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória Principal

Sistema Operacional

4 Kb

3 Kb

5 Kb

Programa C

Programa A

Áreas livresÁrea livre 1

Área livre 2

Área livre 3

Tamanho

1 4 Kb

2 5 Kb

3 3 Kb

Page 13: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Estratégias de Alocação de Partição

• Best-fit– A melhor partição é escolhida, ou seja, aquela

em que o programa deixa menor espaço sem utilização.

– Nesse algoritmo, a lista de áreas livres estáordenada por tamanho, diminuindo o tempo de busca por uma área desocupada.

– Uma grande desvantagem desse método éconseqüê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 livres.

Page 14: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória Principal

Sistema Operacional

4 Kb

3 Kb

5 Kb

Programa C

Programa A

F

1 Kb

Sistema Operacional

2 Kb

Programa C

Programa F

Programa A

Área livre

Best-fit

Page 15: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Estratégias de Alocação de Partição

• Worst-fit– A pior partição é escolhida, ou seja, aquela em

que o programa deixa o maior espaço sem utilização.

– Apesar de utilizar as maiores partições, a técnica deixa espaços livres maiores que permitem a um maior número de programas utilizar a memória, diminuindo o problema de fragmentação.

Page 16: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória Principal

Sistema Operacional

4 Kb

3 Kb

5 Kb

Programa C

Programa A

F

1 Kb

Sistema Operacional

4 Kb

Programa C

Programa A

Área livre

Programa F(b) Worst-fit

Page 17: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Estratégias de Alocação de Partição

• First-fit– A primeira partição livre de tamanho suficiente

para carregar o programa é escolhida.– Nesse 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 baixo, existe uma grande chance de se obter uma grande partição livre nos endereços de memória mais altos.

– Na média esta é a mais Rápida.

Page 18: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Alocação Particionada Dinâmica

Memória Principal

Sistema Operacional

4 Kb

3 Kb

5 Kb

Programa C

Programa A

F

1 Kb

Sistema Operacional

3 Kb

Programa C

Programa A

Área livre

Programa F

First-fit

Page 19: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

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.

Page 20: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Swapping

• Em todos os esquemas 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.

Page 21: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Swapping

• Nesta situação, o sistema escolhe um processo residente, que é transferido da memória principal para a memória secundária (swap out), geralmente disco.

• Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (swap in) e pode continuar sua execução como se nada tivesse ocorrido.

Page 22: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

SwappingMemória Principal

Memória Principal

SistemaOperacional

SistemaOperacional

Programa A

Programa A

Programa G

Área LivreSwap in

Swap out

Arquivode Swap

Programa E

Programa E

Programa B

Programa H

H

B

B

Page 23: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Swapping

• O algoritmo de escolha do processo a ser retirado da memória principal deve priorizar aquele com menores chances de ser executado, para evitar o swapping desnecessário de um processo que seráexecutado logo em seguida.

• Os processos retirados da memória estão geralmente no estado de espera, mas existe a possibilidade de um processo no estado de pronto também ser selecionado.

Page 24: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

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 um programa.

• O conceito de swapping permite maior compartilhamento da memória principal e, conseqüentemente, maior utilização dos recursos do sistema computacional.

Page 25: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Swapping

• Seu maior problema é o elevado custo das operações de entrada/saída (swap in/out).

• 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 dos processos residentes.

Page 26: Gerência de Memória - si2012.files.wordpress.com · Alocação Particionada Dinâmica Memória Principal Sistema Operacional 4 Kb 3 Kb 5 Kb Programa C Programa A F 1 Kb Sistema

Swapping

• Os primeiros SO’s que implementaram está técnica surgiram na década de 1960, como o CTSS do MIT e OS/360 da IBM.

• Com a evolução dos SO, novos esquemas de gerência de memória passaram a incorporar a técnica de swapping, como a gerência de memória virtual.