Click here to load reader

Sistemas Operativos 2011 / 2012 - Instituto Superior leic-so.daemon/2011-2012/teoricas... Concatenar base e deslocamento Trazer página de memória secundária Sistemas Operativos

  • View
    214

  • Download
    0

Embed Size (px)

Text of Sistemas Operativos 2011 / 2012 - Instituto Superior leic-so.daemon/2011-2012/teoricas... Concatenar...

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