You are on page 1of 72

Sistemas Operacionais Gerncia de Memria

Thiago Leite! thiago.leite@udf.edu.br

"1

Gerncia de Memria
Hierarquia de memrias! Memrias pequenas e rpidas! Memrias grandes e lentas
"2

Gerncia de Memria
Como o acesso a cada uma delas?! Sistema operacional abstrai o acesso! Uma parte do sistema operacional se
encarrega da gesto da memria

"3

Gerncia de Memria
Gerenciador de Memria! Parte do sistema operacional que
necessrio! gerencia as memrias principais e secundrias!

Alocar e liberar memria quando Identicar espao livre e espao utilizado


"4

Gerncia de Memria
Vrios esquemas diferentes de
gerenciamento de memria! rsticos por hardware ! complexos

nveis inferiores utilizam mecanismos nveis mais sosticados utilizam softwares


"5

Gerncia de Memria
Como seria realizado o processo de acesso sem abstrao
"6

gerenciamento de memria sem um gestor de memria? !

Gerncia de Memria
Sem abstrao de memria! Endereos absolutos em memria! ! "#$%&'()*+'&,-%,...

"7

Gerncia de Memria
Sem abstrao de memria! Processos podem alterar qualquer regio
da memria ! memria

Apenas um programa por vez em


"8

Gerncia de Memria
Como permitir que o sistema operacional
co-exista com outro processo em memria? !

Os dados podem ser organizados em

trs variaes possveis de alocao da memria

"9

Organizao da Memria
"10

Gerncia de Memria
Como executar mltiplas aplicaes sem
abstrao?!

Troca de processos em memria


(swapping)

"11

Gerncia de Memria
Problemas ainda persistem! Proteo de acesso! Realocao de memria
"12

Gerncia de Memria
Proteo de acesso! dois processos tentando atuar na mesma
regio de memria

"13

Problema de realocao
"14

Gerncia de Memria
Realocao esttica! sistema dene tamanhos de memria que os
processos podem ocupar!

processos quando criados so divididos em mdulos! cada mdulo possui uma varivel para o endereo de
acesso!

os processos no preenchiam totalmente as


parties onde eram carregados
"15

ex: JMP endx (endereo X)!

Gerncia de Memria
Realocao dinmica! Parties sem tamanho xo, onde cada programa
utiliza o espao que necessita!

Registradores-base e registradores-limite! Registrador-base possui endereo de onde o


programa comea! leitura!

Registrador-limite identica o limite mximo de Em tempo de execuo


"16

Gerncia de Memria
Realocao dinmica! Instrues de leitura e escrita so
modicadas!

Processo executa a instruo! ! /"0%12% Hardware trata! ! /"0%,34,1


"17

Registrador-base e registrador-limite
"18

Gerncia de Memria
E quando a memria fsica no comporta
todos os processos?!

Dois mtodos distintos para lidar com a


sobrecarga de memria!

swapping! memria virtual


"19

Gerncia de Memria
Swapping! Alocar os processos mais necessrios! Liberar espao dos processos menos
necessrios!

Otimizar o uso da memria


"20

Swapping
"21

Gerncia de Memria
Swapping! Processos devem ser alocados em
espaos contnuos !

Espaos desalocados podem surgir! Compactao de memria! Registradores base e limite funcionam
bem
"22

Gerncia de Memria
Swapping! Processos podem crescer! Alocao dinmica de memria! Uso de rea temporria de memria
(heap)!

Se acabar o espao em memria e em


"23

disco (memria swap) o processo suspenso at que se libere mais memria

Alocao de espao para expanso


"24

Gerncia de Memria
Gerncia do uso de memria! mapa de bits! listas livres
"25

Gerncia de Memria
Mapa de bits! memria dividida em unidades de igual tamanho! cada unidade correspondente um bit no mapa
(1 ocupado e 0 livre)!

quanto menor a unidade maior o mapa de bits e


do uso eciente da memria!

quanto maior a unidade menor o mapa de bits e


maior o desperdcio da memria
"26

Gerncia de Memria
Listas Encadeadas ! segmentos so pores livres ou

ocupadas de unidades sequenciais !

"27

Mapa de Bits e Listas Encadeadas


"28

Lista Encadeada e suas Atualizaes


"29

Gerncia de Memria
Algoritmos de alocao de processos em
memria!

rst-t! next-t! best-t! worst-t! quick-t


"30

Gerncia de Memria
Algoritmo rst-t (primeiro encaixe)! ocupa a primeira poro de memria

disponvel com o tamanho necessrio ao processo

"31

P3

P1

P4

P2
Exemplo de Algoritmo First-Fit
"32

Processos a serem alocados em ordem 212k 417k 112k 426k

Exemplo de Algoritmo First-Fit


"33

Gerncia de Memria
Algoritmo next-t (prximo encaixe)! semelhante ao rst-t! no inicia no incio da lista a cada nova
procura

"34

Gerncia de Memria
Algoritmo best-t (melhor encaixe)! escolha na lista inteira o local mais
apropriado para alocar nova rea!

