A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Memória Virtual Sistemas Operacionais I Módulo 9."— Transcrição da apresentação:

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

2 24/04/2001Sistemas Operacionais I - Versão Beta 38-2 FUNDAMENTOS Execução de Programas – O S.O carrega partes de um processo para a memória real Conjunto residente (Resident set) – Configurável

3 24/04/2001Sistemas Operacionais I - Versão Beta 38-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 Blocked Parte 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

4 24/04/2001Sistemas Operacionais I - Versão Beta 38-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

5 24/04/2001Sistemas Operacionais I - Versão Beta 38-5 FUNDAMENTOS Particionamento de programas (modularização) – Memória é definida em um dispositivo secundário Programador 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

6 24/04/2001Sistemas Operacionais I - Versão Beta 38-6 FUNDAMENTOS Tipos de memória – Real Principal – Virtual Em disco

7 24/04/2001Sistemas Operacionais I - Versão Beta 38-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

8 24/04/2001Sistemas Operacionais I - Versão Beta 38-8 FUNDAMENTOS Princípio da localidade – Referência a código e dados tendem a ser localizados Loop Logo, 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?

9 24/04/2001Sistemas Operacionais I - Versão Beta 38-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 demanda Segmentação sob demanda

10 24/04/2001Sistemas Operacionais I - Versão Beta 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

11 24/04/2001Sistemas Operacionais I - Versão Beta 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ínua Pode ser modular – Todas as partes não precisam estar presentes na memória principal

12 24/04/2001Sistemas Operacionais I - Versão Beta 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

13 24/04/2001Sistemas Operacionais I - Versão Beta 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

14 24/04/2001Sistemas Operacionais I - Versão Beta 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

15 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Paginação multinível – Suponha um endereço lógico de 32-bits, página de 4KBytes Page Number consiste de 20-bits Page Offset (deslocamento) consiste de 12- bits

16 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Paginação multinível – Supondo que a tabela de páginas é paginada, temos Page Number consiste de 10-bits (p1) Page Offset consiste de 10-bits (p2) page number page offset pipi p2p2 d 10 12

17 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Paginação multinível – Exemplo interessante bits Deslocamento (10-Bits) Nível 2 (10-bits) Nível 1 (10-bits) bits Deslocamento (10-Bits) Frame (10-bits) 0 19 Endereço virtual Endereço Real

18 24/04/2001Sistemas Operacionais I - Versão Beta 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

19 24/04/2001Sistemas Operacionais I - Versão Beta 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

20 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Tabela de páginas invertida – Vantagem Diminui a memória necessária para armazenar a tabela de páginas – Desvantagem Aumenta o tempo necessário para encontrar a página referenciada – Solução Hash Table – Limita a procura a um, ou poucos, acessos

21 24/04/2001Sistemas Operacionais I - Versão Beta 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

22 24/04/2001Sistemas Operacionais I - Versão Beta 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)

23 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Translation Lookaside Buffer – Contém entradas da tabela de páginas que foram utilizadas recentemente Similar 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

24 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Translation Lookaside Buffer – Primeiro verifica se a página já está em memória Caso contrário um page-fault é gerado – A TLB é atualizada com a entrada de página

25 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Translation Lookaside Buffer Endereço virtual Translation Lookaside Buffer Tab. De Pág TLB miss Page fault Endeço Real TLB hit Offset Mem. Principal Mem. Secundária Carga Pág Pág #Offset Frame #Offset

26 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Tamanho da página – Pequena Fragmentos internos pequenos Muitas páginas para um processo Tabela de páginas muito grande Tabelas 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

27 24/04/2001Sistemas Operacionais I - Versão Beta 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 – Grande Aumenta a taxa de page-fault

28 24/04/2001Sistemas Operacionais I - Versão Beta PAGINAÇÃO Tamanho da página – Múltiplos tamanhos Flexibilidade no uso da TLB Páginas grandes podem ser utilizadas para instruções Páginas pequenas podem ser utilizadas para threads

29 24/04/2001Sistemas Operacionais I - Versão Beta 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

30 24/04/2001Sistemas Operacionais I - Versão Beta SEGMENTAÇÃO E PAGINAÇÃO Endereçamento Endereço virtual Entrada da tabela de segmentos Entrada da tabela de páginas Segmento #Página #Offset Bits de controleTamanhoSegmento PMBits de controleFrame #

31 24/04/2001Sistemas Operacionais I - Versão Beta SEGMENTAÇÃO E PAGINAÇÃO Translação de endereços Memória principal Frame Offset Paginação Tabela de Páginas P# + Frame #Offset Seg Table Ptr + S # SegmentaçãoProcesso Tabela de Segmentos Seg #Pag #Offset

