UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. 26/05/2014 Prof. Valeria M. Bastos

Documentos relacionados
UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Virtual. Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1

Arquitetura de Sistemas Operacionais

Sistemas Operacionais Memória Virtual

Organização e Arquitetura de Computadores I

Gerência da Memória. Adão de Melo Neto

Sistemas Operacionais

Gerência de Memória. Paginação

Sistemas Operacionais. - Gerência de Memória -

Memória virtual. Sistemas de Computação

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

Gerenciamento de memória Memória Virtual

Sistemas Operacionais: Memória Virtual

Sistemas Operacionais. - Gerência de Memória -

Gerenciamento de memória

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Capítulo 6 Nível do Sistema Operacional

AULA 14 - Memória Virtual

Administração de Memória

Fundamentos de Sistemas Operacionais

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Aula 10 Gerenciamento de Memória

EA075 Memória virtual

Organização de um Sistema Operativo

Gerenciamento de Memória

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Sistemas Operacionais

Gerenciamento de Memória

Gerência de memória III

Gestão de Memória. Espaço de Endereçamento

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

Algoritmos de Substituição de Páginas. Igor Gustavo Hoelscher Renan Arend Rogério Corrêa Medeiros

Capítulo 7 Gerência de Memória

Gerenciamento de Memória

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

Aula 15. Memória Virtual - Desempenho. 1.1 Contexto 1.2 Políticas de Reposição de Páginas 1.3 Working-Set 1.4 Trashing

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

Gerência de Memória. Gerência de Memória Virtual. Gerência de Memória. Gerência de Memória. Gerência de Memória. Gerência de Memória 17/04/2017

Gestão de Memória. Espaço de Endereçamento

Durante a evolução das arquiteturas de computadores e principalmente dos Sistemas Operacionais, muitas tecnologias tiveram que ser aprimoradas para

Gerência da Memória Memória Virtual. Adão de Melo Neto

ENADE 2011 SISTEMAS OPERACIONAIS

Gerência de Memória. Gerência de memória. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos. Memória: UCP. Unidade de controle

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 9 Ge r ê n cia a de e M e m ór ia

INE5412 Sistemas Operacionais I

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Gerência de Memória Algoritmos de Substituição de Páginas

Sistemas Operacionais

Organização e Arquitetura de computadores

LISTA DE EXERCICIOS 2

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Organização e Arquitetura de Computadores

Algoritmos de Gestão de Memória

Capítulo 6 Gerência de Memória 103

Gestão de memória - Memory Management Unit (MMU)

Capítulo 9: Memória Virtual. Operating System Concepts 8 th Edition

Sistemas Operacionais Gerência de Memória

Gestão de memória - Memory Management Unit (MMU)

Organização e Arquitetura de Computadores I

13 de Maio de Aula 17

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

EA960 Memória virtual

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Aula 12. Gerência de Memória - Paginação

Sistemas Operacionais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

SISTEMAS OPERACIONAIS. Gerência de Memória Virtual (Alocação de Memória Não-Contígua) Apostila 08 UNIBAN

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Aula 14. Memória Virtual. 1.1 Linha evolucionária 1.2 O que é 1.3 Implementação 1.4 Problemas. Universidade Federal de Minas Gerais

Sistemas de Computação. Memória virtual (cont.)

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Infraestrutura de Hardware. Memória Virtual


SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Exercícios de revisão V2

Introdução. Considerações:

Prof. Adriano Maranhão

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

ICET CURSO: Ciência da Computação e Sistemas de Informação (Sistemas Operacionais Abertos) Estudos Disciplinares. Campus: Data: / / Nome: Questão 1:

Microprocessadores. Memórias

Espaço de Endereçamento

Computadores e Programação (DCC/UFRJ)

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

Memória virtual. Sistemas Segmentados

Arquitectura de Computadores

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

Gerência de Memória. Segmentação

ELECTRÓNICA DE COMPUTADORES. Sumário

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

LISTA DE EXERCÍCIOS 02

Arquitectura de Computadores

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Capítulo 4 Gerenciamento de Memória

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

