Sistemas Operacionais: Memória marcio/SO/  · Memória virtual •Memória virtual:

download Sistemas Operacionais: Memória marcio/SO/  · Memória virtual •Memória virtual:

of 54

  • date post

    10-Feb-2019
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of Sistemas Operacionais: Memória marcio/SO/  · Memória virtual •Memória virtual:

Sistemas Operacionais:

Memria Virtual

Memria virtual

Memria virtual: separao entre a viso lgica do usurio e a memria fsica

Somente uma parte do programa necessita estar na memria para executar

O espao de endereamento lgico pode ser maior que o espao fsico da memria

Permite que o mesmo espao de endereamento seja compartilhado por vrios processos

Memria virtual implementada por

Paginao por demanda

Segmentao por demanda

Memria virtual

Bibliotecas compartilhadas

Paginao por demanda

Carregar uma pgina na memria somente quando ela necessria

Menor nmero de operaes de E/S

Menor ocupao da memria

Resposta mais rpida

Mais usurios

Quando uma pgina necessria

Referncia invlida-> interrupo de erro

Armazenada no disco -> carregar na memria

Paginador preguioso

Carrega uma memria somente quando necessrio

Swap in- Swap out

Bit vlido-invlido

Bit invlido-> residente no disco

Inicialmente todos os bits invlidos

Traduo de endereos -> falha de pgina

(page fault)v

v

v

v

i

i

i

.

Frame # valid-invalid bit

page table

Pginas armazenadas no disco

Falha de pgina (page fault)

Na primeira referncia pgina

Trap para o sistema operacional

Se a referncia:

Invlida: erro

Carregar a pgina para a memria

Obter um frame livre

Carregar a pgina no frame

Atualizar a tabela de pgina (bit vlido)

Reinicializar a instruo que gerou o trap

Page Fault

Desempenho do sistema: paginao

por demanda Taxa de falha de pgina: 0 p 1.0

Se p=0 sem falhas de pginas

Se p=1 todo acesso gera uma falha de pgina

Tempo efetivo de acesso

tea=(1-p) tmem+p (tpage_fault +tswap_in + tswap_out + trestart)

Exemplo

tmem=200 ns

tpage_fault +tswap_in + tswap_out + trestart = 8 ms

tea= (1 p) x 200 + p x 8,000,000

tea= 200 + p x 7,999,800

Se p= 0.001 (1 falha de pgina a cada 1000

acessos)

tea= 8.2 ms

Criao de processos

Copy-on-write

Processos pai e filho compartilham a mesma

pgina, somente quando algum dado alterado

uma nova cpia criada

Eficiente: menor utilizao da memria

9.3 Substituio de pginas

Uma pgina poder causar somente uma falha de

pgina

A afirmativa acima no verdadeira em todos os casos

Ex. 60 frames na memria fsica

7 processos executando e ocupando 10 frames

Um processo em execuo causa uma falha de pgina

o sistema operacional verifica se o endereo vlido

busca um frame livre na memria

Substituio de pginas

Caso no exista um frame livre na memria:

terminar o processo

escolher um processo e coloc-lo na memria

secundria

escolher uma pgina e substitu-la

Substituio de pginas

Rotina de falha de pgina Procurar a localizao da pgina no disco

Procurar um frame livre

caso exista, utilize-o

caso contrrio, utilize um algoritmo de troca de pgina para

selecionar uma pgina vtima

colocar a pgina vtima no disco, e atualizar as tabelas (pginas,

frames)

Carregar a pgina no frame livre e atualizar as tabelas

(pginas, frames)

Reinicializar os processos

Substituio de pginas

necessrio 2 transferncias de pginas

Utilizao de bits modificao

suporte do HW

reduzir as operaes de E/S

Algoritmos de substituio de

pginas Como selecionar a pgina vtima???

Avaliao de um algoritmo realizado atravs de uma seqncia de acessos -> reference string ou reference trace

Gerado randomicamente ou atravs da observao de um sistema real (trace)