32 24/04/2001Sistemas Operacionais I - Versão Beta 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

33 24/04/2001Sistemas Operacionais I - Versão Beta SEGMENTAÇÃO E PAGINAÇÃO I386 – Translação de endereços End. Virtual Tabela de Segmentos End. Linear Diretório de Tab. Páginas Tab. Páginas Memória Real DiretórioPáginaOffset Reg. Tabela Pág. Descritor Deslocamento End. Físico Dir. Páginas

34 24/04/2001Sistemas Operacionais I - Versão Beta 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 Tabela de Páginas

35 24/04/2001Sistemas Operacionais I - Versão Beta 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

36 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Colocação – Determina onde, na memória real, partes de um processo se alojarão Normalmente irrelevante já que o hardware determina os endereços reais

37 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Substituição – Seleciona a página que será substiuida por uma nova Algumas 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

38 24/04/2001Sistemas Operacionais I - Versão Beta 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!

39 24/04/2001Sistemas Operacionais I - Versão Beta 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ção Essas páginas podem ter que retornar rapidamente!

40 24/04/2001Sistemas Operacionais I - Versão Beta 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

41 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Substituição – Clock Utiliza um bit, chamado use-bit Página é carregada na memória com use-bit=0 Referência a página faz use-bit=1 Quando for necessário a substituição, o primeiro frame com use-bit=0 é substituído Durante a procura para substituição use-bit=1 é trocado para use-bit=0

42 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Substituição – Clock 0 n Pág. 9 use-bit=1 Pág. 1 use-bit=0 Pág.45 use-bit=1 Pág. 191 use-bit=1 Pág. 556 use-bit=1 Pág. 13 use-bit=1 … … next frame pointer

43 24/04/2001Sistemas Operacionais I - Versão Beta 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

44 24/04/2001Sistemas Operacionais I - Versão Beta 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ável Número de páginas alocadas ao processo varia durante a execução do processo

45 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Limpeza – Por demanda A página somente é removida se for selecionada para substituição – Antecipada Páginas são removidas em lotes

46 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Limpeza – Uso de page-buffering melhora o desempenho As páginas podem ser recuperadas, caso referenciadas, rapidamente

47 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Controle de carga – Determina o número de processos residentes em memória Poucos processos – Algumas vezes todos os processos podem estar no estado BLOCKED e a CPU fica ociosa Muitos processos – Trashing Como definir muito e pouco?

48 24/04/2001Sistemas Operacionais I - Versão Beta 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 ativado O processo possivelmente não está com seu conjunto residente presente na memória

49 24/04/2001Sistemas Operacionais I - Versão Beta POLÍTICAS Suspensão – Processos com menor conjunto residente Requer 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

50 24/04/2001Sistemas Operacionais I - Versão Beta 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

51 24/04/2001Sistemas Operacionais I - Versão Beta 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

52 24/04/2001Sistemas Operacionais I - Versão Beta 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

53 24/04/2001Sistemas Operacionais I - Versão Beta WORKING SET Número fixo de páginas referenciáveis – working-set window Exemplo: 10,000 instruções WSS i (working set do processo P i ) – Total de páginas referenciadas no último – Se Muito pequeno, não incorpora bem a localidade Muito grande, atua além da localidade incorpora o programa todo

54 24/04/2001Sistemas Operacionais I - Versão Beta WORKING SET Demanda de frames – D= WSS i Se D > memória Thrashing Se D > memória Então suspenda um processo

55 24/04/2001Sistemas Operacionais I - Versão Beta 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.

56 24/04/2001Sistemas Operacionais I - Versão Beta ESQUEMA PAGE-FAULT FREQUENCY Taxa aceitável de page-fault – Taxa pequena Processo perde frames. – Taxa alta Processo ganha frames.

57 24/04/2001Sistemas Operacionais I - Versão Beta OUTRAS CONSIDERAÇÕES Preparação Seleção do tamanho de página – fragmentação – Tamanho da tabela – E/S overhead – localidade

58 24/04/2001Sistemas Operacionais I - Versão Beta 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

59 24/04/2001Sistemas Operacionais I - Versão Beta 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.

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

61 24/04/2001Sistemas Operacionais I - Versão Beta 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 Frame Frame Frame Page FaultsFFFF F F F F F


Carregar ppt "Memória Virtual Sistemas Operacionais I Módulo 9."

Apresentações semelhantes


Anúncios Google