mais lento que os demais algoritmos! curiosamente o menos eciente dos


algoritmos apresentados! inteis

muitos pequenos espaos no alocados e


"35

Processos a serem alocados em ordem 212k 417k 112k 426k

Exemplo de Algoritmo Best-Fit


"36

Gerncia de Memria
Algoritmo worst-t (pior encaixe)! escolhe segmentos que sobraro mais
espao depois de alojados! resultados

simulaes no apresentam bons


"37

Gerncia de Memria
Algoritmo quick-t (rpido encaixe)! mantm vrias listas com os tamanhos de
segmentos de memria mais solicitados!

percorre cada uma das listas como o

algoritmo rst-t com a ecincia de uso do best-t

"38

Gerncia de Memria
Solicitao de mais espao em memria! Processos podem solicitar mais memria! Alocao dinmica de memria

Gerncia de Memria
Problema a resolver: bloatwares! programas crescem mais rapidamente
que a memria!

1980: 4 MB para dezenas de usurios! Atualmente: mnimo de 1 GB para rodar


Windows 8
"40

Gerncia de Memria
Problema a resolver: necessidade de
execuo simultnea de vrios processos no individualmente comportados!

Coletivamente excedem a memria! Exemplo: memria de 1 GB e dois


"41

processos de 1 GB cada precisam estar em execuo simultaneamente

Gerncia de Memria
Primeira soluo: Sobreposies (Overlays)! Inicializado apenas o gerenciador de
sobreposies!

Programador dividia o cdigo em blocos


(sobreposio)!

Gerenciador decide quais sobreposies


deveriam car em memria
"42

Sobreposio (Overlays)
"43

Gerncia de Memria
Problemas de Sobreposies (Overlays)! Diviso do programa em mdulos pelo
programador!

Propenso a erros (programadores erram)! Que critrios seriam utilizados para gerir
as sobreposies?
"44

Gerncia de Memria
Memria virtual! Cada programa possui espao de
endereamento prprio!

Espao de endereamento dividido em


blocos (pginas ou frames)! pginas

O SO responsvel pela gesto das


"45

Gerncia de Memria
Gestor de Memria mapeia memria
principal e secundria em memria virtual! est ou no em memria fsica (principal)! referncia quando ela no est na memria fsica
"46

Programa pode referenciar parte que

SO responsvel em carregar pgina de

Gerncia de Memria
Multiprogramao com memria virtual! CPU poder ser dada a outro processo Melhor aproveitamento da CPU
"47

enquanto um processo espera sua pgina ser carregada!

Gerncia de Memria
Memria virtual! Sistemas utilizam tcnica de paginao! Conjunto de endereos virtuais! Constitui o espao de endereamento virtual! Lista de ponteiros para os endereos fsicos! Em computadores sem memria secundria
o endereo virtual idntico ao endereo fsico
"48

Gerncia de Memria
Dispositivo responsvel em traduzir as MMU (Memory Management Unit)

instrues de acesso memria virtual!

"49

Localizao e funo da MMU


"50

Gerncia de Memria
Tabela de pginas! Mapeia endereos virtuais em endereos fsicos! Exemplo! tabela de endereos virtuais de 16 bits de
pginas de 64KB!

memria fsica de 32 KB de memria fsica! programas de 64 KB


"51

Tabela de pginas
"52

Gerncia de Memria
Paginao! Pginas (pages)! Molduras de pgina (page frames)! Pginas em memria fsica! Apenas as molduras de pginas podem
acessadas simultaneamente! presente?

E se tentarmos acessar uma instruo no


"53

Gerncia de Memria
Interrupo por falta de moldura de pgina
(page fault)! disco!

Escolhe moldura pouca usada e salva em Carrega nova moldura! Atualiza tabela de pginas! Reinicia instruo causadora
"54

Freqncia de faltas de pginas de acordo com o nmero de molduras alocadas


"55

Traduo de Endereos pela MMU


"56

Gerncia de Memria
Exemplo de uso da MMU apresentada! 16 bits de entrada na tabela de pginas! 15 bits de memria fsica! endereo 37413 (1001 0010 0010 0101)! endereo fsico 21029 (101 0010 0010 0101)! endereo 57348 (1110 0000 0000 0100)! Page fault
"57

Tabela de Pginas 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00 00 00 10 00 00 00 11 00 01 00 00 00 00 00 00 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0

Sada: ! {11} 1110 1110 0000 Converso de memria virtual de 16 bits para memria fsica de 14 bits Entrada: ! {1000} 1110 1110 0000

Exemplo de Tabela de Pginas


"58

Gerncia de Memria
Possvel soluo para alocar mais molduras
de pgina!

Pginas compartilhadas

"59

Dois processos que compartilham o mesmo programa compartilhando sua tabela de pgina
"60

Gerncia de Memria
Bibliotecas compartilhadas! Evitar ligar estaticamente todas as
bibliotecas a cada programa!

Windows! DLL (Dynamic-Link Library)! Linux! SO (Shared Object)


"61