kVMTrace (http://www.cs.amherst.edu/~sfkaplan/research/kVMTrace/index.html)

VMTrace (http://linux-mm.org/VmTrace)

Reference string

Ex:

0100, 0432, 0101, 0612, 0102,

0103, 0104, 0101, 0611, 0102,

0103, 0104, 0101, 0610, 0102,

0103, 0104, 0101, 0609, 0102, 0105

representao utilizando nmero de pginas (100

bytes)

1, 4, 1, 6, 1, 6, 1, 6, 1

Algoritmos de substituio de

pginas Nmero de frames livres

O nmero de falhas de pginas diminui a

medida que o nmero de frames aumenta.

String 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2,

0 ,1, 7, 0, 1

FIFO

First in- First out:

cada pgina tem um tempo associado relativo

ao instante em que foi carregado na memria

(fila)

7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3,

2, 1, 2, 0 ,1, 7, 0, 1

7

0

7

0

7

1

0

2

1

3

2

1

3

2

0

3

4

0

2

4

0

2

4

3

2

0

3

1

0

3

1

0

2

1

7

2

0

7

2

0

7

1

FIFO

Fcil implementao

Consideraes:

a pgina substituda pode ser de um mdulo

carregado que no est sendo mais utilizado

varivel inicializada no incio da execuo sendo

acessada constantemente

a execuo realizada de forma correta

mesmo que a pgina escolhida seja uma que

est sendo utilizada

FIFO

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 anomalia de Belady: taxa de falhas pode

aumentar quando o nmero de frames alocados

aumenta (3 e 4 frames livres)

Algoritmo timo

Menor taxa de falhas entre todos os outros algoritmos

Substitua a pgina que no ser utilizada pelo maior perodo

de tempo

Este algoritmo garante que a menor taxa de falhas de pginas

para um conjunto nmero de frames.

7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3,

2, 1, 2, 0 ,1, 7, 0, 1

7

0

7

0

7

1

0

2

1

0

2

3

4

2

3

0

2

3

0

2

1

0

7

1

Algoritmo timo

9 falhas de pgina

Necessita do conhecimento futuro sobre os

acessos a memria

Utilizado para comparar com outros

algoritmos existentes.

Algoritmo LRU

FIFO x OPT

menos recentemente utilizado

Utilizar o passado recente como uma aproximao para o

futuro prximo

A pgina substituda ser a que est a mais tempo sem ser

referenciada

7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3,

2, 1, 2, 0 ,1, 7, 0, 1

7

0

7

0

7

1

0

2

1

0

2

3

0

4

3

0

4

2

3

4

2

3

0

2

3

1

2

0

1

2

0

1

7

Algoritmo LRU

12 falhas x 15 falhas FIFO

Implementao

contadores: cada tabela tem um campo contendo o

tempo lgico da ltima referncia

substituir a pgina com o menor tempo associado a

pgina

busca na tabela de pginas

estouro do relgio

toda referncia a memria deve atualizar o campo do

relgio

Algoritmo LRU

pilha:

nmero de pginas

quando uma pgina referenciada ela removida da

pilha e colocada no topo

o topo da pilha contm a pgina mais recentemente

utilizada e a base da pilha a pgina LRU

Implementao atravs de listas duplamente encadeadas

no existe busca na substituio de pginas

OPT, LRU no sofre a anomalia de Belady

suporte do hardware

Algoritmos aproximados LRU

Suporte atravs de bit de referncia

o bit ligado caso a pgina seja referenciada

um bit para cada entrada na tabela de pginas

Utilizao de bits adicionais de referncia

armazenar para cada entrada da tabela de pginas um campo de 8-bit (byte)

a cada intervalo o sistema operacional invocado

o SO desloca o bit para a direita

transfere o bit de referncia na parte alta do byte

histrico da utilizao dos ltimos 8 perodos

Algoritmos aproximados de LRU

Algoritmo da segunda chance (relgio)

Similar a poltica FIFO

se o bit de referncia 1 a pgina no escolhida, e o bit recebe o

valor 0

Algoritmos aproximados de LRU

Algoritmo da segunda chance melhorado

considerar o bit de referncia e bit de modificao

(0, 0): no foi recentemente utilizado nem modificado

(0, 1): no foi recentemente utilizado porm modificado

(1, 0): recentemente utilizado porm no modificado

(1, 1): recentemente utilizado e modificado

Utilizar o mesmo algoritmo do relgio, porm dar

prioridade para pginas no acessadas e no

modificadas

Algoritmos de contagem

Associar para cada pgina um contador, que armazena o nmero de acessos a pgina

Algoritmo menos freqentemente utilizado: menor contador. Uma pgina pode ser utilizada um grande nmero de vezes na inicializao e depois nunca mais ser utilizada

Periodicamente, deslocar o contador para a direita em 1 bit para decair o nmero de acessos

Algoritmo mais freqentemente utiliz