Memória Virtual Sistemas Operacionais I

61
Memória Virtual Sistemas Operacionais I Módulo 9

description

Memória Virtual Sistemas Operacionais I. Módulo 9. FUNDAMENTOS. Execução de Programas O S.O carrega partes de um processo para a memória real Conjunto residente (Resident set) Configurável. FUNDAMENTOS. Execução de Programas - PowerPoint PPT Presentation

Transcript of Memória Virtual Sistemas Operacionais I

Page 1: Memória Virtual Sistemas Operacionais I

Memória VirtualSistemas Operacionais I

Módulo 9

Page 2: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-2

FUNDAMENTOS

Execução de Programas– O S.O carrega partes de um processo

para a memória realConjunto residente (Resident set)

– Configurável

Page 3: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-3

FUNDAMENTOS

Execução de Programas– Uma falha (page-fault) é gerada quando

um endereço não presente na memória é acessado

Processo vai para BlockedParte que contém o endereço é carregado

para a M.R.– O S.O. emite uma requisição de leitura do disco– Outro processo é despachado para executar– Uma interrupção é emitida quando a E/S terminar

para que o S.O. mova o processo para a Ready

Page 4: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-4

FUNDAMENTOS

Particionamento de programas (modularização)– Mais processos mantidos em memória

Só é necessário carregar alguns pedaços do processo

– Com muitos processos na memória é mais fácil colocar/estar no estado READY

– Torna-se possível executar processos com requisito de memória maior que a memória real

Page 5: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-5

FUNDAMENTOS

Particionamento de programas (modularização)– Memória é definida em um dispositivo

secundárioProgramador está efetivamente limitado pelo

tamanho do seu disco

– Desnecessário carregar pedaços do processo que não serão utilizados

Economia de tempo: minimiza o swap-in

Page 6: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-6

FUNDAMENTOS

Tipos de memória– Real

Principal

– Virtual Em disco

Page 7: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-7

FUNDAMENTOS

Thrashing– “Swapping-out” pedaços de um processo

antes deste ser necessário– O processador gasta tempo em SWAP e

não em execução de processos

Page 8: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-8

FUNDAMENTOS

Princípio da localidade– Referência a código e dados tendem a

ser localizadosLoopLogo, poucos pedaços precisam estar

presentes– É possível fazer uma aposta inteligente

sobre que páginas serão necessárias no futuro

Isto sugere que a Memória virtual funciona eficientemente?

Page 9: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-9

FUNDAMENTOS

Memória virtual (M.V.)– Separação entre a memória lógica do

usuário e a memória física– Implementada em

Paginação sob demandaSegmentação sob demanda

Page 10: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-10

FUNDAMENTOS

Suporte necessário a M.V.– Hardware precisa suportar paginação e

segmentação– O S.O precisa ser capaz de gerenciar o

movimento de páginas e segmentos entre a memória principal e a secundária

Page 11: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-11

FUNDAMENTOS

Características da paginação e segmentação– Referências de memória

Transladadas em endereços físicos em tempo de execução

– Um processo Pode ser “swapped-out”Não precisa ser alocado de forma contínuaPode ser modular

– Todas as partes não precisam estar presentes na memória principal

Page 12: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-12

PAGINAÇÃO

Tabela de páginas– Pode ocupar muita memória real– Poderia ser armazenada na memória

virtual– Quando o processo está em RUNNING

parte da tabela está em memória

Page 13: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-13

PAGINAÇÃO

Proteção de memória– Implementado com um bit de proteção

em cada frame– Valid/Invalid bit em cada entrada da

tabela de página“valid” indica que a página está sendo

utilizada“invalid” indica que a página não está em uso

Page 14: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-14

PAGINAÇÃO

Tabela de páginas multiníveis– Dois níveis

Memória

Tabela de Páginas

2 Nível

Tabela de Páginas

1 Nível

Page 15: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-15

PAGINAÇÃO

Paginação multinível– Suponha um endereço lógico de 32-bits,

página de 4KBytes Page Number consiste de 20-bitsPage Offset (deslocamento) consiste de 12-

bits

Page 16: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-16

PAGINAÇÃO

Paginação multinível– Supondo que a tabela de páginas é

paginada, temosPage Number consiste de 10-bits (p1)Page Offset consiste de 10-bits (p2)

page number page offset

pi p2 d

10 10 12

Page 17: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-17

PAGINAÇÃO

