42
Sistemas Operativos: Memória Virtual Pedro F. Souto ([email protected]) May 4, 2012

Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Sistemas Operativos: Memória Virtual

Pedro F. Souto ([email protected])

May 4, 2012

Page 2: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Sumário

Memória VirtualFundamentosConversão de EndereçosPage FaultsAlgoritmos de Substituição de PáginasSwap AreaEnvolvimento do SOInteracção com E/S

Leitura Adicional

Page 3: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Sumário

Memória VirtualFundamentosConversão de EndereçosPage FaultsAlgoritmos de Substituição de PáginasSwap AreaEnvolvimento do SOInteracção com E/S

Leitura Adicional

Page 4: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Memória Virtual (MV)

I Ideia:I Decompôr o espaço de endereçamento dum processo em

blocos.I Manter em memória apenas alguns desses blocos (código

e dados) do processo em execução.I Manter os outros blocos no disco:

I na área de swap;I no sistema de ficheiros (código, p.ex.).

I Transferir os blocos entre o disco e a memória, conformenecessário.

I MecanismosI Paginação;I Segmentação;

(ambos requerem suporte do HW).

Page 5: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

MV vs. swapping

+ Permite programas maiores do que a memória físicadisponível;

+ Possibilita ter mais processos em memória (ainda que sóparte deles);

+ Reduz tempo de arranque dum processo+ Facilita a partilha de memória entre processos- Exige suporte do HW mais sofisticado- Pode conduzir a thrashing

Page 6: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

MV Paginada

I A memória física está dividida empage frames, ou frames:

I o tamanho das frames édeterminado pelo HW(tipicamente, 4 Kbyte ou 8 Kbyte).

I O espaço de endereçamento dumprocesso está dividido em páginas:

I de tamanho igual ao das frames.I O conteúdo das páginas é

transferido de e para frames.

Virtual address

space

Physical memory address

60K-64K

56K-60K

52K-56K

48K-52K

44K-48K

40K-44K

36K-40K

32K-36K

28K-32K

24K-28K

20K-24K

16K-20K

12K-16K

8K-12K

4K-8K

0K-4K

28K-32K

24K-28K

20K-24K

16K-20K

12K-16K

8K-12K

4K-8K

0K-4K

Virtual page

Page frame

X

X

X

X

7

X

5

X

X

X

3

4

0

6

1

2

Exemplo Páginas de 4 KB (4096 bytes)Espaço de endereço virtual 16 páginas (64 KB)Espaço de endereço físico 8 frames (32 KB)

Page 7: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Conversão de Endereços em MV PaginadaI Paginação determina dois espaços de endereçamento:

virtual ou lógico que é o que o CPU conhece - ocódigo executável usa endereços virtuais oulógicos;

físico que é usado no barramento de endereços damemória.

I O mapeamento dos endereços dum espaço no outro érealizado pela Memory Management Unit (MMU):

CPU package

CPU

The CPU sends virtual addresses to the MMU

The MMU sends physical addresses to the memory

Memory management

unit

MemoryDisk

controller

Bus

Page 8: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Conversão de Endereços com uma Tabela (1/2)I Em sistemas com MV paginada um endereço tem 2

componentes:

Page # Offset

I O número da página, parte mais significativa do endereço;I O deslocamento (offset) na página, parte menos

significativa.

I Como frames e páginas têm o mesmo tamanho, a MMU sótem que mapear o número da página no número da frame.

I O mapeamento pode ser feito usando uma tabela,implementada como um vector:

I o número da página é usado como indíce para obter onúmero da frame que a contém.

I O uso de páginas cujo tamanho é uma potência de 2,simplifica o cálculo do endereço físico:

I Basta substituir o no da página pelo no da frame com o seuconteúdo

Page 9: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Conversão de Endereços com uma Tabela (2/2)

Virtual address

space

Physical memory address

60K-64K

56K-60K

52K-56K

48K-52K

44K-48K

40K-44K

36K-40K

32K-36K

28K-32K

24K-28K

20K-24K

16K-20K

12K-16K

8K-12K

4K-8K

0K-4K

28K-32K

24K-28K

20K-24K

16K-20K

12K-16K

8K-12K

4K-8K

