SO-07 Gerenciamento de Memória: Memória Virtual

14,172 views

Published on

Gerenciamento de Memória. Memória Virtual (Sistemas Operacionais)

Published in: Technology, Education
  • Be the first to comment

SO-07 Gerenciamento de Memória: Memória Virtual

  1. 1. Gerenciamento de Memória Memória Virtual
  2. 2.   Introdução   Paginação sob Demanda   Substituição de Páginas   Algoritmos de Substituição de Páginas   Procedimentos de Armazenamento de Páginas   Política de Alocação Local versus Alocação Global   Thrashing   Working Set (Conjunto de Trabalho)   Freqüência de Interrupção de Página Ausente   Tamanho da Página   Tamanho da TLB   Bloqueio de Páginas na Memória   Estrutura de Programas   Exemplos de Sistemas Operacionais Eduardo Nicola F. Zagari 2 Memória Virtual
  3. 3.   Todas as estratégias de gerência até agora mantêm processos inteiros na memória   Em muitos casos, não é necessário o programa inteiro estar em memória:   código de tratamento de erro   vetores, listas e tabelas geralmente alocam mais memória do que usam   certas opções e características de programas raramente são usadas   Vantagens de executar programas parcialmente em memória:   programa não é limitado pelo tamanho da memória   um maior número de processos podem ser carregados ao mesmo tempo  aumentando a utilização da CPU   menor necessidade E/S para carregar ou fazer swapp de processos Eduardo Nicola F. Zagari 3 Memória Virtual
  4. 4.   Técnica de Memória Virtual: separação da memória lógica de usuário e memória física   Somente parte dos programas precisam estar carregados na memória para execução   Espaço de endereçamento lógico pode, portanto, ser muito maior que o espaço de endereçamento físico   Permite que espaços de endereçamento sejam compartilhados por vários processos   Possibilita criação de processos de forma mais eficiente   Memória virtual pode ser implementada via:   Paginação por demanda   Segmentação por demanda Eduardo Nicola F. Zagari 4 Memória Virtual
  5. 5. Memória Virtual Página 0 MAIOR que Página 1 Memória Física Página 2 Memória Física Mapa da Memória Página n Memória Virtual Memória Secundária Eduardo Nicola F. Zagari 5 Memória Virtual
  6. 6.   Similar ao sistema de swapping, mas aplicado somente à página requisitada e não a todo o processo   Traz uma página para a memória somente quando ela é requisitada   Menor necessidade de I/O   Menor necessidade de memória   Respostas mais rápidas   Maior número de usuários   Página requisitada ⇒ referência para ela   Referência inválida ⇒ aborta   Ausente da memória ⇒ traz para memória   Suporte de hardware : bit de presença/ausência (ou válido/inválido)   Page-fault (trap) : interrupção por falta de página Eduardo Nicola F. Zagari 6 Memória Virtual
  7. 7.   Um bit de presença/ausência é associado com cada entrada da tabela de página: (0 ⇒ ausente da memória , 1 ⇒ presente na memória)   Inicialmente o bit é ajustado para 0 em todas as entradas   Exemplo:
 # Bloco Bit de presença/ausência 1 1 1 1 0 … 0 0 Tabela de Páginas   Durante uma tradução de endereço, se o bit de presença/ausência na entrada da tabela de página estiver igual a 0 ⇒ FALTA DE PÁGINA (page fault). Eduardo Nicola F. Zagari 7 Memória Virtual
  8. 8. bloco bit presença/ausência 0 1 0 Página A 0 4 p 2 1 Página B 1 a 3 2 Página C 3 Página D 2 6 p 4 Página A 4 Página E 3 a 5 5 Página F 4 a 6 Página C 6 Página G 7 7 Página H 5 9 p 8 6 a Memória Virtual A B 9 Página F 7 a Memória Física Tabela de Páginas C D E F G H Memória Secundária Eduardo Nicola F. Zagari 8 Memória Virtual
  9. 9. 3 S.O. 2 1 Vá para X a 6 Bloco Livre Tabela de Páginas 4 5 Memória Física Eduardo Nicola F. Zagari 9 Memória Virtual
  10. 10. 1 Referência: verifica na tabela do processo se referência é válida   2 Trap: se a referência for inválida ERRO; se for válida, mas a página   não está na memória, gera interrupção de falta de página 3 Página na memória secundária: localiza um bloco livre   4 Carrega página: realiza uma operação no disco (E/S) para ler a   pág. desejada e carregá-la p/ o bloco livre 5 Modifica tabela de páginas: terminada a op. de E/S, atualiza a   tabela p/ indicar que a pág. está na memória 6 Reinicia execução da interrupção: como o estado do processo foi   salvo, reinicia a interrupção que causou a falta de página (endereço de pág inexistente na mem.) Eduardo Nicola F. Zagari 10 Memória Virtual
  11. 11.   Paginação por demanda pura:   não levar nenhuma página para memória até que ela seja requisitada Queda de desempenho? Padrão de localidade de referência Número da página Tempo de execução Eduardo Nicola F. Zagari 11 Memória Virtual
  12. 12. bloco bit presença/ausência PC 3 p 0 H p 4 0 S.O. 1 Carregar M 2 J 5 p 1 3 M a 2 D Memória Lógica Tabela de Páginas 3 H B do usuário 1 do usuário 1 4 Carregar M 0 A 6 p 5 J M 1 B 6 A 2 D a E 7 3 E 2 p Memória Física Memória Lógica 7 p do usuário 2 Tabela de Páginas Eduardo Nicola F. Zagari do usuário 2 12 Memória Virtual
  13. 13.   Substituição de página: quando ocorre uma falta de página e não existe nenhum bloco disponível, um bloco que não está sendo usado no momento é selecionado e liberado. A rotina de tratamento de uma page-fault: 1.  Localizar a página desejada no disco 2.  Localizar um bloco livre:   se existir um bloco livre, usá-lo   caso contrário, usar um algoritmo de substituição de página para selecionar a que será substituída   Salvar a página a ser substituída no disco e atualizar as tabelas de blocos e páginas de acordo 3.  Ler a página desejada no “novo” bloco e atualizar as tabelas 4.  Reiniciar o processo do usuário Eduardo Nicola F. Zagari 13 Memória Virtual
  14. 14.   Se não existe nenhum bloco livre  note que são necessárias 2 transferências de página   para reduzir esta sobrecarga, usa-se um bit de modificação  ele é ativado pelo hardware sempre que qualquer palavra ou byte desta página é alterado, de forma a indicar que a página foi modificada  se a página é selecionada para ser substituída: –  bit de modificação ativado  deve ser gravada no disco –  bit de modificação não ativado  não é necessário ser regravada no disco (o bloco é sobreposto) Eduardo Nicola F. Zagari 14 Memória Virtual
  15. 15.   Menor taxa de falta de página   Ex: seqüência de referências a endereços de memória 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105   Se cada página tiver 100 bytes, os acessos serão às pags.: 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1 Número de interrupções de páginas ausentes Número de blocos Eduardo Nicola F. Zagari 15 Memória Virtual
  16. 16.   Algoritmo FIFO (First-In, First-Out) ou PCPS (Primeiro a Chegar, Primeiro a Sair)   Algoritmo Ótimo   Algoritmo NRU (Not Recently Used)   Algoritmo LRU (Least Recently Used)   NFU (Not Frequently Used)   Aging   Algoritmo da Segunda Chance   Algoritmo do Relógio   Algoritmo MFU Eduardo Nicola F. Zagari 16 Memória Virtual
  17. 17.   A página que foi primeiro utilizada (first-in) será a primeira a ser retirada (first-out)   Fila (lista encadeada) de páginas Início: Página mais velha Fim: Página mais nova   Falta de página Retira página do início Insere página nova no fim   Simples   A princípio: razoável que a página há mais tempo no working set deva ser retirada 1o  mas isto nem sempre é verdade... Eduardo Nicola F. Zagari 17 Memória Virtual
  18. 18. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 17 7 7 2 2 2 4 4 4 0 0 0 7 7 7 2 0 0 0 3 3 3 2 2 2 1 1 1 0 0 3 1 1 1 0 0 0 3 3 3 2 2 2 1 15 faltas de páginas Eduardo Nicola F. Zagari 18 Memória Virtual
  19. 19. 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 0 1 4 4 4 2 3 3 3 blocos 0 1 2 3 0 1 1 1 4 2 2 0 1 2 3 0 0 0 1 4 4 F F F F F F F F F = 9 fault pages 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 3 3 4 0 1 2 3 4 4 0 1 2 2 2 3 4 0 1 2 3 blocos 0 1 1 1 2 3 4 0 1 2 0 0 0 1 2 3 4 0 1 F F F F F F F F F F = 10 fault pages Eduardo Nicola F. Zagari 19 Memória Virtual
  20. 20.   Trocar a página que não será usada no período mais longo   Desempenho – deseja-se um algoritmo que resulte em um número mínimo de faltas de páginas (page faults). 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 17 7 7 2 2 2 2 2 7 2 0 0 0 0 4 0 0 0 3 1 1 3 3 3 1 1 9 faltas de páginas Eduardo Nicola F. Zagari 20 Memória Virtual
  21. 21.   Problema: saber quando cada página será referenciada  Impossível de se implementar   Utilidade: Comparação com relação aos demais algoritmos Eduardo Nicola F. Zagari 21 Memória Virtual
  22. 22.   Hardware: 2 bits de estado associados a cada página   Bit R (referência): ativado quando a página é referenciada   Bit M (modificação): ativado quando ela é modificada bits de proteção bit de modificação bit presença/ausência bit de referência bloco entrada da tabela de páginas   Bits ativados por hardware e desativados por software Eduardo Nicola F. Zagari 22 Memória Virtual
  23. 23.   Se o hardware não dispõe dos bits R e M: Simulados por software  Processo iniciado  Ausente na memória (tabela de páginas zerada)  Referência a uma página  falta de página  SO ativa bit R (tabela interna), atualiza tabela de páginas, seta proteção para “Somente Leitura” e retoma instrução  Se instrução de escrita  nova falta de página  SO ativa bit M e muda modo da página para “Leitura/Escrita” Eduardo Nicola F. Zagari 23 Memória Virtual
  24. 24.   Escolhe a página que não foi recentemente utilizada   Algoritmo:   Processo iniciado  bits de página (R e M) iguais a zero   Periodicamente, bit R é zerado   Falta de página  SO inspeciona páginas e as classifica:   Classe 0: não referenciadas, não modificadas Atenção   Classe 1: não referenciadas, modificadas   Classe 2: referenciadas, não modificadas   Classe 3: referenciadas, modificadas   NRU remove página aleatória da classe não vazia de numeração mais baixa Eduardo Nicola F. Zagari 24 Memória Virtual
  25. 25.   Seleciona a página usada há mais tempo, isto é, o objetivo é retirar aquela que está há mais tempo sem ser referenciada   Realizável  alto custo Início: Página usada mais recentemente   Manter lista Fim: Página usada menos recentemente dificuldade: atualizar a cada referência à memória Eduardo Nicola F. Zagari 25 Memória Virtual
  26. 26. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 17 7 7 2 2 4 4 4 0 1 1 1 2 0 0 0 0 0 0 3 3 3 0 0 3 1 1 3 3 2 2 2 2 2 7 12 faltas de páginas Eduardo Nicola F. Zagari 26 Memória Virtual
  27. 27.   Implementação por hardware: 2 maneiras   Contador: um contador é adicionado à CPU e incrementado automaticamente a cada referência à memória. Toda vez que é feita uma referência à página, o conteúdo do contador é copiado para o campo instante-de-uso na entrada da tabela de páginas referente à página acessada.  seleciona-se a página com o menor contador   Matriz nxn (onde n é o número de blocos): toda vez que a página k é referenciada colocam-se todos os bits da linha k em 1 depois, zeram-se todos os bits da coluna k  em cada instante, a página LRU corresponde à linha com o menor valor binário armazenado Eduardo Nicola F. Zagari 27 Memória Virtual
  28. 28.   Considere a seguinte ordem de referências às paginas 0 1 2 3 2 1 0 3 2 3 0123 0123 0123 0123 0123 0 0111 0011 0001 0000 0000 1 0000 1011 1001 1000 1000 2 0000 0000 1101 1100 1101 3 0000 0000 0000 1110 1100 0 0000 0111 0110 0100 0100 1 1011 0011 0010 0000 0000 2 1001 0001 0000 1101 1100 3 1000 0000 1110 1100 1110 Eduardo Nicola F. Zagari 28 Memória Virtual
  29. 29.   Implementação por Pilha – mantém uma pilha do número das páginas em uma lista duplamente encadeada da seguinte forma:   Página referenciada:  Mova-a para o topo  Requer que 6 ponteiros sejam atualizados   Não há a necessidade de busca para substituição Eduardo Nicola F. Zagari 29 Memória Virtual
  30. 30. Eduardo Nicola F. Zagari 30 Memória Virtual
  31. 31.   requer um contador em software associado a cada página   a cada interrupção de tempo, SO faz Cont ← Cont + bit R   Falta de página  SO escolhe página com menor Cont   Problema: nunca esquece referências anteriores Eduardo Nicola F. Zagari 31 Memória Virtual
  32. 32.   Algoritmo Aging (Envelhecimento): modificação do NFU   Contadores são sempre deslocados um bit antes de serem somados com o bit R   Bit R é adicionado ao bit mais à esquerda do contador, ao invés de ser somado ao mais à direita   Falta de página  SO escolhe página com menor Cont Eduardo Nicola F. Zagari 32 Memória Virtual
  33. 33. Bits R Bits R Bits R Bits R Bits R das páginas das páginas das páginas das páginas das páginas 101011 110010 110101 100010 011000 Cont 0 10000000 11000000 11100000 11110000 01111000 Cont 1 00000000 10000000 11000000 01100000 10110000 Cont 2 10000000 01000000 00100000 00010000 10001000 Cont 3 00000000 00000000 10000000 01000000 00100000 Cont 4 10000000 11000000 01100000 10110000 01011000 Cont 5 10000000 01000000 10100000 01010000 00101000 Eduardo Nicola F. Zagari 33 Memória Virtual
  34. 34.   É um algoritmo FIFO modificado   Possui um bit de referência (bit R) que indica se página foi referenciada   Se página mais antiga possui R = 0 (não foi referenciada)  ela é escolhida   Caso contrário,  R é feito zero (R ← 0) e ela vai para o final da fila  A busca continua Eduardo Nicola F. Zagari 34 Memória Virtual
  35. 35. Instante: 0 3 7 8 12 14 15 18 Falta de Página A B C D E F G H no instante t = 20 Bit R = 1 3 7 8 12 14 15 18 20 B C D E F G H A Bit R = 0   Retira página velha não referenciada no último intervalo de tempo   Problema: Se todas as páginas foram referenciadas, então algoritmo degenera para um FIFO puro Eduardo Nicola F. Zagari 35 Memória Virtual
  36. 36.   Semelhante ao da Segunda Chance, mas mais eficiente   Falta de Página  inspeciona página para a qual o ponteiro está apontando:  Se bit R = 0  retire a página  Se bit R = 1  faça R ← 0 e avance o ponteiro A H B G C F D E Eduardo Nicola F. Zagari 36 Memória Virtual
  37. 37.   Escolhe a página mais freqüentemente usada   Argumento: uma página com contador de valor baixo, foi, provavelmente, trazida para a memória recentemente e ainda será usada Eduardo Nicola F. Zagari 37 Memória Virtual
  38. 38.   Reserva de blocos   não é necessário esperar que a página selecionada seja transferida para o disco   Lista de páginas modificadas   automação através do dispositivo de transferência de páginas   minimiza probabilidade da página selecionada não estar atualizada no disco   Manter registros de qual página está no conjunto de blocos reservados   pode-se evitar E/S, aproveitando-se a antiga página contida na reserva de blocos Eduardo Nicola F. Zagari 38 Memória Virtual
  39. 39.   Substituição Global:   permite alocar para um determinado processo qualquer bloco da memória, mesmo que já esteja alocado a outro processo   Desempenho do processo depende do comportamento dos demais   Substituição Local:   o bloco alocado a um processo deve pertencer ao conjunto de blocos reservado para este processo   Poucos blocos: pode provocar queda de desempenho, mesmo havendo blocos livres ou usados com menos freqüência   Muitos blocos: pode provocar desperdício   Na prática os algoritmos globais funcionam melhor Eduardo Nicola F. Zagari 39 Memória Virtual
  40. 40. Idade 0 A0 10 A0 A0 1 A1 7 A1 A1 2 A2 5 A2 A2 3 A3 4 A3 A3 4 A4 3 A6 A4 5 B0 9 B0 B0 6 B1 4 B1 B1 7 B2 6 B2 B2 8 B3 2 B3 A6 9 B4 5 B4 B4 10 B5 12 B5 B5 11 C1 5 C1 C1 12 C2 6 C2 C2 Memória Física Substituição Local Substituição Global Eduardo Nicola F. Zagari 40 Memória Virtual
  41. 41.   Considere que o sistema monitore a utilização da CPU   Se for baixa  aumenta o grau de multiprogramação   Considere também que é usado um algoritmo de trocas de páginas global   Agora suponha que um processo entre em uma nova fase, que precise de mais páginas   Ele “rouba” blocos dos outros processos, aumentando a taxa de falta de páginas, conseqüentemente, diminuindo a utilização da CPU  realimentando o ciclo   Dizemos que há thrashing (paginação excessiva) qdo ele está consumindo mais tempo em substituição de páginas do que na execução do seu código Eduardo Nicola F. Zagari 41 Memória Virtual
  42. 42. Paginação Excessiva Utilização da CPU Grau de Multiprogramação Eduardo Nicola F. Zagari 42 Memória Virtual
  43. 43.   Por que a Paginação funciona?
 Princípio (Modelo) da Localidade   Processo migra de uma localidade para outra.   Localidades podem se sobrepor.   Inicialização de um processo  Paginação sob Demanda  Funciona devido à localidade de referências   Por que então ocorreria thrashing ?
 Σ tamanhos das localidades > tamanho total da memória Eduardo Nicola F. Zagari 43 Memória Virtual
  44. 44. Eduardo Nicola F. Zagari 44 Memória Virtual
  45. 45.   Para prevenir thrashing deve-se fornecer aos processos o número de blocos que ele precisa Mas o que fazer quando um processo sofre swap in?   Conjunto de Trabalho   É o conjunto de páginas referenciadas por um processo durante um determinado intervalo de tempo   É o conjunto de páginas constantemente referenciadas pelo processo e que deve permanecer na memória para que ele execute de forma eficiente Eduardo Nicola F. Zagari 45 Memória Virtual
  46. 46.   Modelo do Conjunto de Trabalho:   SO mantém controle sobre o conjunto de trabalho dos processos   SO carrega antes as páginas do CT de um processo, ao colocá-lo em execução, reduzindo o no de falta de páginas (pré-paginação) Quais páginas devem fazer parte do CT de um processo?   Uma forma de implementação é através do algoritmo aging:   qualquer página contendo um bit 1 entre os n bits mais significativos do contador será considerada membro do CT do processo à qual ela pertence Eduardo Nicola F. Zagari 46 Memória Virtual
  47. 47. Eduardo Nicola F. Zagari 47 Memória Virtual
  48. 48.   SO monitora a quantidade de páginas (Di) nos conjuntos de trabalho de todos os processos   Se Σi (CTi) for maior que o no de blocos livres  thrashing   Neste caso, SO seleciona um processo para sofrer swapping   Working Set grande Menor taxa de falta de página Menor número de processos na memória Alocação local: número de páginas iguais ou número de páginas proporcionais (nem considera thrashing) Alocação global: tamanho do CT pode variar muito mais rápido do que os bits de envelhecimento Problema de thrashing persiste... Eduardo Nicola F. Zagari 48 Memória Virtual
  49. 49.   Para evitar o thrashing: Alg. PFF (Page Fault Frequency)   Controla diretamente a taxa de interrupções por F.P.  F.P. muito alta  processo necessita de mais blocos  F.P. muito baixa  processo está com blocos em excesso   Estipula-se um limite máximo e um limite mínimo para a taxa de interrupções por F.P.  Processos acima do máx  recebem mais blocos  Processos abaixo do mín  removem-se blocos   Se a taxa de interrupções cresce e não há blocos disponíveis  seleciona-se um processo e o suspende  blocos liberados são redistribuídos ou colocados à disposição   Swapping usado para redução de demanda potencial por memória Eduardo Nicola F. Zagari 49 Memória Virtual
  50. 50. Aumentar Taxa de interrupções número de blocos de página ausente Limite Máximo Limite Mínimo Número de blocos Diminuir número de blocos Eduardo Nicola F. Zagari 50 Memória Virtual
  51. 51.   Tamanho é sempre potência de 2 (29 - 214 bytes)   SO pode escolher tamanho:   hardware projetado para pags. de 512 bytes   SO enxerga pag. 0 e 1, 2 e 3, ... como páginas de 1k, alocando sempre 2 blocos consecutivos na memória para elas   Tamanho ótimo:   Páginas pequenas:  Menor desperdício: em média 1/2 página é perdida com fragmentação interna no fim de um segmento  Reduz a possibilidade de espaços inativos dentro de uma página Eduardo Nicola F. Zagari 51 Memória Virtual
  52. 52.   Páginas grandes:  Menor número de páginas  menor tabela de páginas  Transferir páginas pequenas toma quase tanto tempo quanto transferir páginas grandes para o disco (movimento da cabeça e latência rotacional)  Menor a taxa de falta de páginas   Tamanho ótimo: 1448 bytes (valor teórico)   A maioria dos computadores comerciais têm páginas de 512 a 8k bytes   Historicamente, este valor tem aumentado... Eduardo Nicola F. Zagari 52 Memória Virtual
  53. 53.   Alcance da TLB - A quantidade de memória acessível a partir da TLP.   Alcance da TLB = (Tamanho da TLB) X (Tamanho da Página)   Idealmente, o Conjunto de Trabalho de cada processo deveria ser armazenado inteiramente na TLB. Eduardo Nicola F. Zagari 53 Memória Virtual
  54. 54.   Considere o exemplo:   Processo emite chamada de sistema de E/S   Processo é suspenso   Novo processo gera falta de página   Se alocação global  existe chance da página escolhida para ser removida ser a página contendo o buffer de E/S   Como o DMA (acesso direto) não tem como identificar em que página está escrevendo  inconsistência   Primeira Solução:   Operações de E/S usarem um buffer dentro do kernel  a cópia pode resultar em uma sobrecarga inaceitável Eduardo Nicola F. Zagari 54 Memória Virtual
  55. 55. Eduardo Nicola F. Zagari 55 Memória Virtual
  56. 56.   Segunda Solução:   Bloquear páginas envolvidas em E/S, não permitindo que sejam removidas durante a operação de E/S  bit de bloqueio   Outro uso do bit de bloqueio:   Processo provoca interrupção por falta de página   Página é carregada   Processo volta para a fila de pronto   Outro processo (de maior prioridade) ganha a CPU e provoca falta de página   Escolhe página não referenciada e nem modificada: A candidata perfeita  a própria página do processo de baixa prioridade Eduardo Nicola F. Zagari 56 Memória Virtual
  57. 57.   Paginação por demanda foi projetada para ser transparente aos programas de usuário, mas...   Considere páginas de 1024 bytes. Para iniciar com ʻaʼ cada elemento de uma matriz de 1024 x 1024: char A[1024][1024]; for (j=0; j<1024; j++) { char A[1024][1024]; for (i=0; i<1024; i++) { A[i][j] = ‘a’; for (i=0; i<1024; i++) { } for (j=0; j<1024; j++) { } A[i][j] = ‘a’; } } Eduardo Nicola F. Zagari 57 Memória Virtual
  58. 58.   A matriz é armazenada por linhas: A[0][0], A[0][1], A[0][2], ... , A[0][1024], A[1][0], A[1][1], ... , A[1024][1024]   Se a página tem tamanho 1024 bytes  cada linha ocupa uma página Taxa de faltas = 128 linhas X 128 colunas Taxa de faltas = 16.384 faltas 128 colunas 128 faltas Eduardo Nicola F. Zagari 58 Memória Virtual
  59. 59.   Windows NT   Solaris 2 Eduardo Nicola F. Zagari 59 Memória Virtual
  60. 60.   Usa paginação sob demanda com clustering. Clustering traz para memória páginas “ao redor” da página faltante.   São atribuídos aos processos um Conjunto de Trabalho Mínimo e um Conjunto de Trabalho Máximo.   Conjunto de Trabalho Mínimo é o menor número de páginas que o processo tem garantido possuir em memória.   Conjunto de Trabalho Máximo é o maior número de páginas que ele poderia possuir em memória ao mesmo tempo.   Quando a quantidade de memória livre no sistema cai abaixo de um limiar (threshold), o módulo chamado automatic working set trimming é executado para restabelecer a quantidade de memória livre.   Working set trimming remove páginas dos processos que têm páginas acima do seu Conjunto de Trabalho Mínimo (em excesso). Eduardo Nicola F. Zagari 60 Memória Virtual
  61. 61.   Mantém uma lista de páginas livres para atribuir aos processos em falta.
   Lotsfree – parâmetro limiar para começar a paginação.
   Paginação é executada pelo processo pageout.
   Pageout busca páginas usando o algoritmo do relógio modificado.
   Scanrate é a taxa na qual as páginas são buscadas. Ela varia de slowscan para fastscan.   Pageout é chamado mais ou menos freqüentemente dependendo da quantidade de memória livre disponível. Eduardo Nicola F. Zagari 61 Memória Virtual
  62. 62. Eduardo Nicola F. Zagari 62 Memória Virtual

×