Upload
doannhi
View
215
Download
0
Embed Size (px)
Citation preview
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.
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 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
Alocação Contígua Simples - Proteção
- Registrador de proteção delimita as áreas do sistema operacional e do usuário;
- 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
Reg
Alocação Contígua Simples - Overlay
- Programas de usuário limitados pelo tamanho da memória principal disponível.
- 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 de Overlay – Área de memória comum onde módulos
compartilham mesmo espaço.
Memória principal
Sistema
Operacional
Área de
Overlay
Área do
Módulo
Principal
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 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
Sistema
Operacional
Partição C
Partição A
Reg
Reg
Partição B
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.
-Não ocorre fragmentação interna.
- Ao terminarem, os programas deixam espalhados espaços pequenos de memória, provocando a fragmentação externa.
Memória principal
Sistema
Operacional
Processo E
Processo A
Processo C
Processo F
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 E
Processo A
Processo F
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
programa B
programa A
programa E
programa A
programa G
Sistema
Operacional
Memória principal
programa H
programa E
programa A
B B
Swap In
Swap Out
Sistema
Operacional
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.