Você está na página 1de 30

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Introduo
Consideraes:

Necessidade de uso

Recurso caro e escasso; Programas s executam

otimizado;
O S.O. no deve ocupar

se estiverem na memria principal;


Quanto mais processos

muita memria;
" um dos fatores mais

residentes na memria principal, melhor ser o compartilhamento do processador;

importantes em um projeto de S.O."

Gerenciamento de Memria
Algumas funes do Gerenciador

de Memria:

Tratar do Swapping entre

Controlar quais as

memria principal e memria secundria.


Transferncia temporria de

unidades de memria esto ou no esto em uso, para que sejam alocadas quando necessrio;
Liberar as unidades de

processos residentes na memria principal para memria secundria.

memria que foram desocupadas por um processo que finalizou;

Gerenciamento de Memria
Tcnicas de Alocao de Memria:

Alocao Contgua

Simples;
Alocao Particionada

Esttica;
Alocao Particionada Esttica Absoluta; Alocao Particionada Esttica Relocvel;

Alocao Particionada

Dinmica.

Alocao Contgua Simples


Alocao implementada nos primeiros sistemas e

ainda usada nos monoprogramveis;


A Memria dividida em duas reas:

Memria principal
Sistema Operacional

rea do Sistema Operacional rea do Usurio


Um usurio no pode usar uma rea maior do que a

disponvel;
Sem proteo:

rea de Programas do usurio

Um usurio pode acessar a rea do

Sistema Operacional.

Alocao Contgua Simples


Registrador de proteo delimita as reas

do sistema operacional e do usurio;


Sistema verifica acessos memria em
Reg

Memria principal
Sistema Operacional

relao ao endereo do registrador;


A forma de alocao era simples, mas no
rea de Programas do usurio

permitia utilizao eficiente de processador e memria;

Alocao Contgua Simples


Programas de usurio limitados pelo

tamanho da memria principal disponvel.


Soluo: Overlay

Memria principal
Sistema Operacional rea do Mdulo Principal rea de Overlay

Dividir o programa em mdulos; Permitir execuo independente

de cada mdulo, usando a mesma rea de memria;


rea de Overlay

rea de memria comum onde

mdulos compartilham mesmo espao.

Alocao Particionada
Multiprogramao.

Necessidade do uso da memria por vrios usurios

simultaneamente.
Ocupao mais eficiente do processador; A memria foi dividida em pedaos de tamanho fixo chamados

parties;
O tamanho de cada partio era estabelecido na inicializao do

sistema;
Para alterao do particionamento, era necessrio uma nova

inicializao com uma nova configurao.

Alocao Particionada Esttica


Alocao Particionada Esttica Absoluta:
Compiladores gerando cdigo absoluto;
Endereos relativos ao incio da memria;

Programas exclusivos para parties especficas.

Alocao Particionada Esttica Relocvel:


Compiladores gerando cdigo relocvel;
Endereos relativos ao incio da partio;

Programas podem rodar em qualquer partio.

Alocao Particionada Esttica


Proteo:

Registradores com

Memria principal
Sistema Operacional Partio A Partio B Partio C

limites inferior e superior de memria acessvel.


Programas no ocupam

Reg

Reg

totalmente o espao das parties, gerando uma fragmentao interna.

Alocao Particionada Dinmica


No existe o conceito de partio

dinmica.

Memria principal
Sistema Operacional Processo A Processo C Processo F Processo E

O espao utilizado por um

programa a sua partio.


No ocorre fragmentao interna. Ao terminarem, os programas

deixam espalhados espaos pequenos de memria, provocando a fragmentao externa.

Alocao Particionada Dinmica


Solues:

Reunio dos espaos

Memria principal
Sistema Operacional Processo A

contguos. Relocao Dinmica:


Movimentao dos programas pela memria principal. Resolve o problema da fragmentao. Consome recursos do sistema
Processador, disco, etc.

Processo F Processo E

Gerncia de Memria
Mapeamento de bits:
Cada bit representa uma unidade de

alocao; Raramente utilizado atualmente.


muito lenta.

Mapeamento da Memria com listas ligadas:


P: Processo B: Buraco

Header

P/B incio tamanho

P/B incio tamanho

Gerenciamento de Memria
Mapeamento da Memria

com listas ligadas:


Best-Fit (melhor alocao): Espao mais prximo do tamanho do processo; Tempo de busca grande; Provoca fragmentao. Worst-Fit (pior alocao): Cria o maior espao possvel; Tempo de busca grande; No apresenta bons resultados.

First-Fit (primeira

alocao):
Melhor performance.