Caching. Caches do Sistema de Ficheiros

Hierarquia de Memória

Transcrição:

UFRJ IM - DCC Sistemas Operacionais I Unidade III Memória Virtual 26/05/2014 Prof. Valeria M. Bastos 1

Processador Memória Primária Memória Virtual Fundamentos Organização Lógica Gerenciamento de Recursos I ORGANIZAÇÃO DA UNIDADE Processos de Mapeamento Algoritmos de Re-alocação Estratégias de Gerenciamento 2

Fundamentos Consiste na utilização de espaços do disco rígido como extensão lógica da memória primária. A memória virtual é transparente para o programador e para o processador. A memória virtual expande o tamanho da memória primária. A memória virtual não é ilimitada. O sistema ganha em flexibilidade e perde em termos de desempenho. 3

Características Todas as referências a memória passam a ser com endereços lógicos virtuais (VA), que são traduzidos em endereços físicos, em tempo de execução. Uma tarefa é dividida em partes (páginas ou segmentos), não necessariamente localizados em áreas contíguas na memória. Com a memória virtual acaba a necessidade de todas as partes de uma tarefa estarem carregadas em memória primária. Uma tarefa pode ocupar diferentes áreas de memória durante a sua execução O uso da memória virtual é transparente ao usuário e à própria CPU 4

Características Maior tempo de resposta para as referências à memória. Maior complexidade do hardware e do esquema de gerenciamento. Impossibilidade de estimar de forma precisa e segura, o tempo a ser gasto em qualquer referência à memória. Uma mesma referência à memória pode consumir tempos diferentes de execução. 5

Vantagens Mais processos mantidos em MP os processos são carregados parcialmente maior eficiência na utilização do processador Processos podem ser maiores que a memória principal Todo programador tem disponível uma memória de trabalho (virtual) de tamanho igual a todo espaço de endereçamento disponível. O SO se encarrega de trazer para a memória física as partes necessárias para a execução do programa. 6

Endereçamento Cada referência virtual é convertida para o endereçamento físico em tempo de execução. Este processo de conversão é chamado de mapeamento. Geralmente em Hardware Memória Real VA Mapeamento Em memória OU PA Não está em memória SO Tabelas HD 7

Suporte Necessário Hardware: Tradução (mapeamento) eficiente de endereços. Movimentação eficaz dos trechos de informação entre a memória virtual e a física. SO: Re-alocação eficiente da memória física. Princípio da Localidade x Trashing Memória virtual Swapping 8

Princípio da Localidade As referências de memória tendem a ser agrupadas em termos espaciais e/ou temporais. Em um programa bem construído, a probabilidade média da próxima instrução a ser executada ser a seguinte ou estar nas redondezas da instrução corrente é mais elevada do que outras hipóteses. Somente alguns trechos do código são necessários para a execução num curto espaço de tempo; É possível ter uma razoável noção dos trechos de código que serão utilizados num futuro próximo, reduzindo os riscos de trashing. 9

Trashing Trashing é a situação onde o sistema passa a maior parte do tempo removendo e trazendo partes de processos em lugar de executando instruções dos mesmos. A memória normalmente está toda ocupada com partes de diversos processos. Quando o SO precisa carregar uma nova parte, um outro pode precisar ser removido para abrir espaço. Se for removida uma parte que seja referenciada logo a seguir, esta precisará ser carregada novamente. 10

Organização Lógica Organização Lógica da Memória Paginada Segmentada Segmentada com Paginação Processo de Mapeamento Unidade de Conversão VA PA Tabelas de Referência Cache para Tabelas de Referência (TLB) Gerenciamento Estratégias de Busca Estratégias de Alocação Estratégias de Realocação Estratégias de Definição da Área de Trabalho Estratégias de Limpeza Estratégias de Carga 11

Cada processo tem sua própria tabela de páginas Gerenciamento de Recursos I Cada entrada contém um bit de presença (P) indicando se a página se encontra na memória física ou não Se a página está presente, a entrada contém o número da moldura da página correspondente Cada entrada também contém um bit de modificação (M) Endereço Virtual Paginação páginas não modificadas não precisam ser gravadas em disco quando removidas Número Página Offset Entrada da Tabela de Página P M Outros bits controle Número Moldura 12