Paginação multinível – Exemplo interessante

0

1

2

1024

10-bits

Deslocamento(10-Bits)

Nível 2(10-bits)

Nível 1(10-bits)

029

0

1

2

1024

10-bits

Deslocamento(10-Bits)

Frame(10-bits)

019

Endereço virtual

Endereço Real

Page 18: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-18

PAGINAÇÃO

Paginação multinível – Considerações

Cada nível é armazenado como uma tabela separada

O tempo para converter endereço lógico em endereço físico é multiplicado pelo número de níveis

Embora o tempo possa ser multiplicado, o uso de cache permite minimizar o impacto

Page 19: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-19

PAGINAÇÃO

Tabela de páginas invertida– Uma entrada para cada página existente

no sistema A entrada consiste de um endereço virtual da

página armazenada na memória real, com informações sobre o processo que é dono

Page 20: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-20

PAGINAÇÃO

Tabela de páginas invertida– Vantagem

Diminui a memória necessária para armazenar a tabela de páginas

– DesvantagemAumenta o tempo necessário para encontrar

a página referenciada– Solução

Hash Table– Limita a procura a um, ou poucos, acessos

Page 21: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-21

PAGINAÇÃO

Tabela de páginas invertida– Arquitetura

Memória Física

Endereço lógico/virtual

End. Físico

Busca

Endereço lógico

Page 22: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-22

PAGINAÇÃO

Implementação de Tabela de Páginas– Mantida em memória– Dois registradores

Page-table base register (PTBR) – Aponta para a tabela de páginas

Page-table length register (PRLR) – Indica o número de páginas

Esse esquema implica em dois acessos a memória. Um para tabela de páginas e outra para a instrução/dados– Facilmente resolvível com o uso de Translation

Look-aside buffers (TLB)

Page 23: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-23

PAGINAÇÃO

Translation Lookaside Buffer– Contém entradas da tabela de páginas

que foram utilizadas recentementeSimilar ao cache de memória

– Dado um endereço virtual, o processador examina a TLB

– Se a entrada esta presente (hit) o Frame e recuperado e o endereço real é formado

Caso contrário (miss) o page-number é utilizado para indexar a tabela de páginas

Page 24: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-24

PAGINAÇÃO

Translation Lookaside Buffer– Primeiro verifica se a página já está em

memóriaCaso contrário um page-fault é gerado

– A TLB é atualizada com a entrada de página

Page 25: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-25

PAGINAÇÃO

Translation Lookaside BufferEndereço virtual

TranslationLookaside Buffer

Tab. De Pág

TLB miss

Page fault

Endeço Real

TLB hit Offset

Mem. PrincipalMem. Secundária

CargaPág

Pág # Offset

Frame # Offset

Page 26: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-26

PAGINAÇÃO

Tamanho da página– Pequena

Fragmentos internos pequenosMuitas páginas para um processoTabela de páginas muito grandeTabelas grandes resultam em grande

quantidade da tabela de página na memória virtual

A memória secundária é projetada para transferência de grandes blocos. Logo páginas grandes são bem-vindas

Page 27: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-27

PAGINAÇÃO

Tamanho da página– Pequena

Um grande número de páginas estarão presentes na memória real– A medida que o tempo avança as páginas em

memória contém porções mais recentes do processo. Baixo Índice de page-fault

– GrandeAumenta a taxa de page-fault

Page 28: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-28

PAGINAÇÃO

Tamanho da página– Múltiplos tamanhos

Flexibilidade no uso da TLBPáginas grandes podem ser utilizadas para

instruçõesPáginas pequenas podem ser utilizadas para

threads

Page 29: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-29

SEGMENTAÇÃO E PAGINAÇÃO

Paginação– Transparente para o desenvolvedor de

programas– Elimina a fragmentação externa

Segmentação– É visível para o desenvolvedor de programas– Permite o crescimento de estruturas,

modularidade e suporte a compartilhamento e proteção

Cada segmento tem número fixo de páginas

Page 30: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-30

SEGMENTAÇÃO E PAGINAÇÃO

EndereçamentoEndereço virtual

Entrada da tabela de segmentos

Entrada da tabela de páginas

Segmento # Página # Offset

Bits de controle Tamanho Segmento

P M Bits de controle Frame #

Page 31: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-31

SEGMENTAÇÃO E PAGINAÇÃO

Translação de endereços

Memória principal

FrameOffset

