Click here to load reader
View
214
Download
0
Embed Size (px)
1
Page 1
Sistemas Operativos DEI - IST
Gesto de MemriaParte I - mecanismos
Sistemas Operativos
2011 / 2012
Sistemas Operativos DEI - IST
Espao de Endereamento
Conjunto de posies de memria que um processo pode referenciar
E se referenciar outras posies de memria? HW de gesto de memria desencadeia excepo Tratada pelo SO (tipicamente termina processo)
2
Page 2
Sistemas Operativos DEI - IST
Hierarquia de Memria Memria principal (fsica ou primria):
acesso aleatrio tempo de acesso reduzido custo elevado reduzida dimenso informao voltil RAM + caches [ + registos ]
Memrias secundrias (ou de disco): acesso aleatrio (por blocos) tempo de acesso elevado custo reduzido mais abundante informao persistente
Sistemas Operativos DEI - IST
Gesto de Memria Objectivo
Gerir o espao de endereamento dos processos assegurar que cada processo dispe da memria
que precisa garantir que cada processo s acede memria a
que tem direito (proteco) optimizar desempenho dos acessos
3
Page 3
Sistemas Operativos DEI - IST
Breve Incurso peloEndereamento Real
Motivos para a incurso: Terminologia Histricos (e.g., MS-DOS) Sistemas embebidos (e.g., smart-cards) usam
endereamento real
Sistemas Operativos DEI - IST
Endereos Reais vs. Virtuais
Endereamento Real Endereo indicado no programa aquele que
acedido na memria principal Usados pelos sistemas iniciais monoprogramados Limitaes?
Dimenso dos programas? Multiprogramao? Capacidade de ser executado em diferentes mquinas?
4
Page 4
Sistemas Operativos DEI - IST
Programaprincipal
(residente)
Memria principal
Overlay 1
Overlay 2
Overlay 3
Mecanismo de Sobreposio (Overlay)
Possibilidade de executar programas com dimenso superior memria principal em sistemas com endereamento real
Os overlays continuam a ter de ser dimensionados para a memria fsica disponvel.
Programador indica explicitamente quando deve ser carregado um overlay
Sistemas Operativos DEI - IST
Sistemas Multiprogramados comEndereamento Real Parties Fixas
Memria dividida em parties de dimenso fixa
Em cada partio carregado um programa
Programas recolocveis Endereamento baseado Registo base + deslocamento
Vrios programas em execuo implica mecanismos de proteco Registo limite validado em cada acesso
Fragmentao interna: dimenso dos programas no coincide exactamente com a dimenso das parties
5
Page 5
Sistemas Operativos DEI - IST
Fragmentao externa: muitas parties de dimenso muito reduzida
Quando um programa termina, a sua partio pode ser associada a outra (se for contgua), criando uma nica de maior dimenso
Implica a recompactao da memria processamento suspenso
Sistemas Multiprogramados comEndereamento Real Parties Variveis
Sistema Operativo
Prog A 50 K
Prog C 30 K
Prog B 70 K
Prog D 80 K
Livre 20k
Prog D
80 K
Prog C
30 K
Prog B
70 K
Prog A
50 K
Prog E
40 K
Fila de espera nica de programas para execuo
Sistemas Operativos DEI - IST
Endereos Reais vs. Virtuais
b) Memria Virtuala) Memria Real
Espao de endereamento virtual Memria Fsica
Unidade de gesto da memria
Espao de endereamento visto pelo programa Memria Fsica
6
Page 6
Sistemas Operativos DEI - IST
Endereamento Virtual Espao de endereamento dos processos no
linearmente relacionado com a memria fsica Endereos virtuais so sempre convertidos (pela UGM)
para endereos reais Para minimizar a informao necessria converso, a
memria virtual logicamente dividida em blocos contguos: Endereo virtual = (bloco, deslocamento)
Dois tipos de blocos: Segmentos - dimenso varivel. Pginas - dimenso constante.
Alguns blocos podem no residir em memria principal
Sistemas Operativos DEI - IST
Espao de Endereamento Virtual
Memria auxiliar
Espao Virtual do processo A
Espao Virtual do processo B
Espao Virtual do Processo C
Memria fsica
7
Page 7
Sistemas Operativos DEI - IST
Princpio da Localidade de Referncia
Em que consiste? Porque motivo torna a gesto em blocos
eficiente?
Sistemas Operativos DEI - IST
Segmentao Diviso dos programas em segmentos lgicos que reflectem
a sua estrutura funcional: rotinas, mdulos, cdigo, dados, pilha, etc. a converso de endereos virtuais linear em cada segmento o programador pode ter que se preocupar com a gesto de
memria quando escreve um programa
Gesto de memria suporta abstraces das linguagens de programao Segmento a unidade de: carregamento em memria (eficincia) proteco
Dimenso dos segmentos limitada pela arquitectura e no pode exceder a dimenso da memria principal
8
Page 8
Sistemas Operativos DEI - IST
P Prot Limite Base
+BTS
Segmento Deslocamento
+
Deslocamento
Limite
Endereo virtual
Memria principal
Tabela de segmentosBTS
LTS
Base
Traduo de Endereos Virtuais em Memria Segmentada
Sistemas Operativos DEI - IST
Memria Virtual Segmentada Fragmentao: externa ou interna?
Proteco: verificao de limites de endereamento intra-segmentos verificao e limitao dos tipos de acesso ao segmento: leitura,
escrita e execuo processos diferentes tm tabelas de segmentos diferentes: espaos de
endereamento disjuntos e inacessveis a terceiros
Partilha de memria entre processos: basta colocar nas tabelas de segmentos dos processos em questo o
endereo real do segmento a partilhar os endereos virtuais usados para aceder ao segmento partilhado
podem ser diferentes nos vrios processos a proteco dum segmento partilhado definida para cada processo
atravs da respectiva tabela de segmentos
9
Page 9
Sistemas Operativos DEI - IST
Paginao Espao de endereamento virtual de dimenso superior
da memria principal: o programador no v a gesto de memria
Na memria principal mantm-se algumas pginas Restantes carregadas de memria secundria quando
necessrio (falta de pgina) As instrues do processador tm de ser recomeveis A dimenso das pginas (constante) normalmente muito
menor que a da memria principal e influencia: A fragmentao (externa ou interna?) O nmero de faltas de pginas Tempo da sua resoluo (transferncia) A dimenso das tabelas de pginas e listas de pginas mantidas
pelo sistema operativo
Sistemas Operativos DEI - IST
Memria Virtual Paginada (cont.) Proteco:
Verificao dos tipos de acesso: leitura, escrita e execuo. Processos diferentes tm tabelas de pginas diferentes:
espaos de endereamento disjuntos e inacessveis a terceiros
Partilha de memria entre processos: Semelhante ao usado para memria segmentada Partilha de blocos lgicos: partilha de mltiplas pginas No possvel partilhar menos que uma pgina (versus
arquitectura segmentada partilha de uma diviso lgica do programa)
10
Page 10
Sistemas Operativos DEI - IST
R Prot Base
+BTP
Pgina Deslocamento
Endereo virtual
Tabela de Pginas
P M
Base Deslocamento
Endereo real
Memria principal
Base
BTP
LTP
Traduo de Endereos Virtuais em Memria Paginada
Sistemas Operativos DEI - IST
Tabela de Traduo de Endereos (Translation Lookaside Buffer, TLB)
R Prot Base
+BTP
Pgina Deslocamento
Endereo virtual
Tabela de Pginas
P M
Base Deslocamento
Endereo real
Memria principal
Base
BTP
LTP
TLB
11
Page 11
Sistemas Operativos DEI - IST
TLB
Bits da pgina so enviados para o TLB
S
N
S
N
Comparao
Acesso tabela de pginas
Pgina presente?
Actualizar TLB
Concatenar base e
deslocamento
Trazer pgina
de memria secundria
Sistemas Operativos DEI - IST
TLB O ideal seria guardar na TLB no as ltimas, mas as prximas pginas a
que o programa ir aceder.
Como isso impossvel de prever: toma-se o funcionamento recente do programa como uma boa previso para
o que ele far no futuro prximo. se um programa acedeu a uma pgina, expectvel que os prximos acessos
sejam dentro da mesma pgina.
A dimenso destas tabelas pequena, em geral (64, 128 entradas), pois o seu custo elevado: a sua dimenso cuidadosamente testada, usando simulaes e dados
estatsticos de programas existentes, de forma a obter percentagens de sucesso muito elevadas (90-95%)
um factor que tambm influencia a dimenso da TLB o quantum dos processos.
sendo a TLB limpa em cada comutao de processos, quanto maior for o quantum, maior o nmero de pginas acedidas, o que leva necessidade de ter mais entradas na TLB.
12
Page 12
Sistemas Operativos DEI - IST
Memria Virtual Paginada Problema
Qual a dimenso da tabela de pginas com endereos virtuais de 32 bits e pginas de 4 kBytes?
(Ainda pior se fossem endereos de 64 bits)
Sistemas Operativos DEI - IST
Memria Virtu