Tradução de Endereço Endereço Virtual P# Offset Frame# Offset Registrador Pont Tab Seg Tabela de Página Offset Página P# Frame# Programa Paginação Memória Principal Problema: Espaço ocupado pela PT (proporcional ao tamanho da memória virtual) Solução: Tabela de páginas invertidas Múltiplas tabelas de página 13

As tabelas de páginas são mantidas em memória Gerenciamento de Recursos I Múltiplas Tabelas O espaço de endereçamento virtual pode ser muito grande ou esparso: a tabela de páginas pode ocupar muito espaço na memória Solução: as tabelas de páginas são mantidas na memória virtual Endereço Virtual Diretório de Tabela de Página Tabela de Página Moldura de Página T1 # T2# Offset T1# T2# Frame# Offset PT2# Frame# PT1 PT2 14

Endereço Virtual Gerenciamento de Recursos I Tabela Invertida Técnica para reduzir o gasto com tabelas de páginas gasto proporcional ao tamanho da memória real P # Offset P # Entrada Tabela Página Cadeia Hash Frame# Frame # Offset Hash Table Tabela de Página Invertida (*) Número de entradas na Tabela Invertida é aproximadamente igual ao número de páginas na memória real 15

Transaction Lookaside Buffer - TLB Cada referência à memória virtual pode gerar dois ou mais acessos à memória real: 1 - Busca a entrada da tabela de página apropriada 2 - Busca o dado necessário Uso de uma cache para entradas da tabela de páginas (TLB) aumenta o desempenho Contém as entradas usadas mais recentemente número da página número da moldura (frame) bit de modificação e outros bits de controle Funciona como memória cache TLB 16

Uso da TLB Endereço Virtual Memória Principal Memória Secundária Página # Offset Translation Lookaside Buffer TLB hit Offset Tabela de Página TLB miss Carrega Página Frame # Offset Endereço Real Page fault 17

TLB + Cache Operação TLB Endereço Virtual P# Offset Translation Lookaside Buffer Hit Operação Cache Endereço Real Miss Tag Resíduo Cache Hit Valor + Miss Valor Tabela de Página Memória Principal 18

Programa requer acesso à página Não Início Memória cheia? Rotina de suporte à falta de página Sim CPU checa TLB Não SO instrui CPU a Executa troca de página Tabela página na TLB? Sim ler a página do disco Não CPU ativa hardware de E/S Acessa tabela de página Página é transferida do disco para MP Página está na MP? Sim Tabela de página atualizada Atualiza TLB CPU gera endereço físico 19

Tamanho da Página y Quanto menor a página = Menor a fragmentação interna y Quanto menor a página = Mais páginas por processo y maior a tabela de páginas y mais tabelas na memória secundária y mais falta de páginas (page faults) y A transferência de dados com a memória secundária é mais eficiente com blocos maiores y O número de falta de páginas (page faults): y diminui à medida que o tamanho da página aumenta (até certo ponto) y depois deste ponto, começa a baixar (fenômeno da saturação) 20

Comportamento Típico da Paginação P (a) Tamanho da Página W (b) Número de Molduras de Páginas Alocadas N 21

Tendências Aplicativos y maior uso de memória y menor localidade (programação orientada a objetos, multithreading) A TLB precisa ser maior Alternativa: páginas de vários tamanhos y páginas maiores para regiões de alta localidade y páginas menores para regiões de baixa localidade 22

Segmentação Vantagens Simplifica o tratamento de estruturas dinâmicas Recompilação separada de programas Facilita o compartilhamento de memória Facilita a proteção apropriada da memória Tabela de segmentos Endereço e tamanho do segmento Bit de presença Bit de modificação Segmentos têm tamanho variável e dinâmico Endereço Virtual Número Segmento Offset Tabela de Entrada de Segmento P M Outros bits controle Tamanho Base Segmento 23