0K-4K

Virtual page

Page frame

X

X

X

X

7

X

5

X

X

X

3

4

0

6

1

2

Page size 4096 bytes, i.e. 12 bits

# Pages per address space 64KB/4KB = 16

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

000 000 000 000 111 000 101 000 000 000 011 100 000 110 001 010

0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 Present/

absent bit

Page table

12-bit offset copied directly from input to output

Virtual page = 2 is used as an index into the page table Incoming

virtual address (8196)

Outgoing physical address (24580)

110

1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

00 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Page 10: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Page Table Entry (PTE)Caching disabled Modified Present/absent

Page frame number

Referenced Protection��I Se o CPU usar endereços de 32 bits, e páginas de 4 Kbyte(12 bits), a page table terá ∼4 Mbyte!!!

I O espaço de endereço virtual tem 220 = 232/210 páginasI Cada PTE ocupa 4 bytes (20 bits para o no da frame)I Cada página pode conter até 1024 (210) PTEI Sendo necessárias 1024 (220/210) páginas

I Normalmente, um processo usa apenas uma pequenaparte do seu espaço de endereçamento:

I A maioria dos elementos da page table não são usadosI Muitas das páginas da page table estão vazias

Page 11: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Tabelas com 2 NíveisI Permite não usar páginas da tabela vazias

I Exige uma “tabela” adicional paraas páginas com as conversõesde endereços

I Elementos correspondentes apáginas vazias têm o bitPresent/absent a 0

I Os outros elementos apontampara páginas com conversões

I A conversão é feita em 2 passos:I Os 10 bits mais significativos

são usados para seleccionar apágina de 2o nível que poderáconter o elemento desejado

I Os 10 bits seguintes sãousados como indíce da “tabela”contida nessa página

(a)

(b)

Top-level page table

Second-level page tables

To pages

Page table for the top 4M of memory

6 5 4 3 2 1 0

1023

6 5 4 3 2 1 0

1023

Bits 10 10 12

PT1 PT2 Offset

I Este esquema pode ser generalizado a 3 ou mais níveis

Page 12: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Tabelas InvertidasI Alguns CPUs de 64 bits usam tabelas invertidas:

I têm um elemento por frame, em vez de ...I cada elemento contêm informação sobre (processo, página

virtual) contido pela frameI A tabela está organizada como uma hash table

I usa o endereço virtual da página (e o processo) como key

Traditional page table with an entry for each of the 252 pages

256-MB physical memory has 216

4-KB page frames Hash table216 -1

252 -1

216 -1

0 0Indexed by virtual

page

0Indexed

by hash on virtual page

Virtual page

Page frame

Page 13: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Desempenho da Conversão de EndereçosI Pode traduzir-se um endereço com tantos acessos à

memória quantos os níveis da page tableI no caso de tabelas invertidas são necessários 2 acessos

no mínimo, mais se houver colisões.I Obviamente, temos um problema:

I cada acesso à memória, requereria acessos adicionaispara converter endereços.

I A solução é usar uma cache, a Translation LookasideBuffer, de elementos da page table usados em conversõesrecentes:

Valid Virtual Page Modified Protection Page Frame1 140 1 RW 311 20 0 R X 381 130 1 RW 291 129 1 RW 621 19 0 R X 50

Page 14: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Translation Lookaside Buffer (TLB)

I A TLB usa memória associativa:I cada posição de memória consiste num par (key, value);I o endereçamento é feito comparando o valor do endereço

da página com o valor de key de todas as posições da TLBem paralelo (i.e. a TLB usa full associative memory )

Em termos de implementação, a TLB é semelhante àcache de instruções ou dados.

I Funciona como uma fully associative cacheI O número de posições da TLB não precisa ser muito

elevado:I por causa da localidade no acesso à memória.

I Quando da comutação de processos, o conteúdo da TLBtem que ser invalidado, a menos que use um identificadordo espaço de endereçamento também como chave

Page 15: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

TLB Misses

I E se o endereço a converter não estiver na TLB (TLBmiss)?

I Há que consultar a page tableI Normalmente, o HW de gestão de memória, a Memory

Management Unit (MMU), processa automaticamente asTLB misses:

