11-Gerência da memória

Propaganda
Sistemas Operacionais
GERÊNCIA da MEMÓRIA
MACHADO/MAIA: CAPÍTULO 09
Prof. Pedro Luís Antonelli
Anhanguera Educacional
Gerenciamento da Memória
Programas precisam ser trazidos para a memória para serem
executados.
É neste momento que programas transformam-se em processos.
Como sabemos, os computadores utilizam uma hierarquia de
memória em sua organização, combinando memórias voláteis e
não-voláteis, tais como: memória cache, memória principal e
memória secundária.
Gerenciamento da Memória
Ao sistema operacional é destinada a função de coordenar e
gerenciar a utilização dessas memórias de forma eficiente.
Este serviço é implementado pelo sistema operacional através do
gerenciador de memória.
Memórias - Hierarquia
Hierarquia da memória
Gerenciamento da Memória
As funções básicas de um Gerenciador de Memória são:
-Transferir programas da memória; secundária para a memória
principal;
-Reduzir o número de operações de E/S nesta transferência (pois
a memória secundária é lenta);
-Manter na memória o maior número possível de processos
residentes, maximizando a utilização de recursos;
Gerenciamento da Memória
-Permitir que novos programas sejam aceitos mesmo que não
exista espaço livre de memória;
-Permitir a execução de programas maiores do que a memória
física;
-Proteger as áreas de memória ocupadas por cada processo;
-Oferecer mecanismos de compartilhamento de dados e
informações.
Gerenciamento da Memória
Técnicas de Alocação de Memória:
- Alocação Contígua Simples;
- Alocação Particionada Estática;
- Alocação Particionada Estática Absoluta;
- Alocação Particionada Estática Relocável;
- Alocação Particionada Dinâmica.
Alocação Contígua Simples
- Alocação implementada nos primeiros sistemas
e ainda usada nos monoprogramáveis;
- A Memória é dividida em duas áreas:
– Área do Sistema Operacional;
– Área do Usuário.
- Um usuário não pode usar uma área maior do
que a disponível;
- Sem proteção, pois um usuário pode acessar a
área do Sistema Operacional.
Memória
principal
Sistema
Operacional
Área de
Programas
do usuário
Alocação Contígua Simples - Proteção
- Registrador de proteção delimita as
áreas do sistema operacional e do
usuário;
Reg
- Sistema verifica acessos à memória
em relação ao endereço do registrador;
- A forma de alocação era simples, mas
não permitia utilização eficiente de
processador e memória;
Memória principal
Sistema
Operacional
Área de
Programas
do usuário
Alocação Contígua Simples - Overlay
- Programas de usuário limitados pelo
tamanho da memória principal
disponível.
Memória principal
Sistema
Operacional
- Solução: Overlay
– Dividir o programa em módulos;
– Permitir execução independente de
cada módulo, usando a mesma área de
memória;
Área do
Módulo
Principal
- Área de Overlay
Área de
Overlay
– Área de memória comum onde módulos
compartilham mesmo espaço.
A
B
C
Alocação Particionada
- Multiprogramação : Com a multiprogramação começou a existir
a necessidade do uso da memória por vários usuários
simultaneamente.
- Ocupação mais eficiente do processador;
- A memória foi dividida em pedaços de tamanho fixo
chamados partições;
- O tamanho de cada partição era estabelecido na inicialização
do sistema;
- Para alteração do particionamento, era necessário uma nova
inicialização com uma nova configuração.
Alocação Particionada
Alocação Particionada Estática
Alocação Particionada Estática Absoluta:
– Compiladores gerando código absoluto, ou seja os
endereços são relativos ao início da memória;
– Programas exclusivos para partições específicas.
Alocação Particionada Estática Relocável:
– Compiladores gerando código relocável, ou seja Endereços
relativos ao início da partição;
– Programas podem rodar em qualquer partição.
Alocação Particionada Estática
- Proteção:
– Registradores com limites
inferior e superior de
memória acessível.
- Programas não ocupam
totalmente o espaço das
partições, gerando uma
fragmentação interna.
Memória principal
Reg
Sistema
Operacional
Reg
Partição A
Partição B
Partição C
Alocação Particionada Dinâmicamente
- Não existe o conceito de partição
fixa, e sim que o espaço utilizado por
um programa é a sua partição.
Memória principal
Sistema
Operacional
-Não ocorre fragmentação interna.
Processo A
- Ao terminarem, os programas
deixam espalhados espaços
pequenos de memória, provocando a
fragmentação externa.
Processo C
Processo F
Processo E
Alocação Particionada Dinâmicamente
- Soluções:
– Reunião dos espaços contíguos.
– Relocação Dinâmica:
- Movimentação dos programas pela
memória principal;
- Resolve o problema da fragmentação;
- Consome recursos do sistema tais como
tempo de processamento, uso de discos,
etc.
Memória principal
Sistema
Operacional
Processo A
Processo F
Processo E
Alocação Particionada Dinâmicamente
Uma das grandes vantagens desta estratégia é que a flexibilidade
obtida melhora bastante a utilização da memória, evitando
desperdícios de espaço.
Por outro lado, a gerência dos espaços vazios é mais complicada, bem
como a alocação e liberação das partições.
O sistema operacional mantém uma lista de espaços livres na
memória física.
.
Estratégias de Alocação de Memória
Sempre que um novo processo é criado esta lista é percorrida e será
usada uma lacuna maior ou igual ao tamanho do processo em
questão.
Existem algumas técnicas para percorrer esta lista:
– Best-Fit (melhor alocação);
– Worst-Fit (pior alocação);
– First-Fit (primeira alocação);
Estratégias de alocação de partição
- Best-fit (melhor alocação): A melhor partição é escolhida, ou seja a que o
Programa deixa o menor espaço sem utilização.
-
Espaço mais próximo do tamanho do processo;
-
Tempo de busca grande;
-
Provoca fragmentação.
Estratégias de alocação de partição
- Worst-fit (pior alocação): A pior partição é escolhida, ou seja, a que o
programa deixa o maior espaço sem utilização.
-
Cria o maior espaço possível;
-
Tempo de busca grande;
-
Não apresenta bons resultados
.
Estratégias de alocação de partição
- First-fit (primeira alocação): Escolhe a primeira partição livre de tamanho
-
suficiente para carregar o programa.
É a estratégia mais rápida, portanto com a melhor performance
Técnica de Swapping
- Introduzida para contornar o problema de insuficiência de memória
principal.
- Permite o compartilhamento da memória principal e maior utilização
dos recursos do SO.
- Técnica aplicada a gerência de memória para programas que esperam
por memória livre para serem executados.
Técnica de Swapping
• O sistema escolhe um processo residente, que é transferido da
memória principal para a memória secundária (Swap out),
geralmente um 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
Técnica de Swapping
Memória principal
Sistema
Operacional
programa A
Swap Out
programa A
Swap In
programa B
programa H
programa E
programa E
B
programa G
Sistema
Operacional
B
programa A
programa B
Técnica de Swapping
• Problema gerado pelo Swapping:
– Relocação de processos:
- O tempo gasto com relocação é alto;
- Um mesmo processo sendo Swapped-Out repetidas
vezes gera um alto consumo de CPU.
BIBLIOGRAFIA
•
MACHADO, F. B. & MAIA, L. P., Arquitetura de Sistemas Operacionais, 4 Edição,
São Paulo, LTC, 2007.
•
TANENBAUM, A. S. Sistemas Operacionais Modernos: 2ª edição, São Paulo,
editora Prentice Hall, 2003.
•
SILBERSCHATZ, A. Sistemas Operacionais – Conceitos: São Paulo, editora LTC,
2004.
Download