Você está na página 1de 43

Sistemas Operacionais

Gerncia de Memria
Introduo
Edson Moreno
edson.moreno@pucrs.br
http://www.inf.pucrs.br/~emoreno
Slides baseados nas apresentaes dos prof. Tiago Ferreto e Alexandra Aguiar
Conceitos bsicos
Memria principal
Central em sistemas de computador
CPU e sistema de I/O interagem com a memria
Conjunto de bytes ou palavras
Cada um com seu prprio endereo
CPU faz busca e armazenamento na memria
Cada programa deve ser carregado na memria para ser executado
Conceitos bsicos
Memria principal (cont.)
Uma palavra de memria
Conjunto de clulas que podem ser lidas ou escritas
Em geral endereada por byte
Possui dois registradores para as operaes bsicas:
Registrador de endereo de memria
Registrador intermedirio (buffer)
Conceitos bsicos
Memria principal (cont.)
Registrador de endereo de mmria
Contmo endereo de memria a realizar a operao
Endereo pode conter dado ou instruo
Registrador Intermedirio (buffer)
Leitura: recebe a palavra da memria
Escrita: contm a informao a ser gravada na memria
Seletor
Seleciona o espao da memria correspondente ao endereo






Registrador
de endereo
Memria
S
e
l
e
t
o
r


0

1

2

3

4

N-2

N-1