I A MMU precisa conhecer a localização da page table doprocesso em execução:

I A MMU tem um registo com o endereço da page table, oqual faz parte do PCB, i.e. do contexto do processo

I A MMU de alguns CPUs RISC não processam TLB misses,deixam essa tarefa a cargo do SO.

Page 16: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Desempenho da Conversão de Endereços com TLB

I Seja:p a TLB hit ratiom o no de acessos à memória no caso duma TLB miss

I Admitindo que no caso de um TLB hit, o custo é zero, ocusto efectivo da utilização de MV paginada vem:

(1 − p)mI Seja:

p = 0.98m = 3Então o custo será de: 0.06 acessos à memoria porconversão de endereço

Page 17: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Page FaultQuando um processo tenta aceder a uma página e essapágina não está em memória ocorre uma page fault

I A MMU gera uma excepção, que é processada pelo pagefault handler :

I O page fault handler consulta uma outra estrutura dedados (address map do processo) para determinar:

I se a referência é válida: protecção;I e, em caso afirmativo, onde se encontra a página.

I O handler obtém uma frame livre.I Transfere a página do disco para a frame.I Actualiza a page table.

I O CPU terá que reiniciar/retomar a execução da instruçãoque causou a page fault :

I Depende das instruçõesI Instruções que transferem blocos de dados, e.g. IA32 move

string instructions, são particularmente problemáticasI Depende do processador

I E.g. os processadores IA32 alteram os registos, de modo aque a instrução possa ser retomada transparentemente

Page 18: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Address Map

I É a estrutura de dados do SO que mapeia o espaço deendereçamento dum processo no espaço no disco:

I ficheiros;I partes da área de swap

I É usada pelo page-fault handler para determinar:I a validade da referência;I em caso positivo, qual a fonte da página referenciada.

I Quando o SO cria um processo:I mapeia o ficheiro com o código correspondente no espaço

de endereçamento desse processo;I reduz o tempo de arranque dum processo.

I transfere algumas páginas desse ficheiro para a memória(prepaging):

I evita uma page fault rate excessiva inicialmente.

Page 19: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

more /proc/1/maps em Linux

08048000-0804f000 r-xp 00000000 03:02 8954 /sbin/init0804f000-08050000 rw-p 00006000 03:02 8954 /sbin/init08050000-08054000 rwxp 00000000 00:00 040000000-40012000 r-xp 00000000 03:02 8862 /lib/ld-2.1.3.so40012000-40013000 rw-p 00011000 03:02 8862 /lib/ld-2.1.3.so40013000-40014000 rwxp 00000000 00:00 04001b000-400f0000 r-xp 00000000 03:02 8864 /lib/libc-2.1.3.so400f0000-400f4000 rw-p 000d4000 03:02 8864 /lib/libc-2.1.3.so400f4000-400f8000 rw-p 00000000 00:00 0bfffe000-c0000000 rwxp fffff000 00:00 0

I O p na segunda coluna indica que a região é privadaI A saída gerada por kernels mais recentes é bem mais

extensa

Page 20: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Partilha de CódigoI O address map facilita a partilha de memória entre

processos.I Um exemplo muito comum é o código de bibliotecas

partilhadas

Address−SpaceProcess 2

Address−SpaceProcess 1

SharedCode

Page 21: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

E se não houver qualquer frame livre?

I Se, quando duma page-fault, todas as frames estiveremocupadas, o SO tem que libertar uma:

I se a frame seleccionada tiver sido modificada, terá que sertransferida para o disco.

I Por razões de eficiência, o SO tipicamente executa umprocesso (pageout daemon) que procura manter um certonúmero de frames livres.

I Em qualquer dos casos, põe-se o problema:Que páginas transferir para o disco?

É bom que se faça uma boa escolha, doutro modo odesempenho sofre . . .

I Este problema é comum a qualquer cache. Mas:

disk access timememory access time

� memory access timecache access time

Page 22: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Algoritmos de Substituição de Páginas

222222222222222222222222222222222222222222222222222222222222222222222222Algorithm Comment222222222222222222222222222222222222222222222222222222222222222222222222