Paginação

Tabela de Páginas

P#+

Frame # Offset

Seg Table Ptr

+S #

SegmentaçãoProcesso

Tabela de Segmentos

Seg # Pag # Offset

Page 32: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-32

SEGMENTAÇÃO E PAGINAÇÃO

MULTICS – Translação de endereços

S

Endereço virtual

N

Tabela de Segmentos

Tabela de Páginas

End. Real

Page 33: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-33

SEGMENTAÇÃO E PAGINAÇÃO

I386 – Translação de endereçosEnd.

Virtual

Tabela de Segmentos

End.Linear

Diretório de Tab. Páginas Tab. Páginas

Memória Real

Diretório Página Offset

Reg. Tabela Pág.Reg. Tabela Pág.

Descritor

Descritor Deslocamento

End. Físico

Dir. Páginas

Page 34: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-34

SEGMENTAÇÃO E PAGINAÇÃO

Translação em dois níveis de endereços em arquiteturas de 32-bits

End. Lógico

Tabela

de

Segmentos Segmentos

Tabela

de

Páginas Páginas

Page 35: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-35

POLÍTICAS

Busca– Determina qual página ser retirada da

memória– Paginação por demanda somente carraga

a página quando uma referência é feita a um endereço nela contida

Alta taxa de falhas de páginas quando o processo inicia sua execução

– Pré-paginação libera mais quadros (frames) que o necessário

Page 36: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-36

POLÍTICAS

Colocação– Determina onde, na memória real, partes

de um processo se alojarãoNormalmente irrelevante já que o hardware

determina os endereços reais

Page 37: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-37

POLÍTICAS

Substituição– Seleciona a página que será substiuida

por uma novaAlgumas páginas podem não ser

substituíveis– Uso de lock no frame – Utilizado no núcleo do S.O., estruturas de dados,

buffers etc

Page 38: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-38

POLÍTICAS

Substituição– Política ótima

Seleciona para substituição a página cuja a próxima referência será mais demorada

É impossível ter conhecimento de eventos futuros!– Logo, essa política é uma falácia!

Page 39: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-39

POLÍTICAS

Substituição– First-in, first-out (FIFO)

Frames alocados a um processo são tratados com um buffer circular– Páginas “mais velhas” são substituídas– Páginas são removidas no estilo Round-Robin

Fácil implementaçãoEssas páginas podem ter que retornar

rapidamente!

Page 40: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-40

POLÍTICAS

Substituição– Least Recently Used (LRU)

Substitui a página que não foi referenciada por mais tempo

Esta página pode ser referenciada em um futuro próximo

Cada página precisa conter um campo com a data da última referência– Overhead alto

Page 41: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-41

POLÍTICAS

Substituição– Clock

Utiliza um bit , chamado use-bitPágina é carregada na memória com

use-bit=0Referência a página faz use-bit=1Quando for necessário a substituição, o

primeiro frame com use-bit=0 é substituídoDurante a procura para substituição use-bit=1

é trocado para use-bit=0

Page 42: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-42

POLÍTICAS

Substituição– Clock

0

n

Pág. 9use-bit=1

Pág. 1use-bit=0

Pág.45use-bit=1

Pág. 191use-bit=1

Pág. 556use-bit=1

Pág. 13use-bit=1

…next frame pointer

Page 43: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-43

POLÍTICAS

Page-buffering– A página substituída é colocada na

Free-page-list – Se a não tiver sofrido modificações

Modified-page-list– Se sofreu alguma alteração– É removida a posteriori

Page 44: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-44

POLÍTICAS

Conjunto residente– Alocação fixa

Número fixo de páginas durante a execução do processo

Implica na substituição local de páginas

– Alocação variávelNúmero de páginas alocadas ao processo

varia durante a execução do processo

Page 45: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-45

POLÍTICAS

Limpeza– Por demanda

A página somente é removida se for selecionada para substituição

– AntecipadaPáginas são removidas em lotes

Page 46: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-46

POLÍTICAS

Limpeza– Uso de page-buffering melhora o

desempenhoAs páginas podem ser “recuperadas”, caso

referenciadas, rapidamente

Page 47: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-47

POLÍTICAS

Controle de carga– Determina o número de processos

residentes em memóriaPoucos processos

– Algumas vezes todos os processos podem estar no estado BLOCKED e a CPU fica ociosa

Muitos processos– Trashing

Como definir muito e pouco?