Tradução de Endereços na Segmentação Endereço Virtual Endereço Real Seg # Offset=d Base + d + Registrador Pont Tab Seg Tabela de Segmento S # d Segmento Length Base Programa Segmentação Memória Principal 24

Segmentação Paginada Vantagens Paginação elimina a fragmentação externa Segmentação permite estruturas dinâmicas, modularidade e suporte para compartilhamento e proteção Cada segmento é quebrado em páginas de tamanho igual Endereço Virtual Número Segmento Número Página Offset Tabela de Entrada de Segmento Outros bits controle Tamanho Base Tabela de Página Tabela de Entrada de Página P M Outros bits controle Número Moldura 25

Tradução de Endereços Seg# Pag# Offset Frame # Offset Pont Tab Seg Tabela de Segmento Tabela de Página + S # + P# Offset Moldura de Página Programa Segmentação Paginação Memória Principal 26

PS - Paginação Simples SS - Segmentação Simples PMV - Paginação de Memória Virtual SMV - Segmentação de memória Virtual Gerenciamento de Recursos I Paginação x Segmentação MP é particionada em pedaços fixos (frames) Programa é quebrado em páginas pelo compilador (ou gerenciamento de memória) Segmentos de programas são especificados pelo programador Fragmentação interna Fragmentação externa SO necessita manter tabela de (p)áginas/(s)egmentos para cada processo, mostrando em que moldura o processo se encontra SO necessita manter uma lista de (m)olduras/(e)spaços livres na MP Processador utiliza o número de (p)áginas/(s)egmentos, offset para calcular o endereço absoluto TODAS as (p)áginas/(s)egmentos precisam estar na memória principal para ser executado, a menos que use overlays PS SS PMV SMV X X X X X X X X X X P S P S M E M E P S P S P S 27

Estratégias do SO BUSCA Por demanda Antecipada ALOCAÇÃO RE-ALOCAÇÃO Ótima LRU FIFO Do relógio CONJUNTO RESIDENTE Tamanho fixo Tamanho variável Substituição global Substituição local LIMPEZA Por demanda Antecipada CONTROLE DO NÚMERO DE PROCESSOS 28

Determina quando uma página deve ser carregada Por demanda Somente traz as páginas referenciadas Gerenciamento de Recursos I Estratégia de Busca Existem muitas faltas de página quando o processo começa Por carga antecipada Traz mais páginas do que o necessário É mais eficiente trazer várias páginas contíguas em disco do que cada uma individualmente Se torna ineficiente se são trazidas páginas que não serão referenciadas 29

Estratégia de Alocação Determina onde será carregada a página ou segmento na memória Irrelevante em sistemas paginados => A eficiência do hardware é a mesma para qualquer combinação página-moldura Em sistemas com segmentação pura deve ser usado um dos algoritmos first-fit, worst-fit, next-fit 30

Estratégia de Re-alocação Determina a página a ser removida quando uma nova página está sendo carregada A página substituída pode ser: uma das páginas residentes do próprio processo (LOCAL) qualquer página residente definido pela política de gerência do conjunto residente Algumas molduras podem ser marcadas como não removíveis (locked ou pinned) código do kernel estruturas críticas do S.O. buffers de E/S 31

Algoritmos ÓTIMO LRU FIFO 32

Algoritmo Ótimo Seleciona a página cuja próxima referência será a mais distante Resulta no menor número de falta de páginas Irrealizável já que não é possível prever o futuro Útil para avaliar a eficiência de outras políticas 33

Algoritmo LRU Substitui a página que não é referenciada há mais tempo (Least Recently Used) Pelo princípio de localidade, esta deve ser a página com menos probabilidade de ser referenciada no futuro próximo O desempenho pode ser quase tão bom quanto a política ótima Implementação computacionalmente cara Manter o tempo do último acesso para cada moldura Manter as molduras ordenadas por acesso 34

Algoritmo FIFO Substitui a página carregada há mais tempo (First in, First out) As molduras formam um buffer circular Algoritmo extremamente simples A página residente há mais tempo na memória não significa que não será mais utilizada É possível que hajam trechos utilizados constantemente durante toda a execução do programa 35