Optimal Not implementable, but useful as a benchmark222222222222222222222222222222222222222222222222222222222222222222222222NRU (Not Recently Used) Very crude222222222222222222222222222222222222222222222222222222222222222222222222FIFO (First-In, First-Out) Might throw out important pages222222222222222222222222222222222222222222222222222222222222222222222222Second chance Big improvement over FIFO222222222222222222222222222222222222222222222222222222222222222222222222Clock Realistic222222222222222222222222222222222222222222222222222222222222222222222222LRU (Least Recently Used) Excellent, but difficult to implement exactly222222222222222222222222222222222222222222222222222222222222222222222222NFU (Not Frequently Used) Fairly crude approximation to LRU222222222222222222222222222222222222222222222222222222222222222222222222Aging Efficient algorithm that approximates LRU well222222222222222222222222222222222222222222222222222222222222222222222222Working set Somewhat expensive to implement222222222222222222222222222222222222222222222222222222222222222222222222WSClock Good efficient algorithm222222222222222222222222222222222222222222222222222222222222222222222222111111111111111

111111111111111

111111111111111

Page 23: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Algoritmo ÓptimoSequência de acessos 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5# de frames 41 2 3 4 51 2 1 2 3 4 5

1

2

3

4

4

5

Algoritmo Quando da substituição duma página, expulsa-se apágina que será referenciada depois de todas as outras.Problema O SO não consegue prever o futuro

Utilidade permite comparar a qualidade de algoritmos que sãoexequíveis:

I requer o registo das operações de acesso à memóriapor um processo;

I importante que a execução seja representativaSolução Usar o passado recente para prever o futuro

I Os diferentes algoritmos diferem nos pormenores

Page 24: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Algoritmo Least Recently Used (LRU)Ideia Assumir que páginas usadas mais recentemente serão

usadas em breveI expulsar a página usada menos recentemente, i.e.

acedida pela última vez há mais tempo1 2 3 4 51 2 1 2 3 4 5

2

5

1

4

3

3

4

5

I Normalmente o HW não fornece os mecanismosnecessários para uma implementação eficiente destealgoritmo

I A sua implementação em SW não é viável na práticaI Porquê?

I A alternativa é tentar aproximar o LRU usando outrosalgoritmos

Page 25: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

FIFO

I Expulsar a página que está no sistema há mais tempo

1 2 3 4 51 2 1 2 3 4 5

1

2

3

4

5

1

2

3

4

5

I Curiosamente, com 3 frames o no de page faults nestecaso é inferior1 2 3 4 5

1

2

1 2 1 2 3 4 5

1

2

3

4 5

3

4

I Este comportamento é contra-intuitivo

Page 26: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Anomalia de Belady

I Intuitivamente,I quanto maior o número de page frames, i.e. memória,

menor será a taxa de page-faultsI Porém Belady mostrou que nem todos os algoritmos de

substituição de páginas garantem que assim é.I Alguns algoritmos apresentam casos patológicos nos quais

o aumento da memória conduz a mais page-faultsI Uma classe de algoritmos de substituição que não sofre

deste problema é conhecida por stack algorithmsI Estes algoritmos garantem que:

M(n, r) ⊆ M(n + 1, r)

onde M(f , r) dsigna o conteúdo da memória com f framesapós r referências

Page 27: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

ClockI As páginas são mantidas numa fila circularI O algoritmo usa um apontador que varre a filaI Usa o referenced bit (R-bit), activado em cada acesso à

memóriaI Quando é preciso libertar uma página:

I Se a página apontada pelo apontador tem o R-bit a 0,então expulsa-a, e actualiza o apontador

I Senão, limpa o R-bit e avança para a página seguinte

When a page fault occurs, the page the hand is pointing to is inspected. The action taken depends on the R bit: R = 0: Evict the page R = 1: Clear R and advance hand

AB

C

D

E

FG

H

I

J

K

L

Page 28: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Clock: Variantes

I Usar um segundo apontador que se move em conjuntocom o primeiro

I O primeiro apontador limpa o R-bitI O segundo expulsa a página, se o R-bit tiver valor 0I Especialmente útil se o no de frames for muito grande

