fundamentos de sistemas operacionais - 2º período
TRANSCRIPT
Redes de Computadores
Fundamentos de Sistemas
Operacionais - 2º Período
PARTE III: GERÊNCIA
DE RECURSOS
SUMÁRIO
9. GERÊNCIA DE MEMÓRIA:
9.1 Introdução;
9.2 Funções Básicas;
9.3 Alocação Contígua Simples;
9.4 Técnica de Overlay;
9.5 Alocação Particionada;
9.6 Swapping.
Capítulo 9 - Gerência
de Memória
9.1 Introdução
Uma das maiores preocupações dos projetistas foi desenvolver sistemas
operacionais que não ocupassem muito espaço de memória e, ao mesmo
tempo, otimizassem a utilização dos recursos computacionais.
Mesmo atualmente, com a redução de custo e consequente aumento da
capacidade da memória principal, seu gerenciamento é um dos fatores mais
importantes no projeto de sistemas operacionais.
A gerência de memória nos sistemas multiprogramáveis 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.
Capítulo 9 - Gerência
de Memória
9.2 Funções Básicas
Manter na memória principal o maior número de processos residentes;
Mesmo na ausência de espaço livre, o sistema deve permitir que novos
processos sejam aceitos e executados;
Permitir a execução de programas que sejam maiores que a memória
física disponível;
Proteger as áreas de memória ocupadas por cada processo, além da área
onde reside o próprio sistema;
Oferecer mecanismos de compartilhamento para que diferentes
processos possam trocar dados de forma protegida.
Capítulo 9 - Gerência
de Memória
9.3 Alocação Contígua Simples
Neste tipo de organização, a memória principal é subdividida em duas áreas:
uma para o sistema operacional e outra para o programa do usuário.
Memória Principal
SistemaOperacional
Área paraprograma
Capítulo 9 - Gerência
de Memória
9.3 Alocação Contígua Simples
Proteção na alocação contígua simples:
Memória Principal
RegistradorSistema
Operacional
Área paraprograma
Capítulo 9 - Gerência
de Memória
9.3 Alocação Contígua Simples
Subutilização da memória principal:
Memória Principal
SistemaOperacional
Programado usuário
Área livre
Capítulo 9 - Gerência
de Memória
9.4 Técnica de Overlay
Problema 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: dividir o programa 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.
A técnica de overlay tem a vantagem de permitir ao programador expandir os
limites da memória principal.
A utilização dessa técnica exige muito cuidado, pois pode trazer implicações
tanto na sua manutenção quanto no desempenho das aplicações.
Capítulo 9 - Gerência
de Memória
9.4 Técnica de Overlay
Memória Principal
Cadastramento
Impressão
Sistema Operacional2 Kb
3 Kb
4 Kb
4 Kb
2 Kb
2 Kb
1 Kb
Módulo principal
Área de overlay
Área livre
Área nãoutilizada
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
9.5.1 Alocação Particionada Estática
Memória Principal
Sistema Operacional
2 Kb
5 Kb
8 Kb
Partição 1Partição
Tabela de partições
Tamanho
1 2 Kb
2 5 Kb
3 8 Kb
Partição 2
Partição 3Programas a serem executados:
AE
3 Kb
D
6 Kb
C
1 Kb
B
4 Kb 2 Kb
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Alocação Particionada Estática Absoluta:
Memória Principal
Sistema Operacional
2 Kb
5 Kb
8 Kb
Partição 1
Partição 2
Partição 3
A
B
D
C
E
3 Kb
6 Kb
1 Kb
4 Kb
2 Kb
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Alocação Particionada Estática Relocável:
Memória Principal
Sistema Operacional
2 Kb
5 Kb
8 Kb
Programa C
Programa A
Programa B
ED
6 Kb 3 Kb
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Tabela de alocação de partições:
Memória Principal
Sistema Operacional
1
2
3
Programa C
Área livre
Programa B
Partição Tamanho Livre
1 2 Kb Não
2 5 Kb Sim
3 8 Kb Não
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Proteção na alocação particionada:
Memória Principal
Sistema Operacional Endereço inicial
Endereço final
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Fragmentação interna:
Memória Principal
Sistema Operacional
1 Kb
3 Kb
5 Kb
Programa C
Programa A
Programa E
BD
6 Kb 4 Kb
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
9.5.2 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 E
BA
2 Kb
E
3 Kb
C
1 Kb 4 Kb
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Fragmentação externa: Memória Principal
Sistema Operacional
4 Kb
3 Kb
5 Kb
Programa C
Programa A
D
6 Kb
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Solução para a fragmentação externa (a):
Memória PrincipalMemória Principal
Sistema OperacionalSistema Operacional
8 Kb
4 Kb
3 Kb
5 Kb5 Kb
Programa C
Programa APrograma A
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
Solução para a fragmentação externa (b):
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
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
9.5.3 Estratégias de Alocação de Partição
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
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
9.5.3 Estratégias de Alocação de Partição
Best-fit: a melhor partição é escolhida, ou seja, aquela em que o
programa deixa o menor espaço sem utilização;
Worst-fit: a pior partição é escolhida, ou seja, aquela em que o programa
deixa o maior espaço sem utilização;
First-fit: a primeira partição livre de tamanho suficiente para carregar o
programa é escolhida.
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
(a) Best-fit:
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
(b) Worst-fit:
Capítulo 9 - Gerência
de Memória
9.5 Alocação Particionada
(c) First-fit:
Capítulo 9 - Gerência
de Memória
9.6 Swapping
Memó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
Capítulo 9 - Gerência
de Memória
9.6 Swapping
Relocação dinâmica:
Endereço dememória
Endereço incialda partição
Registrador de Relocação Instrução
EndereçoCódigo deoperação
Capítulo 9 - Gerência
de Memória
9.6 Swapping
O conceito de swapping permite um maior compartilhamento da memória
principal.
Seu maior problema é o elevado custo das operações de entrada/saída
(swap in/out).
Thrashing: em momentos em que há pouca memória disponível, o sistema
pode ficar quase que dedicado à realização de swapping, deixando de
executar outras tarefas.
Com a evolução dos SOs, novos esquemas de gerência de memória
passaram a incorporar a técnica de swapping, como a gerência de memória
virtual.