Buscar

SO_09 - Gerência de Memória.pdf

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 26 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 26 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 26 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

Sistemas Operacionais
Prof. Fernando Eryck
2012.2
Redes de Computadores
SUMÁRIO
� Gerência de Memória
Introdução
�Memória
� Recurso fundamental para operação de um sistema computacional
� Programas só executam se estiverem na memória principal
� Quanto mais processos residentes na memória principal, melhor será o � Quanto mais processos residentes na memória principal, melhor será o 
compartilhamento do processador
� Dependendo do esquema de gerenciamento, o processo pode ser 
movimentado entre o disco e a memória durante sua execução.
� O S.O não deve ocupar muita memória 
� A coleção de processos em disco, em espera para serem carregados em 
memória para execução, forma a fila de entrada.
Introdução
� Gerenciador de Memória – é a parte do sistema operacional 
que gerencia a hierarquia (memória cache, RAM (principal) e 
secundária (disco). 
�Funções do Gerenciador de Memória;�Funções do Gerenciador de Memória;
� Controlar quais unidades da memória estão ou não em uso, para que 
sejam alocadas quando necessário
� Liberar as unidades de memória que foram desocupadas por um 
processo que finalizou
� Tratar do Swapping entre a memória principal e a memória secundária
�Transferência temporária de processos residentes na memória principal para 
a memória secundária (disco). 
Gerência de Memória
�MMU – Unidade de Gerência de Memória: 
�É um módulo de hardware que faz o mapeamento entre endereços 
lógicos (end. da memória virtual) e os endereços físicos da memória 
RAM, ou seja, é um dispositivo que transforma endereços virtuais 
em endereços físicos. em endereços físicos. 
�Mem. Lógica – Endereço que o processo “enxerga”
�Mem. Física – Implementada pelos circuitos integrados de memória
Swapping
• Processo deve estar na memória para ser executado
• Processo pode ser transferido temporariamente para disco
– Deve ser retomado posteriormente à memória para execução
• Ex.: escalonador de CPU usando Round-Robin (Circular)
– Assim que termina quantum(time slice) de P1, ele ficará em espera por um – Assim que termina quantum(time slice) de P1, ele ficará em espera por um 
período
– Gerenciador de memória
• Pode retirar P1 da memória e levá-lo para disco (swap out)
• Pode-se carregar P2 do disco para a memória para execução (swap in)
– Permuta (swap in/out) gasta bastante tempo (acesso a disco)
• Troca de contexto mais cara
• Quantum (time-slice) deve ser grande suficiente para melhorar 
utilização do sistema
Swapping
Swapping
• Permuta de processos
• Condições
• Assegurar de que o processo a ser permutado está completamente 
ocioso
• Sem pendências de operações de I/O por exemplo• Sem pendências de operações de I/O por exemplo
• Processo em espera não está aguardando algum dispositivo ocupado
• Execução de operações em buffer do SO
Alocação da Memória
• A memória principal é dividida em duas porções:
• sistema operacional 
• processos do usuário
• É necessário uma alocação eficiente
Alocação Contígua Simples
• Implementa nos primeiros sistemas 
operacionais (monoprogramáveis)
• Forma mais simples de gerência de 
memória
• Memória dividida em duas partes
Memória principal 
Sistema 
Operacional
• Memória dividida em duas partes
– Uma para SO
– Outra para processos
• Alocação contígua
– Cada processo fica em uma única seção 
contígua de memória
Área de
Programas 
do usuário
Alocação Contígua Simples
• Apesar da simplicidade de implementação e código reduzido, a alocação contígua 
simples não permite a utilização eficiente do processador e da memória pois 
apenas um usuário pode utilizar este recurso
• Subutilização da memória
– caso o programa não a preencha totalmente, existirá um espaço de memória sem – caso o programa não a preencha totalmente, existirá um espaço de memória sem 
utilização
• Fragmentação
Memória Principal
Sistema
Operacional
Programa
do usuário
Área livre
Alocação Contígua Simples
• Os programas dos usuários estavam limitados 
ao tamanho da memória principal disponível
• Solução: Overlay
– Dividir o programa em módulos
Memória Principal
Cadastramento
Sistema Operacional2 Kb
– Permitir a 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 o mesmo espaço
Impressão
3 Kb
4 Kb
4 Kb
2 Kb
2 Kb
1 Kb
Módulo principal
Área de overlay
Área livre
Área não
utilizada
Alocação Particionada
• Multiprogramação
– Necessidade do uso da memória por vários usuários simultaneamente
• Método simples de alocação
– Dividir memória em diversas partições de tamanho fixo– Dividir memória em diversas partições de tamanho fixo
– O tamanho de cada partição era estabelecido na inicialização do sistema
– Cada partição pode conter um processo
• Quando uma partição está livre
– Um processo da fila de entrada é selecionado e carregado
– Ao terminar execução, processo libera partição
Alocação Particionada
• Gerenciamento de memória disponível
– SO mantém tabela indicando o que está disponível/ocupado
– Inicialmente, toda memória para usuário é considerada como um grande 
bloco livre
– À medida que processos chegam, vão para fila de entrada
• SO verifica quais processos “cabem” na memória
– Após carregado, processo passa a competir pela CPU
– Quando terminar, libera memória: SO poderá preenchê-la com 
outro processo
• Processos “grandes” devem aguardar por blocos de memória 
suficientes para abrigá-los
Alocação Particionada
Memória Principal
Sistema Operacional
2 KbPartição 1Partição
Tabela de partições
Tamanho
5 Kb
8 Kb
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
Alocação Particionada
Memória Principal
Sistema Operacional
1 Programa C
Partição Tamanho Livre
1 2 Kb Não
2
3
Área livre
Programa B
2 5 Kb Sim
3 8 Kb Não
Multiprogramação com Partições Dinâmicas
• Elimina a alocação com partições de tamanho fixo
• Cada processo utiliza o espaço necessário usando essa área como 
sua partição
• Não ocorre o problema da fragmentação interna• Não ocorre o problema da fragmentação interna
• Problema
• Espaços cada vez menores podem surgir na memória
• Dificuldade para incluir novos programas
• Fragmentação externa
Fragmentação Externa
• Término dos processos deixa espaços que podem ser insuficientes 
para novos programas 
• Problema:
Pode-se observar no exemplo que
Embora haja 12k de espaço livre, o 
Programa de 6k não poderá ser executado
Solução para a Fragmentação Externa
• 1ª. Solução
• Reunir espaços adjacentes conforme os programas terminam, 
produzindo áreas livres de tamanho maior
Solução para a Fragmentação Externa
• 2ª. Solução
• Relocação dinâmica de todas as partições ocupadas, eliminando 
espaços entre elas e criando uma única área livre contígua
• Algoritmo complexo que consume recursos do sistema• Algoritmo complexo que consume recursos do sistema
Estratégias de Alocação de Partições
• O SO mantêm uma lista de área livres e implementam três 
estratégias para evitar ou diminuir o problema da fragmentação 
externa, determinando em qual área livre um programa será 
carregado para execução
Estratégia de Alocação Best Fit
• Aloca o menor espaço sem utilização que caiba o processo
• Lista de áreas de estar ordenada por tamanho
• Desvantagem
• Cada vez mais memória fica com pequenas áreas não 
contíguascontíguas
Estratégia de Alocação Worst Fit
• Aloca o maior espaço existente 
• Vantagem
• Deixa espaços livres maiores, diminuindo o problema da 
fragmentaçãoEstratégia de Alocação First Fit
• Aloca o primeiro intervalo grande o suficiente para carregar o 
processo
• Lista de endereços está ordenada crescentemente por endereços
Estratégias de Alocação de Partições
• Simulações demonstram que o primeiro-apto e o mais-apto são melhores que o 
menos-apto
– Redução de tempo
– Uso de memória
– Primeiro-apto em geral é mais rápido– Primeiro-apto em geral é mais rápido
• Todos os algoritmos levam à fragmentação externa
– À medida de processos são carregados e removidos, a memória é quebrada em 
pequenos pedaços de espaço livre
• Às vezes sobra bastante espaço, mas não contíguo
– Dependendo do total de memória e tamanho médio de processo, problema da 
fragmentação pode ser maior ou menor
– Análises estatísticas do primeiro-apto indicam que para N blocos alocados, 0.5*N 
são perdidos com fragmentação (1/3 da memória)
– OBS: Ocorre a fragmentação externa quando existe espaço de memória total para atender a 
solicitação, mas ele não é contíguo; a memória é fragmentada em um grande número de 
pequenos intervalos
Fragmentação
• Fragmentação
– Interna: espaço alocado ao processo é maior que solicitado
• Alocação ocorre em tamanho múltiplo de um bloco de memória
– Tamanho do bloco é definido pelo SO
– Externa: espaço livre da memória quebrado em pedaços (externos aos – Externa: espaço livre da memória quebrado em pedaços (externos aos 
processos)
• Solução para fragmentação externa
– Compactação: juntar pedaços disponíveis
• Nem sempre possível: só se houver relocação dinâmica em tempo de execução
• Movimentar processos na memória pode ser caro
– Permitir ao processos ter espaço de endereçamento não contíguo
• Técnicas de paginação e segmentação

Outros materiais