Page 48: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-48

POLÍTICAS

Suspensão– Processos com menor prioridade– Page-fault

O processo não possui seu conjunto presente na memória

Estará no estado BLOCKED

– Último processo a ser ativadoO processo possivelmente não está com seu

conjunto residente presente na memória

Page 49: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-49

POLÍTICAS

Suspensão– Processos com menor conjunto

residenteRequer menor esforço para carregá-lo para

memória – Processos “grandes

Obtém maior número de frames livres– Processo com a maior janela de

execução restante

Page 50: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-50

UNIX e SOLARIS Gerencia de Memória

Sistema de paginação para processos– Alocador de memória para o Kernel

Estruturas de dados– Tabela de páginas

Uma por processo– Disk block descriptor

Descreve a cópia da página virtual (em disco)– Page frame data table

Descreve cada quadro da M.R.– Swap-use table

Uma por cada dispositivo de swap

Page 51: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-51

UNIX e SOLARIS Gerencia de Memória

Substituição de páginas– Refinamento da política do relógio

two-handed clock algorithm

Kernel Memory Allocator– Muitos blocos são menores que a página

padrão

Page 52: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-52

Windows NT Gerencia de Memória

Todos os processos compartilham o mesmo espaço de endereçamento– 2 Gbyte

Tipos de Paginas– Available– Reserved

Reservada para um processo mas não computa na quota de memória do processo

– Committed– Zeros

Page 53: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-53

WORKING SET

Número fixo de páginas referenciáveis working-set window

Exemplo: 10,000 instruçõesWSSi (working set do processo Pi)

– Total de páginas referenciadas no último

– Se Muito pequeno, não incorpora bem a

localidadeMuito grande, atua além da localidade incorpora o programa todo

Page 54: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-54

WORKING SET

Demanda de frames– D= WSSi

Se D > memória ThrashingSe D > memória

Então suspenda um processo

Page 55: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-55

MANUTENÇÃO DO WORKING SET

Aproximação entre interval timer e reference bit

Exemplo: = 10,000– Timer interrompe a cada 5000 u.t.– 2 bits de referência para cada página– Sempre que ocorrer a interrupção

Se um dos bits em 1 Página no W.S. Coloca os bits em 0 Por que isto não é completamente preciso?

– Aprimorando 10 bits e interrupção a cada 1000 u.t.

Page 56: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-56

ESQUEMA PAGE-FAULT FREQUENCY

Taxa “aceitável” de page-fault– Taxa pequena

Processoperde frames.

– Taxa altaProcesso

ganha frames.

Page 57: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-57

OUTRAS CONSIDERAÇÕES

PreparaçãoSeleção do tamanho de página

– fragmentação– Tamanho da tabela– E/S overhead– localidade

Page 58: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-58

OUTRAS CONSIDERAÇÕES

Estrutura de programa– Array A[1024, 1024] de integer

– Cada linha é armazenada em uma página

Programa 1: for j := 1 to 1024 do for i := 1 to 1024 do A[i,j] := 0; 1024 x 1024 page faults

Program 2:

for i := 1 to 1024 do for j := 1 to 1024 do A[i,j] := 0;1024 page faults

Page 59: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-59

SEGMENTAÇÃO POR DEMANDA

Utilizado quando o hardware não suporta (eficientemente) paginação por demanda– S.O. aloca memória em segmentos registrados

em “segment descriptors”

O Segment descriptor contém um bit de validade (valid bit) para indicar se o segmento está presente na memória– Se presente: o acesso continua– Se não presente: “segmentation fault”.

Page 60: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-60

Real Real Virtual

Sistemas

Mono Usuário

SistemasMultiprogramadosem Memória Real

SistemasMultiprogramados

em Memória Virtual

Partições

FixasPartições Variáveis

Absoluta Relo- cáveis

PaginaçãoPura

SegmentaçãoPura

Paginação e

Segmentação Combinadas

Evolução das Organizações de Memória

Page 61: Memória Virtual Sistemas Operacionais I

24/04/2001Sistemas Operacionais I - Versão Beta 3 8-61

SEGMENTAÇÃO POR DEMANDA

Ótimo “A exemplo das pessoas, os computadores

também tendem a adiar o quanto possível a ocorrência de eventos desagradáveis”

String de Referência

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

Frame 1 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7

Frame 2   0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0

Frame 3     1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1

Page Faults F F F F   F   F     F     F       F