You are on page 1of 26

Sistemas Operacionais

Prof. Fernando Eryck


2012.2

Redes de Computadores

SUMRIO
 Gerncia de Memria

Introduo
Memria
 Recurso fundamental para operao de um sistema computacional
 Programas s executam se estiverem na memria principal
 Quanto mais processos residentes na memria principal, melhor ser o
compartilhamento do processador
 Dependendo do esquema de gerenciamento, o processo pode ser
movimentado entre o disco e a memria durante sua execuo.
 O S.O no deve ocupar muita memria
 A coleo de processos em disco, em espera para serem carregados em
memria para execuo, forma a fila de entrada.

Introduo
 Gerenciador de Memria a parte do sistema operacional
que gerencia a hierarquia (memria cache, RAM (principal) e
secundria (disco).
Funes do Gerenciador de Memria;
 Controlar quais unidades da memria esto ou no em uso, para que
sejam alocadas quando necessrio
 Liberar as unidades de memria que foram desocupadas por um
processo que finalizou
 Tratar do Swapping entre a memria principal e a memria secundria
 Transferncia temporria de processos residentes na memria principal para
a memria secundria (disco).

Gerncia de Memria
MMU Unidade de Gerncia de Memria:
 um mdulo de hardware que faz o mapeamento entre endereos
lgicos (end. da memria virtual) e os endereos fsicos da memria
RAM, ou seja, um dispositivo que transforma endereos virtuais
em endereos fsicos.
 Mem. Lgica Endereo que o processo enxerga
 Mem. Fsica Implementada pelos circuitos integrados de memria

Swapping
Processo deve estar na memria para ser executado
Processo pode ser transferido temporariamente para disco
Deve ser retomado posteriormente memria para execuo

Ex.: escalonador de CPU usando Round-Robin (Circular)


Assim que termina quantum(time slice) de P1, ele ficar em espera por um
perodo
Gerenciador de memria
Pode retirar P1 da memria e lev-lo para disco (swap out)
Pode-se carregar P2 do disco para a memria para execuo (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
utilizao do sistema

Swapping

Swapping
Permuta de processos
Condies
Assegurar de que o processo a ser permutado est completamente
ocioso
Sem pendncias de operaes de I/O por exemplo
Processo em espera no est aguardando algum dispositivo ocupado
Execuo de operaes em buffer do SO

Alocao da Memria
A memria principal dividida em duas pores:
sistema operacional
processos do usurio

necessrio uma alocao eficiente

Alocao Contgua Simples


Implementa nos primeiros sistemas
operacionais (monoprogramveis)
Forma mais simples de gerncia de
memria
Memria dividida em duas partes

Memria principal
Sistema
Operacional

Uma para SO
Outra para processos

Alocao contgua
Cada processo fica em uma nica seo
contgua de memria

rea de
Programas
do usurio

Alocao Contgua Simples


Apesar da simplicidade de implementao e cdigo reduzido, a alocao contgua
simples no permite a utilizao eficiente do processador e da memria pois
apenas um usurio pode utilizar este recurso
Subutilizao da memria
caso o programa no a preencha totalmente, existir um espao de memria sem
utilizao
Memria Principal

Fragmentao

Sistema
Operacional

Programa
do usurio

rea livre

Alocao Contgua Simples


Os programas dos usurios estavam limitados
ao tamanho da memria principal disponvel
Soluo: Overlay

Memria Principal

Dividir o programa em mdulos

2 Kb

Permitir a execuo independente de cada


mdulo, usando a mesma rea de memria

3 Kb

rea de Overlay
rea de memria comum onde mdulos
compartilham o mesmo espao

Sistema Operacional
Cadastramento
Mdulo principal
4 Kb

4 Kb

rea de overlay

1 Kb

rea livre

Impresso
2 Kb
rea no
utilizada

2 Kb

Alocao Particionada
Multiprogramao
Necessidade do uso da memria por vrios usurios simultaneamente

Mtodo simples de alocao


Dividir memria em diversas parties de tamanho fixo
O tamanho de cada partio era estabelecido na inicializao do sistema
Cada partio pode conter um processo

Quando uma partio est livre


Um processo da fila de entrada selecionado e carregado
Ao terminar execuo, processo libera partio

Alocao Particionada
Gerenciamento de memria disponvel
SO mantm tabela indicando o que est disponvel/ocupado
Inicialmente, toda memria para usurio considerada como um grande
bloco livre
medida que processos chegam, vo para fila de entrada
SO verifica quais processos cabem na memria
Aps carregado, processo passa a competir pela CPU
Quando terminar, libera memria: SO poder preench-la com
outro processo

Processos grandes devem aguardar por blocos de memria


suficientes para abrig-los

Alocao Particionada
Memria Principal
Tabela de parties
Partio

Tamanho

2 Kb

5 Kb

8 Kb

Sistema Operacional

Programas a serem executados:


E

3 Kb

6 Kb

1 Kb

4 Kb

2 Kb

Partio 1

2 Kb

Partio 2

5 Kb

Partio 3

8 Kb

Alocao Particionada
Memria Principal
Partio

Tamanho

Livre

2 Kb

No

5 Kb

Sim

8 Kb

No

Sistema Operacional
1

Programa C

rea livre

Programa B

Multiprogramao com Parties Dinmicas


Elimina a alocao com parties de tamanho fixo
Cada processo utiliza o espao necessrio usando essa rea como
sua partio
No ocorre o problema da fragmentao interna
Problema
Espaos cada vez menores podem surgir na memria
Dificuldade para incluir novos programas
Fragmentao externa

Fragmentao Externa
Trmino dos processos deixa espaos que podem ser insuficientes
para novos programas

Problema:
Pode-se observar no exemplo que
Embora haja 12k de espao livre, o
Programa de 6k no poder ser executado

Soluo para a Fragmentao Externa


1. Soluo
Reunir espaos adjacentes conforme os programas terminam,
produzindo reas livres de tamanho maior

Soluo para a Fragmentao Externa


2. Soluo
Relocao dinmica de todas as parties ocupadas, eliminando
espaos entre elas e criando uma nica rea livre contgua
Algoritmo complexo que consume recursos do sistema

Estratgias de Alocao de Parties


O SO mantm uma lista de rea livres e implementam trs
estratgias para evitar ou diminuir o problema da fragmentao
externa, determinando em qual rea livre um programa ser
carregado para execuo

Estratgia de Alocao Best Fit


Aloca o menor espao sem utilizao que caiba o processo
Lista de reas de estar ordenada por tamanho
Desvantagem
Cada vez mais memria fica com pequenas reas no
contguas

Estratgia de Alocao Worst Fit


Aloca o maior espao existente
Vantagem
Deixa espaos livres maiores, diminuindo o problema da
fragmentao

Estratgia de Alocao First Fit


Aloca o primeiro intervalo grande o suficiente para carregar o
processo
Lista de endereos est ordenada crescentemente por endereos

Estratgias de Alocao de Parties


Simulaes demonstram que o primeiro-apto e o mais-apto so melhores que o
menos-apto
Reduo de tempo
Uso de memria
Primeiro-apto em geral mais rpido
Todos os algoritmos levam fragmentao externa
medida de processos so carregados e removidos, a memria quebrada em
pequenos pedaos de espao livre
s vezes sobra bastante espao, mas no contguo

Dependendo do total de memria e tamanho mdio de processo, problema da


fragmentao pode ser maior ou menor
Anlises estatsticas do primeiro-apto indicam que para N blocos alocados, 0.5*N
so perdidos com fragmentao (1/3 da memria)
OBS: Ocorre a fragmentao externa quando existe espao de memria total para atender a
solicitao, mas ele no contguo; a memria fragmentada em um grande nmero de
pequenos intervalos

Fragmentao
Fragmentao
Interna: espao alocado ao processo maior que solicitado
Alocao ocorre em tamanho mltiplo de um bloco de memria
Tamanho do bloco definido pelo SO

Externa: espao livre da memria quebrado em pedaos (externos aos


processos)

Soluo para fragmentao externa


Compactao: juntar pedaos disponveis
Nem sempre possvel: s se houver relocao dinmica em tempo de execuo
Movimentar processos na memria pode ser caro

Permitir ao processos ter espao de endereamento no contguo


Tcnicas de paginao e segmentao

You might also like