Next-Fit (proxima

alocao):
Performance inferior ao

First-Fit.

Gerenciamento de Memria
Consideraes sobre Mapeamento

da Memria com listas ligadas :

Todos melhoram

Listas ordenadas por tamanho de espao melhoram a performance.

em performance se existirem listas distintas para processos e espaos, embora o algoritmo fique mais complexo.

Swapping
Os processos ficavam na Soluo: Swapping.

memria principal, mesmo se bloqueados pela espera de algum evento.

Tcnica para resolver

problema de processos que aguardam por espao livre adequado; Processos no ficam mais na memria o tempo todo.

Swapping
Um processo residente na memria levado para o disco (Swapped-

Out), dando lugar a outro;


O processo Swapped-Out retorna memria (Swapped-In), sem

"perceber" o que ocorreu.


Sistema Operacional programa A programa B programa E programa G B B Memria principal Sistema Operacional programa A Swap In programa H programa E
programa A

Swap Out

programa B

Swapping
Problema gerado pelo Swapping:

Relocao de processos:
O tempo gasto com relocao alto; Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU.

Swapping
Vantagens da tcnica de Swapping:

Permite maior compartilhamento da

memria; Aumento no Throughput (quantidade de processos executados por unidade de tempo);


Eficiente para sistemas com poucos usurios e pequenas aplicaes; Problema:

custo do Swapping (in/out).

Exerccios
Qual a diferena entre RAM dinmica e RAM

esttica?
Quais os principais tipos de memria RAM e

para que so utilizados?


Pesquise o que Paginao e como funciona?

Paginao
A paginao permite que o programa possa ser espalhado por

reas no contguas de memria.

Caractersticas:
o espao de endereamento lgico de um processo dividido em pginas lgicas de tamanho fixo a memria fsica dividida em pginas com tamanho fixo, com tamanho igual ao da pgina lgica o programa carregado pgina a pgina, cada pgina lgica ocupa uma pgina fsica as pginas fsicas no so necessariamente contguas

Paginao
o endereo lgico inicialmente dividido em duas partes : um nmero de pgina lgica e um deslocamento dentro da pgina o nmero da pgina lgica usado como ndice no acesso a tabela de pginas, de forma a obter o nmero da pgina fsica correspondente no existe fragmentao externa existe fragmentao interna (Ex: um programa que ocupe
201kb, o tamanho de pgina de 4 kb, sero alocadas 51 pginas resultando uma fragmentao interna de 3kb)

Realocao de Pginas
O maior problema de gerenciamento de memria no decidir que pgina carregar para a memria, mas que pginas remover Antes de remover uma pgina o sistema operacional verifica se a mesma foi alterada (bit de modificao 0 (no ocorreu modificaes) 1 (ocorreram modificaes). A pgina removida salva na memria secundria. Quando ela for referenciada trazida novamente para o working set

Estratgias de Realocao de Pginas


Aleatria - no utiliza nenhum critrio de seleo, todas as pginas tm a mesma chance FIFO - a pgina que primeiro foi utilizada ser a primeira a ser escolhida Least-Recently-Used (LRU) - seleciona a pgina que est a mais tempo sem ser referenciada Least-Frequently-Used (LFU) - seleciona a pgina menos freqentemente usada (mantm um contador)

Segmentao
Tcnica de gerncia de memria onde programas so divididos em segmentos de tamanhos variados cada um com seu prprio espao de endereamento.

Segmentao
Memria PROGRAM pr01; VAR A:ARRAY... C.... PROCEDURE X: END; FUNCTION Y; END; BEGIN END. Procedimento A Programa Principal Funo Y Procedimento X

Segmentao
o sistema operacional mantm uma tabela

com as reas livres e ocupadas da memria


somente segmentos referenciados so

transferidos para a memria principal


ocorre fragmentao externa

Memria Virtual
Tcnica de gerenciamento que combina a

memria principal e a secundria dando ao usurio a idia de existir uma memria maior que a memria principal.
Desvincula o endereamento feito pelo programa

dos endereos fsicos da memria principal


Um programa no ambiente de memria virtual

no faz referncia a endereos fsicos mas endereos virtuais

Memria Virtual
o endereo virtual traduzido para o endereo

fsico atravs do mapeamento


os programas podem ser muito maiores do

que sua memria fsica, apenas parte deles est residente na memria em um determinado instante
o restante do programa fica na memria

secundria at ser referenciado

Exerccios
Como funciona a gerncia de memria no

ambiente Windows ? Descreva brevemente a ideia


Qual a importncia de uma partio SWAP no

linux. Que tamanho deve ser essa partio?