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

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

Memória Virtual Sistemas Operacionais I

Apresentações semelhantes


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

1 Memória Virtual Sistemas Operacionais I
Sistemas Operacionais I - Versao Beta 3 24/04/2001 Memória Virtual Sistemas Operacionais I Módulo 9

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

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

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

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

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

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

8 Sistemas Operacionais I - Versao Beta 3
24/04/2001 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? Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

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

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

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

14 Tabela de Páginas 1 Nível Tabela de Páginas 2 Nível
PAGINAÇÃO Tabela de páginas multiníveis Dois níveis Tabela de Páginas 1 Nível Tabela de Páginas 2 Nível Memória Sistemas Operacionais I - Versão Beta 3 24/04/2001

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-bits Page Offset (deslocamento) consiste de 12-bits Sistemas Operacionais I - Versão Beta 3 24/04/2001

16 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 pi p2 d 10 10 12 Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

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

20 PAGINAÇÃO Tabela de páginas invertida Vantagem Desvantagem Solução
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 Sistemas Operacionais I - Versão Beta 3 24/04/2001

21 Endereço lógico/virtual
PAGINAÇÃO Tabela de páginas invertida Arquitetura Endereço lógico/virtual End. Físico Memória Física Busca Endereço lógico Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

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

25 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 # Frame # Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

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

29 SEGMENTAÇÃO E PAGINAÇÃO
Sistemas Operacionais I - Versao Beta 3 24/04/2001 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 Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

32 SEGMENTAÇÃO E PAGINAÇÃO
MULTICS – Translação de endereços Endereço virtual S N Tabela de Segmentos End. Real Tabela de Páginas Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47 Sistemas Operacionais I - Versao Beta 3
24/04/2001 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? Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

50 UNIX e SOLARIS Gerencia de Memória
Sistemas Operacionais I - Versao Beta 3 24/04/2001 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 Sistemas Operacionais I - Versão Beta 3 24/04/2001

51 UNIX e SOLARIS Gerencia de Memória
Sistemas Operacionais I - Versao Beta 3 24/04/2001 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 Sistemas Operacionais I - Versão Beta 3 24/04/2001

52 Windows NT Gerencia de Memória
Sistemas Operacionais I - Versao Beta 3 24/04/2001 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 Sistemas Operacionais I - Versão Beta 3 24/04/2001

53 WORKING SET Número fixo de páginas referenciáveis
  working-set window Exemplo: 10,000 instruções WSSi (working set do processo Pi) 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 Sistemas Operacionais I - Versão Beta 3 24/04/2001

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

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

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

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

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

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

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

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 1 2 3 4 Frame 1 Frame 2 Frame 3 Page Faults F Sistemas Operacionais I - Versão Beta 3 24/04/2001


Carregar ppt "Memória Virtual Sistemas Operacionais I"

Apresentações semelhantes


Anúncios Google