Gerncia de Memria
No Linux!
5%677%89:;86<% % 6:;=>?@ABCD<ED,%FG%%H.>IIIIC...J% % 6:9<C6:;=>D<ED,%FG%86:986:9<C6:;=>D<ED,%H.>9K3CK...J% % 6:9LBD<ED,%FG%86:986:9LBD<ED,%H.>9K377...J% % 6:9MAND<ED1%FG%86:986:9MAND<ED1%H.>9K37K...J% % 6:9AM6D<ED,%FG%86:986:9AM6D<ED,%H.>9K3M7...J% % 6:9MD<ED3%FG%86:986:9MD<ED3%H.>9KOOI...J% % 6:976D<ED1%FG%86:986:976D<ED1%H.>9KOOA...J% % 86:9867?6:;=>D<ED1%H.>9KK1P...J% % 6:9NBQLCA7D<ED.%FG%86:986:9NBQLCA7D<ED.%H.>9KOPI...J% % 6:9ABBLD<ED,%FG%86:986:9ABBLD<ED,%H.>9KOPR...J

"62

Gerncia de Memria
No Mac OS X!
5%EBEE6%?S%89:;86<% 89:;86<T% %8=<L86:986:9;M=L<C<DOD4D7U6:9%HMEVNAB:9:6:BU% WCL<:E;%OD4D.-%M=LLC;B%WCL<:E;%OD4D.J% %8=<L86:986:9=B:6D7U6:9%HMEVNAB:9:6:BU% WCL<:E;%,D.D.-%M=LLC;B%WCL<:E;%,D.D.J% %8=<L86:986:9*U<BCVDXD7U6:9%HMEVNAB:9:6:BU% WCL<:E;%,D.D.-%M=LLC;B%WCL<:E;%,ORD,D.J

"63

Reviso

Hierarquia de memrias! memria!

Proteo da memria
em sistemas sem abstrao! realocao de memria! memria!

Gerenciador de Gerenciamento de
memria de baixo nvel!

Problema de

Realocao esttica de Realocao dinmica


de memria!

Memria virtual! MMU! Memria heap! Sobreposies! Multiprogramao com


memria virtual!

Sistemas sem abstrao de memria! Organizao da memria! aplicaes sem abstrao!

Tabela de pginas! Pginas e molduras de


pginas!

Espao de Swapping!
"64

Executando mltiplas

endereamento! registrador-limite!

Registrador-base e

Paginao! Pginas compartilhadas! Bibliotecas


compartilhadas

Universidade Federal de Alagoas


a)Page Frames.! b)Programas.! c)Partes de Programas.! d)Setores do disco.! e)Espao de memria.
As pginas no armazenamento virtual so o mesmo que:!

"65

Correios
(CESPE) Um programa carregado na memria e em execuo denominado processo. Nos sistemas operacionais de tempo compartilhado e nos multiprogramados, os jobs devem ser mantidos na memria ao mesmo tempo que so executados e, por isso, o sistema deve prover recursos de gerncia de memria e proteo.! a) Certo! b) Errado
"66

Tribunal Regional do Trabalho


a)mapear os endereos virtuais para endereos fsicos b)dividir a memria em parties de tamanhos variados.! c)pesquisar e selecionar o job que melhor se ajuste ao d)gerenciar os registradores de base e registradores de
limite.
"67

A Memory Management Unit (MMU) tem como funo:! de memria.!

tamanho da partio.!

FUB
(CESPE) Em sistemas multiprogramados, uma forma de resolver o problema da realocao consiste em alterar as instrues do programa de acordo com a partio de memria em que ele ser carregado.! a) Certo! b) Errado
"68

FUB
(CESPE) Swaping a troca de processos entre a memria e o disco, quando a memria principal no suciente para conter todos os processos.! a) Certo! b) Errado

"69

FUB
(CESPE) Para que um programa possa ser executado, o seu tamanho, incluindo os dados e a pilha, no pode ser maior que a quantidade de memria fsica disponvel no computador para a sua execuo.! a) Certo! b) Errado
"70

DETRAN-ES
(CESPE) No gerenciamento de memria virtual, um sistema operacional pode ter uma parte dos espaos de endereamento atribuda memria principal e outra ao disco rgido, sendo possvel alternar o uso desses espaos de acordo com a necessidade de gerenciamento e uso.! a) Certo! b) Errado
"71

Universidade Federal de Pernambuco


a)Divide o espao de endereamento virtual e espao de endereamento real em
blocos do mesmo tamanho chamados de segmentos.! blocos do mesmo tamanho chamados de buffer.! chamados segmentos.! Um dos tipos de gerenciamento de memria utilizados por sistemas operacionais a memria virtual. Este tipo de memria pode ser gerenciada por segmentao. Assinale a alternativa que descreve o funcionamento do gerenciamento de memria virtual por segmentao:!

b)Divide o espao de endereamento virtual e espao de endereamento real em c)Divide o espao do endereamento virtual em blocos de tamanhos diferentes d)Divide o espao de endereamento virtual e espao de endereamento real em e)Divide o endereamento memria virtual em partes semelhantes chamadas de
blocos. blocos do mesmo tamanho chamados de pginas.!

"72

You might also like