I Usar o modified-bit (M-bit) o qual é activado sempre queuma página é modificada (também designado por dirty-bit

I Classificar cada página numa de 4 classes:1. não referenciadas, não modificadas2. não referenciadas, mas modificadas3. referenciadas, não modificadas4. referenciadas, modificadas

e expulsar as páginas pela ordem indicadaI Alternativamente, se o M-bit estiver ativo, iniciar a sua

transferência para o disco.I Só expulsa páginas não referenciadas e não modificadas

Page 29: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Conceito de Working Set

I Com paginação pura, as páginas dum processo só sãotrazidas para a memória quando o processo tem umapage-fault.

I Quando um processo inicia, tem uma taxa de page-faultselevada, até que eventualmente essa taxa diminui:

I este comportamento deve-se à localidade de referência.I O conjunto de páginas acedidas por um processo num

determinado intervalo designa-se por working set.I Se o working set dum processo estiver em memória, um

processo tem um taxa de page-faults muito baixa,reciprocamente . . .

I Tipicamente, o working set dum processo varia no tempo.

Page 30: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Definição de Working SetWorking set conjunto de páginas acedidas nos k acessos à

memória mais receentes

w(k,t)

kI w(k , t) é o tamanho do working set no instante t

I w(k , t) é uma função monótona crescenteI Contudo w(k , t) não pode nunca ser superior ao no de

páginas do espaço de endereçamento do processoI Excepto para valores de k muito baixos, o tamanho do

working set dum processo é praticamente independente dek

Page 31: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Algoritmo WSClock

Ideia Expulsar as páginas que não fazem parte do working setProblema Como determinar se uma página faz parte do WS?Solução Manter um tempo virtual que é aproximadamente o

tempo de execução do processo.

I Manter o tempo do “último” acessoa cada frame

I Periodicamente, actualizá-lo deacordo com o R-bit

I Usar o algoritmo do relógioI Quando ocorre uma page-fault o

handler analisa a páginaapontada pelo ponterio.

I O algoritmo só expulsa páginascuja idade é superior a τ

I Pode usar-se 2 apontadores

2204 Current virtual time

1213 0

2084 1 2032 1

1620 0

2020 12003 1

1980 1 2014 1

Time of last use

R bit

(a) (b)

(c) (d)

New page

1213 0

2084 1 2032 1

1620 0

2020 12003 1

1980 1 2014 0

1213 0

2084 1 2032 1

1620 0

2020 12003 1

1980 1 2014 0

2204 1

2084 1 2032 1

1620 0

2020 12003 1

1980 1 2014 0

Page 32: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Algoritmos de Substituição de Páginas

222222222222222222222222222222222222222222222222222222222222222222222222Algorithm Comment222222222222222222222222222222222222222222222222222222222222222222222222

Optimal Not implementable, but useful as a benchmark222222222222222222222222222222222222222222222222222222222222222222222222NRU (Not Recently Used) Very crude222222222222222222222222222222222222222222222222222222222222222222222222FIFO (First-In, First-Out) Might throw out important pages222222222222222222222222222222222222222222222222222222222222222222222222Second chance Big improvement over FIFO222222222222222222222222222222222222222222222222222222222222222222222222Clock Realistic222222222222222222222222222222222222222222222222222222222222222222222222LRU (Least Recently Used) Excellent, but difficult to implement exactly222222222222222222222222222222222222222222222222222222222222222222222222NFU (Not Frequently Used) Fairly crude approximation to LRU222222222222222222222222222222222222222222222222222222222222222222222222Aging Efficient algorithm that approximates LRU well222222222222222222222222222222222222222222222222222222222222222222222222Working set Somewhat expensive to implement222222222222222222222222222222222222222222222222222222222222222222222222WSClock Good efficient algorithm222222222222222222222222222222222222222222222222222222222222222222222222111111111111111

111111111111111

111111111111111

I O que é que o “utilizador”/programador pode fazer?I Pouco a menos que o SO suporte user-level pagers

Page 33: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

User-level Pager

DiskMain memory

External pager

Fault handler

User process

MMU handler

1. Page fault

6. Map page in

5. Here is page

User space

Kernel space

2. Needed page

4. Page arrives

3. Request page

I Mais um exemplo de separação entre mecanismos epolíticas

I Idealmente, o SO deveria suportar uma API quepermitisse expulsar páginas da memória

I O algoritmo de substituição precisa tipicamente de acederaos bits R e M.

Page 34: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Swap Area

I É uma zona do disco para onde é transferido o conteúdodas páginas modificadas expulsas da memória:

I páginas de ficheiros não alteráveis, p.ex. código, nãoprecisam ser transferidas para a swap area.

I Pode ser implementada:I directamente sobre o disco – mais eficiente;I sobre ficheiros – fácil de ajustar o seu tamanho.

I Em qualquer caso, o SO tem que gerir o espaço disponívelna swap area.

I A alocação de espaço na àrea de swap pode ser:optimista só é alocada quando necessário – possibilidade

de deadlock?pessimista é reservada – pode não vir a ser usada e,

consequentemente, reduzir a utilização dos recursos.

Page 35: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Swap Area: Modos de Alocação.

0

4

3

6

6

43

0

7

5

21

Pages

Page table

Main memory Disk

Swap area

(a)

0

4

3

6

6

43

0

5

1

7

2

Pages

Page table

Main memory Disk

Swap area

(b)

Disk map

Page 36: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Working Set e ThrashingI Normalmente, a frequência de page faults depende do

número de frames atribuídas a um processo:

Pag

e fa

ults

/sec

Number of page frames assigned

A

B

I Quando a maioria dos processos não tem um número depáginas suficiente em memória, i.e. o seu working set, ocomputador pode entra num estado de thrashing:

usa a maioria dos seus recursos para transferirpáginas entre a memória principal e o disco

Page 37: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Escalonamento Multinível

I Se a frequência de page faults aumenta bastante,indicando a possibilidade de thrashing, o SO pode “fazer oswapout de processos”:

i.e. transferir todas as páginas dum ou maisprocessos para o disco.

I Ou seja, o SO poderá usar dois níveis de escalonamento:I O nível superior determina quais os processos em

memória.I O nível inferior faz o escalonamento dos processos em

memória.

Page 38: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Envolvimento do SO na Gestão de MV Paginada

I Criação dum processo:I criar page table.

I Comutação de processos:I configurar a MMU para o novo processo;I invalidar o TLB.

I Page-fault :I determinar e validar o endereço que a causou;I transferir página do disco para a memória, possivelmente

com troca.I Terminação dum processo:

I libertação da page table e das frames.I Outras tarefas:

I manter número mínimo de frames livres;I swap-out processos, se frequência de page-faults

excessiva.

Page 39: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Interacção com E/S

I Converter endereços para realizar E/S:I Dispositivos de E/S usam endereços físicos, não lógicos.

I Impedir que as páginas usadas numa operação de E/Ssejam expulsas enquanto a operação não terminar:

I pin-down/lock páginas na memória.

Page 40: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Algumas Questões

I Relacionadas com a implementação:I Qual deve ser o tamanho duma página?I Onde é que as tabelas devem residir?I Será que as páginas que constituem a tabela têm que estar

sempre em memória?I E as páginas com o SO?

I Outras:I Quantas page tables são necessárias?I Como é que a MV paginada assegura protecção entre

processos?I Que medidas se pode tomar para reduzir a frequência de

page-fault?I Por que razões a MV funciona, i.e. tem um desempenho

próximo do dum sistema com capacidade de memóriainfinita?

Page 41: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Sumário

Memória VirtualFundamentosConversão de EndereçosPage FaultsAlgoritmos de Substituição de PáginasSwap AreaEnvolvimento do SOInteracção com E/S

Leitura Adicional

Page 42: Sistemas Operativos: Memória Virtualpfs/aulas/so2013/at/11vm.pdfconteúdo. Conversão de Endereços com uma Tabela (2/2) Virtual address space Physical memory address ... para páginas

Leitura Adicional

Modern Operating Systems, 2nd. Ed.

I Secção 4.1: Fundamentos (4.1.1, 4.1.2 e 4.1.5)I Secção 4.2: SwappingI Secção 4.3: Memória VirtualI Secção 4.4: Page Replacement AlgorithmsI Secção 4.6: Design Issues (até 4.6.2 inclusivé).I Secção 4.7: Implementation Issues (excepto 4.7.3).