Registrador
intermedirio
Conceitos bsicos
Requisitos de gerenciamento de memria
Relocao
Processo pode estar em qualquer posio da memria
Proteo
Processos tem de ter espao reservado
Compartilhamento
Deve haver espao comum entre processos
Organizao lgica
Organizao intemediria dada pela viso de hw e sw
Organizao fsica
Organizao a ser tomada para, por exemplo, transferncia de
dados entre a memria secundria e a principal
Relocao
Quando o programa carregado na memria o verdadeiro
(absoluto) endereo de memria determinado
Um processo pode ocupar diferentes parties, ou seja,
diferentes locais absolutos da memria durante a execuo
Conceitos bsicos
Memria fsica:
Memria real do sistema implementada com CIs
Possui reas reservadas (ex. vetor de interrupes)
Endereo fsico:
Acessa posies da memria fsica
Memria lgica (virtual):
Memria que um processo pode acessar
Utiliza endereos lgicos
Necessita traduo dos endereos lgico para fsicos
Espao de endereamento do processo
Conjunto de endereos que o processo pode acessar
Espao de endereamento
Unidade de gerenciamento de memria
MMU (Memory Management Unit)
Prov mecanismos bsicos para gerncia de memria
Proteo de acesso
Mapeamento de endereos lgicos em endereos fsicos
Normalmente est junto ao processador
CPU sempre enxerga endereos lgicos
11
Conceitos bsicos
MMU
Relocao
Requisitos: Proteo
Funcionalidade
Evitar o acesso no desejado ou indevido de outros processos
Acesso pode alterar bytes armazenados no espao do processo
Acesso pode ocorrer de forma acidental ou intencional
Processos no devem ser capazes de referenciar lugares da
memria que pertencem a outro processo sem permisso
Impossvel verificar endereos absolutos em tempo de
compilao
Relocao torna imprevisvel a localizao do processo
Garante espao limitado de endereamento
Cada processo tem seu espao de endereamento
Verifica se endereo a ser acessado vlido
Recurso utilizado
Registradores de limite inferior e superior
Demarcam o incio e o fim do espao de endereamento de um
processo
Funcionamento
se (endereo a ser acessado < registrador de limite inferior) ento
gera interrupo - endereo ilegal
se (endereo a ser acessado > registrador de limite superior) ento
gera interrupo - endereo ilegal
acessa memria[end]
Proteo de acesso
Recursos utilizados
Registradores base e limite
Todos programas so carregados com endereo inicial = 0
Funcionamento
se (endereo a ser acessado > registrador limite) ento
gera interrupo - endereo ilegal
seno end = end + regbase
acessa memria[end]
Proteo de acesso
Requisitos: Compartilhamento
Funcionalidade
Permitir a vrios processos que acessem uma mesma poro de
memria
Casos de emprego de compartilhamento
Processos que so cpias do mesmo programa
Acessam o mesmo trecho de cdigo, sem replicaes na memria
Permite reduzir a quantidade de memria alocada
Processos que cooperam
importante que compartilhem uma mesma estrutura de dados
Compartilhamento deve ser provido sem descuidar da proteo
Requisitos: Organizao lgica
Caracterticas do hardware
Memria organizada linearmente (geralmente)
Sequencia de bytes/palavras
Caracterstica do software
Programas so escritos em mdulos
Mdulos podem ser escritos e compilados independentemente
A cada mdulo pode-se aplicar diferentes nveis de proteo
Imutveis: Apenas leitura, apenas execuo
Mutveis: Permite escrita
Emprego da organizao permite
Escrita e compilao de mdulos independentes
Diferentes graus de proteo
Compartilhamento de mdulos entre processos
Requisitos: Organizao fsica
Funcionalidade
Garantir o fluxo de processos entre as memrias principal e
secundria
Responsabilidade:
No pode ser deixada ao programador
Memria disponvel pode ser insuficiente para a carga de um processo
Soluo por parte do programador partiria da explorao de overlaying
o Overlay: uso de um mesmo espao de memria para diferentes
mdulos e dados, carregados conforme necessrio
Dinamicidade em ambientes de multiprogramao causa imprevisibilidade
Em tempo de compilao o programador no sabe
o Quanto espao ter disponvel em memria
o Onde ter espao disponvel na memria
Cenrio
Existe um nico processo em execuo na memria
Permite o uso de toda a parte que resta da memria
Esquema mais simples possvel
A memria dividida
Sistema operacional
Processo do usurio
Monoprogramao
Formas de organizar a memria
Monoprogramao
Existem vrios processos na memria
Coexistncia de processos
Aptos executar
Em execuo
Multiprogramao
Particionamento da memria
D suporte multiprogramao
Permite aumentar a utilizao do processador
Para tirar vantagem da multiprogramao,
vrios processos precisam estar na memria
Parties fixas
Memria dividida em parties de tamanhos fixos
Tamanhos podem ser os mesmos ou no
Quando programa carregado
Entra em uma fila de processos para utilizar uma partio
livre
O nmero mximo de processos concorrentes baseado
no nmero de parties
Exemplo:
Particionamento de uma mquina com 32 KBytes de memria
4KBytes: processos pequenos
6KBytes: processos mdios
12KBytes: processos grandes
10KBytes: kernel
Parties fixas
Problema:
Tamanho do processo a ser carregado e otamanho da partio no so
equivalentes
Consequncia
Fragmentao interna:
Ocorre quando o tamanho da partio maior que o tamanho do processo
Espao que sobra dentro da partio quando processo alocado na partio
Fragmentao externa:
Detectado quando existem parties livres que, se combinadas, poderiam ser
usadas por um processo que est aguardando
Proposta de soluo para fragmentaes
Emprego de parties de tamanhos distintos, mas fixos
Diminui ambos problemas
Mas no resolve completamente
Exemplo da figura
Processos de at 16M podem ser acomodados
Processos menores podem ser acomodados nas parties menores,
reduzindo a fragmentao interna
Parties fixas
Parties fixas
Algoritmo de alocao
Parties de tamanho equivalentes
Trivial: Havendo espao disponvel, aloca-se para o processo em carga
Parties de tamanho equivalentes
Pode associar cada processo com a menor partio na qual ele cabe
Processos devem ser alocados de tal maneira que minimizem o
desperdcio de memria em cada partio
Pode-se empregar uma fila para cada tamanho de partio
Garante a reduo/eliminao da ocorrncia de fragmentao interna
Pode causar mal uso de parties
o Parties maiores no utilizadas poderiam ser alocadas para
processos menores
Pode-se empregar uma nica fila para todas as parties
No caso de no existncia de de espao, swap pode ser requerido
Parties fixas
Vantagens
Provemesquema simples para gerenciamento
Requerem baixo desperdcio de tempo de processamento do sistema
operacional
Desvantagens
O nmero de processos ativos limitados pelo nmero de partioes
Partioes so definidas durante o tempo de gerao do sistema
Processos muito pequenos no usamo espao eficientemente
Em ambos os mtodos (tamanhos iguais ou diferentes)
Tcnica emdesuso atualmente
IBM OS/MFT empregava tal tcnica
MFT: Multiprogramming with a fixed number of Tasks
Parties fixas
Parties variveis/dinmicas
Objetivo:
Superar dificuldades do uso de parties fixas
Parties de tamanhos e quantidade distintos
Tamanho das parties ajustado dinamicamente
Processo carregado na memria ocupa o espao referente ao seu tamanho
SO contm lista de espaos livres na memria fsica
Mapa de bits ou lista encadeada
Fragmentao Externa
Memria externa a todos os processos
fragmentada
Pode ser resolvido com compactao
OS move os processos
Permite juntar reas livres
Consome tempo e gasta tempo de CPU
OS (8M)
P1
(20M)
P2
(14M)
P3
(18M)
Empty
(56M)
Empty (4M)
P4(8M)
Empty (6M)
P2
(14M)
Empty (6M)
Parties variveis
Parties variveis
Alocao de parties
Sistema operacional deve decidir qual bloco livre ser associado
a um processo
Algoritmos de alocao
Best-fit
First-fit
Next-fit
Worst-fit
Parties variveis
Best-fit
Escolhe-se a partio onde o processo deixa o menor espao sem utilizao
Escolhe o bloco cujo tamanho o mais prximo do requisitado
Nesse algoritmo
Desempenho ruim quando todos os blocos tem de ser avaliados
Objetivo garantir a melhor escolha de partio livre
Otimizao
A lista de reas livres est ordenada por tamanho
Diminuindo o tempo de busca por uma rea desocupada.
Desvantagem do algoritmo
Escolha da partio mais aproximada resulta em pequenas parties livres
Tendncia ter grande quantidade de pequenas reas livres no-contguas
Aumentando o problema da fragmentao.
Soluo pode ser o emprego de Compactao de memria
Pode ser necessria mais frequentemente
Parties variveis
Worst-fit
Escolhe-se a partio onde o processo deixa o maior espao sem utilizao
Escolhe o maior espao livre na memria
Nesse algoritmo
A lista de reas livres deve estar ordenada por tamanho para otimizar busca
Comparado ao best-fit
Reduz (no elimina) o problema da fragmentao
Parties variveis
First-fit
Busca por espao livre
Varre a memria do incio
Escolhe o primeiro bloco disponvel que seja grande o suficiente
Mtodo tenta primeiro utilizar as reas livres de endereos mais baixos
Boa chance de se obter uma grande partio livre nos endereos mais altos
Algoritmo mais rpido dos trs (best / worst / first)
A lista de reas livres est ordenada por endereos crescentemente
Consome menos recursos para a busca
Next-fit
Similar ao First-fit
Diferena est na busca, que ocorre a partir do endereo da ltima posio alocada
Exerccios
1) Considere um sistema cuja gerncia de memria feita atravs de
parties variveis. Nesse momento, existem as seguintes
lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem.
Quais espaos sero ocupados pelas solicitaes: 5k, 10k e 6k,
nessa ordem, se:
a) First-fit for utilizado?
b) Next-fit for utilizado?
c) Best-fit for utilizado?
d) Worst-fit for utilizado?
37
Resposta 1
Lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k
Solicitaes: 5k, 10k e 6k
First-fit:
* 5k, 4k, 20k, 18k, 7k, 9k, 12k e 13k
* 5k, 4k, 10k, 18k, 7k, 9k, 12k e 13k
* 5k, 4k, 4k, 18k, 7k, 9k, 12k e 13k
Next-fit:
* 5k, 4k, 20k, 18k, 7k, 9k, 12k e 13k
* 5k, 4k, 10k, 18k, 7k, 9k, 12k e 13k
* 5k, 4k, 10k, 12k, 7k, 9k, 12k e 13k
Best-fit:
*10k, 4k, 20k, 18k, 2k, 9k, 12k e 13k
*(0k), 4k, 20k, 18k, 2k, 9k, 12k e 13k
*(0k), 4k, 20k, 18k, 2k, 3k, 12k e 13k
Worst-fit:
* 10k, 4k, 15k, 18k, 7k, 9k, 12k e 13k
* 10k, 4k, 15k, 8k, 7k, 9k, 12k e 13k
* 10k, 4k, 9k, 8k, 7k, 9k, 12k e 13k
Exerccios
2) Considere novamente um sistema cuja gerncia de memria
feita atravs de parties variveis. Nesse momento, existem as
seguintes lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa
ordem. Quais espaos sero ocupados pelas solicitaes: 15k, 4k e
8k, nessa ordem, se:
a) First-fit for utilizado?
b) Next-fit for utilizado?
c) Best-fit for utilizado?
d) Worst-fit for utilizado?
Resposta 2
Lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k
Solicitaes: 15k, 4k e 8k
First-fit:
* 10k, 4k, 5k, 18k, 7k, 9k, 12k e 13k
* 6k, 4k, 5k, 18k, 7k, 9k, 12k e 13k
* 6k, 4k, 5k, 10k, 7k, 9k, 12k e 13k
Next-fit:
* 10k, 4k, 5k, 18k, 7k, 9k, 12k e 13k
* 10k, 4k, 5k, 14k, 7k, 9k, 12k e 13k
* 10k, 4k, 5k, 14k, 7k, 1k, 12k e 13k
Best-fit:
* 10k, 4k, 20k, 3k, 7k, 9k, 12k e 13k
* 10k, 0k, 20k, 3k, 7k, 9k, 12k e 13k
* 10k, 0k, 20k, 3k, 7k, 1k, 12k e 13k
Worst-fit:
* 10k, 4k, 5k, 18k, 7k, 9k, 12k e 13k
* 10k, 4k, 5k, 14k, 7k, 9k, 12k e 13k
* 10k, 4k, 5k, 6k, 7k, 9k, 12k e 13k
Exerccio
Um sistema utiliza alocao particionada dinmica como
mecanismo de gerncia de memria. O sistema operacional
aloca uma rea de memria total de 50Kb e possui, inicialmente,
os processos da tabela a seguir:
Realize as operaes abaixo seqencialmente, mostrando o estado
da memria aps cada uma delas. Resolva a questo utilizando as
estratgias best-fit, worst-fit e first-fit.
a) alocar uma rea para o programa D que possui 6 Kb;
b) liberar a rea do programa A;
c) alocar uma rea para o programa E que possui 4 Kb.
5 Kb Processo A
3 Kb Processo B
10 Kb Livre
6 Kb Processo C
26 Kb Livre

Buddy System
Alternativa aos particionamentos fixos e variveis
Todo o espao disponvel tratado como um nico bloco 2
U
Se requisio de tamanho s tal que 2
U-1
< s <= 2
U
Todo o bloco alocado
Seno, bloco dividido em dois buddies iguais
Processo continua at que um menor bloco maior ou igual ao tamanho s
seja gerado
Exemplo
1 M
512 K
128 K
Processo A requesita 100 K
512 K
256 K 256 K
256 K
512 K
512 K 128 K A
Exemplo
rvore de representao do Buddy

Você também pode gostar