Algoritmo do Relógio Aproximação do algoritmo LRU Variações conhecidas como NRU (Not Recently Used) Requer um bit adicional na tabela de páginas: o bit de uso (ou referência) Quando a página é carregada, o bit de uso é desligado Quando a página é referenciada, o bit é ligado A primeira página com o bit de uso igual a zero é removida Durante a procura da página a ser substituída, os bits de uso das páginas pesquisadas são desligados 36

Algoritmo do Relógio n 0 Página = 9 Uso = 1 Página = 19 uso = 1 1. Página = 1 uso = 0.. Página=727 Página = 45 uso = 1 2 8 Página = 222 uso = 0 7 Página = 33 uso = 1 Página = 67 uso = 1 Ponteiro para próxima moldura Página = 13 uso = 0 Página = 556 uso = 0 Página = 191 uso = 1 4 3 6 5 Status do buffer momentos antes de uma substituição de página 37

Algoritmo do Relógio.. n Página = 9 Uso = 1 0 Página = 19 uso = 1 Página = 1 uso = 0 1. Página = 45 uso = 0 2 8 Página = 222 uso = 0 7 Página = 33 uso = 1 Ponteiro para próxima moldura Página = 67 uso = 1 Página = 13 uso = 0 Página = 727 uso = 1 6 5 Status do buffer momentos após a próxima substituição de página Página = 191 uso = 0 4 3 38

Comportamento dos 4 Algoritmos Seqüência de Endereçamento de Página 2 3 2 1 5 2 4 5 3 2 5 2 OTIMO 2 2 2 3 3 2 3 1 2 3 5 2 3 5 2 3 5 4 3 5 4 3 5 2 3 5 2 3 5 2 3 5 F F F LRU 2 2 2 3 3 2 3 1 2 5 1 2 5 1 2 5 4 2 5 4 3 5 4 3 5 2 3 5 2 3 5 2 F F F F FIFO 2 2 2 3 3 2 3 1 5 3 1 5 2 1 5 2 4 5 2 4 3 2 4 3 2 4 3 5 4 3 5 2 F F F F F F RELÓGIO 2* 2* 2* 3* 3* 2* 3* 1* 5* 3 1 5* 2* 1 5* 2* 4* 5* 2* 4* 3* 2 4 3* 2* 4 3* 2 5* 3* 2* 5* * - indica bit de uso = 1 F F F F F 39

Algoritmo do Relógio Possível modificação no algoritmo: Uso do bit de modificação Inicialmente procura por uma página não referenciada e não modificada Procura a seguir por uma página não referenciada mas modificada, desligando o bit de uso durante a procura Repete em ordem as duas procuras Diminui o número de acessos a disco, mas aumenta o tempo de procura 40

Política de Alocação Fixa O tamanho do conjunto residente de cada processo é fixo Esse número é determinado no tempo de carga do processo, baseado: Tipo do processo Informações do compilador ou programador Quando há uma falta de página, uma das páginas do processo é escolhida para ser removida da memória Problema: O número de molduras alocadas pode ser muito pequeno ou desnecessariamente grande 41

Política de Alocação Variável O número de molduras alocadas a um processo pode variar durante a execução deste O tamanho do conjunto residente é dinamicamente ajustado de maneira a evitar uma taxa alta de falta de páginas ou um desperdício de memória É exigido um overhead maior para monitorar o comportamento dos processos A implementação depende do escopo das substituições de páginas: Local: é escolhida uma página do processo Global: é escolhida uma página qualquer 42

Política de Substituição Global É o mecanismo mais simples e muito utilizado Quando há memória disponível, uma falta de página aumentará o tamanho do conjunto residente do processo em questão Quando não há memória disponível, uma falta de página diminuirá o tamanho do conjunto residente de um processo qualquer O processo que perdeu a página pode não ser o ótimo O mau comportamento de um processo degrada o desempenho dos outros processos 43

Política de Substituição Local Estratégia: Carregar o processo com um número pré-determinado de molduras Em caso de falta de página, substituir uma das páginas do próprio processo De tempos em tempos, reavaliar o tamanho do conjunto residente, aumentando-o ou diminuindo-o. 44

Estratégia: Definição: Gerenciamento de Recursos I Modelo do Conjunto de Trabalho Conjunto de trabalho (working set) de um processo O conjunto de páginas referenciadas num tempo É uma função do tempo e de Usualmente os programas alternam períodos de estabilidade com períodos de mudanças bruscas Monitorar o conjunto de trabalho e periodicamente remover da memória as páginas que não façam parte do mesmo Problemas: Nem sempre o passado prediz o futuro É impraticável medir o conjunto de trabalho real O valor ótimo de é desconhecido 45

Política de Limpeza Determina quando uma página modificada (suja) é escrita em disco Antecipada: Por demanda: São escritas Somente quando é periodicamente e substituída em lotes Uma falta de página Pode ser necessário pode implicar em duas escreve-las E/S em disco novamente Buffer de páginas: as páginas na lista de livres modificadas são escritas periodicamente em lotes 46

Determina o número de processos residentes na memória Poucos processos podem causar uma baixa utilização do processador (nenhum processo pronto) Muitos processos causam trashing no sistema Solução: Suspender processos quando: Controle de Carga Seu conjunto de trabalho não cabe na memória O tempo médio entre faltas é menor que o tempo médio para processar uma falta O dispositivo de paginação tem uma taxa de utilização maior que 50% O ponteiro do relógio avança muito rapidamente 47

Controle de Carga Processo candidato à suspensão Processo com menor prioridade Processo sofrendo a falta de página Último processo carregado Processo com o menor conjunto residente O processo com o maior uso de memória O processo com o maior tempo restante de execução 48

UNIX e SOLARIS y Sistema de paginação memória virtual para processos buffer para blocos de disco y Estruturas de dados tabela de páginas (por processo) descritor do bloco em disco (por página virtual) tabela de molduras de página tabela de uso dos blocos de swap 49

y Substituição de páginas Lista de molduras livres Gerenciamento de Recursos I UNIX e SOLARIS Kernel mantém um mínimo de páginas livres Algoritmo do relógio modificado (2 ponteiros) Um ponteiro é usado para desligar o bit de uso O outro ponteiro retira as páginas com o bit de uso igual a 0 Quanto maior a distância entre os dois ponteiros maior a chance da página ser referenciada Quanto menor a memória disponível, mais rápido os ponteiros circulam pela memória 50

Windows NT Espaço de endereçamento de um processo 2 GBytes para o usuário 2 GBytes para o S.O. (inacessíveis em modo usuário) O espaço para o usuário pode ser de 3 Gbytes Estado das páginas virtuais Disponíveis Reservadas (definidas nos VADs) Confirmadas (espaço alocado no arquivo de paginação) Em uso (entradas na tabela de páginas alocadas) 51

Windows NT Política do conjunto residente Alocação variável com substituição local O conjunto residente é chamado de working set O working set varia entre um limite mínimo e um limite máximo Se há memória livre, uma falta de página aumenta o working set Quando há pouca memória livre, uma thread do kernel diminui o working set dos processos Mesmo com pouca memória livre, um grande número de falta de páginas aumenta o working set de um processo 52

Windows NT Política de substituição Arquitetura Intel com um processador Algoritmo do relógio Arquitetura Alpha e arquitetura Intel com múltiplos processadores Algoritmo FIFO A arquitetura Alpha não implementa o bit de uso O algoritmo do relógio fica muito caro em SMPs devido à necessidade de invalidar as TLBs de outros processadores toda vez que o bit de uso é desligado 53

Windows NT Estados de uma página ativa: parte de um working set standby: retirada de um working set e limpa modificada: retirada de um working set e suja livre: disponível para uso zerada: livre e contendo zeros páginas livres tem seu conteúdo desligado quando há poucas páginas zeradas páginas modificadas são gravadas em lotes quando há muitas páginas modificadas ou pouca memória disponível 54