Memória Virtual - Aspectos Básicos

4,869 views
4,780 views

Published on

Aspectos básicos da memória virtual.

Published in: Education, Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
4,869
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
144
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Memória Virtual - Aspectos Básicos

  1. 1. Universidade Federal de Goiás Goiânia 27/05/2010 Participantes: Achiles Camilo Soares Neto Bruno Blumenschein Cézar Augusto Ferreira Maxwel Satoshi Duarte Otsuka Tiago Borges Pereira
  2. 2. Índice <ul><li>Aspectos básicos </li></ul><ul><li>Paginação por demanda </li></ul><ul><li>Cópia na escrita </li></ul><ul><li>Substituição de página </li></ul><ul><li>Perguntas / Respostas </li></ul>
  3. 3. Aspectos Básicos <ul><li>A memória virtual é uma técnica que permite a execução de processos que não estão completamente na memória. Uma vantagem desse esquema é que os programas podem ser maiores do que a memória física. </li></ul><ul><li>A memória virtual também extrai a memória principal para um conjunto de armazenamento extremamente grande e uniforme, separando a memória lógica, vista pelo usuário, da memória física. Essa técnica livra os programadores dos problemas de limitação do armazenamento de memória. </li></ul>
  4. 4. Aspectos Básicos <ul><li>A memória virtual permite que processos compartilhem arquivos com facilidade e implementem a memória compartilhada. </li></ul><ul><li>Ela ainda provê um mecanismo eficientes para a criação de processos. </li></ul><ul><li>Contudo a memória virtual não é fácil de implementar e pode diminuir bastante o desempenho, se usada de forma descuidada. </li></ul>
  5. 5. Aspectos Básicos <ul><li>Os algoritmos de gerência de memória que serão aqui esboçados são necessários por causa de um requisito básico: as instruções executadas precisam estar na memória física. </li></ul><ul><li>A primeira técnica para atender a esse requisito é colocar o espaço de endereços lógicos inteiro na memória física. </li></ul><ul><li>O carregamento dinâmico pode ajudar a aliviar essa restrição, mas exige precauções especiais e trabalho extra pelo programador. </li></ul>
  6. 6. Aspectos Básicos <ul><li>O requisito de que as instruções precisam estar na memória física para serem executadas é necessário e razoável, mas também é lamentável, porque limita o tamanho de um programa ao tamanho da memória física. </li></ul><ul><li>Como certas opções e recursos de um programa podem ser usados raramente, na verdade, o programa inteiro não precisa ser necessariamente carregado. </li></ul><ul><li>E nos casos onde o programa é inteiro necessário, ele pode não ser necessário ao mesmo tempo. </li></ul>
  7. 7. Aspectos Básicos <ul><li>A capacidade de executar um programa que esteja apenas parcialmente na memória teria muitos benefícios: </li></ul><ul><li>O programa não seria mais restrito pela quantidade de memória física disponível. Os usuários poderiam escrever programas para um espaço de endereços virtuais extremamente grande, simplificado a tarefa de programação. </li></ul><ul><li>Como cada programa do usuário poderia exigir menos memória física, mais programas poderiam ser executados ao mesmo tempo. </li></ul>
  8. 8. Aspectos Básicos <ul><li>Menos E/S seria necessária para carregar ou trocar cada programa do usuário para a memória, de modo que cada programa do usuário seria executado mais rapidamente. </li></ul><ul><li>Assim, a execução de um programa que não esteja inteiramente na memória beneficiaria tanto o sistema quanto o usuário. </li></ul>
  9. 10. Aspectos Básicos <ul><li>A memória virtual envolve a separação entre a memória lógica e a memória física. Essa separação permite que uma memória virtual extremamente grande seja oferecida para os programadores quando somente uma memória física menor estiver disponível. </li></ul><ul><li>A memória virtual torna a tarefa de programação muito mais fácil, pois o programador não precisa mais se preocupar com a quantidade de memória física disponível. </li></ul>
  10. 12. Aspectos Básicos <ul><li>Analisando a figura a seguir percebemos que : permitimos que a heap cresça pra baixo da memória por meio de chamadas de função sucessivas. O grande espaço vazio entre a heap e a fila faz parte do espaço de endereços virtuais, mas só exigirá páginas físicas reais se a heap ou a pilha crescer. Os espaços de endereço virtual que incluem os espaços vazios são conhecidos como espaços de endereços esparsos . </li></ul>
  11. 13. Aspectos Básicos <ul><li>O uso de um espaço de endereço esparso é benéfico porque os buracos pode ser preenchidos enquanto os segmentos de pilha ou heap crescem, ou se quisermos vincular bibliotecas (ou possivelmente outros objetos compartilhados) de forma dinâmica durante a execução do programa. </li></ul>
  12. 14. Aspectos Básicos <ul><li>Além de separar a memória lógica da memória física, a memória virtual também permite que arquivos e memória sejam compartilhados por dois ou mais processos diferentes, o que ocasiona os seguintes benefícios: </li></ul><ul><li>As bibliotecas do sistema podem ser compartilhadas por vários processos diferentes, por meio do mapeamento do objeto compartilhado para um espaço de endereços virtuais. </li></ul>
  13. 15. Aspectos Básicos <ul><li>De modo semelhante, a memória virtual permite aos processos compartilharem memória. A memória virtual permite a um processo criar uma região da memória que pode compartilhar com outro processo. Os processos que compartilham essa região a consideram parte do seu espaço de endereços virtuais, embora as páginas físicas da memória sejam compartilhadas. </li></ul>
  14. 16. Aspectos Básicos <ul><li>A memória virtual pode permitir que as páginas sejam compartilhadas durante a criação do processo, por meio da chamada do sistema fork(), agilizando assim a criação do processo. </li></ul>
  15. 17. Paginação por demanda <ul><li>Carrega inicialmente apenas as páginas de um processo à medida que forem necessárias. </li></ul><ul><li>Comum serem usadas em sistemas de memória virtual. </li></ul><ul><li>Páginas são carregadas quando forem exigidas durante a execução do programa. </li></ul><ul><li>Páginas que não serão acessadas, então são carregadas para memória física. </li></ul>
  16. 18. Paginação por demanda <ul><li>Semelhante a paginação com SWAP </li></ul><ul><li>Processos residem na memória secundária (disco); quando são executados, passam para memória virtual. </li></ul><ul><li>Lazzy Swapper: Nunca troca uma página para a memória a menos que seja necessária. </li></ul><ul><li>Swapper x Paginador: </li></ul><ul><li>Swapper trata processos inteiros. </li></ul><ul><li>Paginador se preocupa com as páginas individuais de um processo. </li></ul>
  17. 19. Paginação por demanda <ul><li>Distinção: Páginas na Memória x Páginas do Disco </li></ul><ul><li>Utiliza-se do esquema de bit válido/inválido </li></ul><ul><li>bit válido = página está na memória. </li></ul><ul><li>bit inválido = ou válida mas está no disco. </li></ul>
  18. 20. Paginação por demanda page fault trap: Hardware de paginação nota o bit marcado como inválido, e causa uma interceptação para o S.O. Ocorrendo a falha, deve-se tratá-la conforme exemplo ao lado. E se o processo tentar acessar uma página não trazida para memória ?
  19. 21. Paginação por demanda Hardware O mesmo de swap e paginação: Tabela de página: marcar como inválido/inválido Memória secundária: Mantém as páginas que não estão na memória principal . Ex: swap space
  20. 22. Paginação por demanda Desempenho Baseando-se no tempo de acesso efetivo, no melhor caso, este tempo é igual ao tempo de acesso à memória. Nos piores casos, deve-se levar em conta a ocorrência de interceptação e quando ela ocorre.
  21. 23. CÓPIA NA ESCRITA <ul><li>A técnica conhecida como cópia na escrita (copy on write) funciona permitindo que os processos pai e filho compartilhem as mesmas páginas. </li></ul><ul><li>A proteção de página por cópia na escrita é uma otimização que o gerenciador de memória usa para economizar a memória física e preciosos ciclos de CPU no caso de regiões que nunca são acessadas. </li></ul>
  22. 24. CÓPIA NA ESCRITA <ul><li>As páginas compartilhadas são marcadas como páginas de cópia na escrita, significando que, se um processo escrever em uma página compartilhada, uma cópia da página compartilhada será criada. </li></ul><ul><li>A cópia na escrita permite a criação de processos mais eficientes, pois somente páginas modificadas são copiadas. </li></ul>
  23. 25. CÓPIA NA ESCRITA <ul><li>O processo de cópia na escrita acontece da seguinte forma: </li></ul><ul><ul><li>Quando um processo mapeia uma visão de cópia na escrita de um objeto de seção que contém páginas de leitura/escrita , em vez de criar um processo de cópia privada, o gerenciador de memória adia a criação de uma cópia das páginas até que a página seja modificada. </li></ul></ul>
  24. 26. CÓPIA NA ESCRITA Dois processos estão compartilhando três páginas, cada uma marcada como cópia-na-escrita.
  25. 27. CÓPIA NA ESCRITA <ul><ul><li>Se um thread em qualquer processo escreve na página, uma falta de gerenciamento de memória é gerada. </li></ul></ul><ul><ul><li>O gerenciador de memória vê que a escrita é para uma página de cópia na escrita e, em vez de informar a falta como uma violação de acesso, ele reserva uma nova página de leitura/escrita na memória física. </li></ul></ul><ul><ul><li>Copia o conteúdo da página original para a nova página, atualiza a informação de mapeamento de página e dispensa a exceção </li></ul></ul>
  26. 28. CÓPIA NA ESCRITA <ul><ul><li>Faz com que a instrução que gerou a falta seja novamente executada. Dessa vez, a operação de escrita terá sucesso. </li></ul></ul><ul><ul><li>A página recém copiada agora é privada ao processo que fez a escrita, e não é visível aos outros processos que ainda compartilham a página de cópia na escrita. </li></ul></ul><ul><ul><li>Cada novo processo que escreve nessa mesma página compartilhada também receberá sua própria cópia privada. </li></ul></ul>
  27. 29. CÓPIA NA ESCRITA
  28. 30. CÓPIA NA ESCRITA <ul><li>Somente as páginas que podem ser modificadas precisam ser marcadas como cópia na escrita. </li></ul><ul><li>As páginas que não podem ser modificadas (páginas contendo código executável) podem ser compartilhadas pelo pai e pelo filho. </li></ul>
  29. 31. CÓPIA NA ESCRITA <ul><li>A cópia na escrita é uma técnica comum utilizada por vários sistemas operacionais, inclusive Windows XP, Linux e Solaris. </li></ul>
  30. 32. Substituição de páginas <ul><li>Considere a seguinte situação: </li></ul><ul><ul><li>Enquanto um processo do usuário está sendo executado, ocorre uma falha de página. </li></ul></ul><ul><ul><li>O sistema operacional determina onde a página desejada está residindo no disco, mas descobre que não existe quadros livres na lista de quadros livres: TODA A MEMÓRIA ESTÁ SENDO UTILIZADA. </li></ul></ul><ul><li>Mediante a esta situação a solução mais comum é a substituição de páginas . </li></ul>
  31. 33. Substituição de páginas <ul><li>A substituição de páginas consistem em encontrar um quadro que não esteja sendo usado e o liberá-lo . </li></ul><ul><li>Como? </li></ul><ul><ul><li>Liberando o quadro, escrevendo seu conteúdo no swap space e alterando a tabela de páginas (e todas as outras tabelas) para indicar que a página não está mais em memória. </li></ul></ul><ul><ul><li>Pode-se usar o espaço liberado para manter a página no qual o processo notou a falha. </li></ul></ul><ul><ul><li>Modificamos a rotina se serviços de falha de páginas para incluir a substituição de página: </li></ul></ul>
  32. 34. Substituição de páginas <ul><li>Encontrar o local da página desejada no disco; </li></ul><ul><li>Encontrar um quadro livre: </li></ul><ul><ul><li>Se houver um quadro livre, use-o; </li></ul></ul><ul><ul><li>Se não houver um quadro livre, use um algoritmo de substituição de página para selecionar um quadro vítima; </li></ul></ul><ul><ul><li>Envie o quadro vítima para o disco; mude as tabelas de página e quadro de acordo; </li></ul></ul><ul><li>Ler a página desejada para o quadro recém-liberado; mudar as tabelas de página e quadro; </li></ul><ul><li>Reiniciar o processo do usuário. </li></ul>
  33. 35. Substituição de páginas
  34. 36. Substituição de páginas <ul><li>Observe que, se nenhum quadro estiver livre, duas transferências de página são exigidas (Uma para fora e outra para dentro). </li></ul><ul><li>Para reduzir este custo pode-se ser usado um bit de modificação . Cada página ou quadro pode ter um bit de modificação associado a ela no hardware. </li></ul><ul><ul><li>Quando selecionarmos uma página para substituição, examinamos seu bit de modificação: </li></ul></ul><ul><ul><ul><li>Se o bit estiver marcado, sabemos que a página foi modificada desde que foi lida no disco e neste caso precisamos escrever esta página no disco; </li></ul></ul></ul><ul><ul><ul><li>Se o bit não estiver marcado, sabemos que a página não foi modificada e, consequentemente, não precisamos movimentar essa página para o disco. </li></ul></ul></ul>
  35. 37. Substituição de páginas <ul><li>A substituição de página é algo básico na paginação por demanda. Ela completa a separação de memória lógica e memória física. </li></ul><ul><li>Se tivermos um processo do usuário com 20 páginas, poderemos executá-lo em 10 quadros usando a paginação por demanda e um algoritmo de substituição para encontrar um quadro livre sempre que necessário. </li></ul>
  36. 38. Substituição de páginas <ul><li>Substituição de páginas FIFO </li></ul><ul><li>O algoritmo de substituição de páginas mais simples é o First In First Out (FIFO). </li></ul><ul><li>Um algoritmo de substituição FIFO associa a cada página a hora em que essa página foi trazida da memória. </li></ul><ul><li>Quando uma página tiver de ser substituída, a página mais antiga será a escolhida. </li></ul><ul><li>O algoritmo de substituição FIFO é fácil de entender e programar. Contudo, seu desempenho nem sempre é bom. </li></ul>
  37. 39. Substituição de páginas
  38. 40. Substituição de páginas <ul><li>Substituição de páginas FIFO </li></ul><ul><li>Para ilustrar os problemas que são possíveis com ASFIFO considere o gráfico do próximo slide. </li></ul><ul><li>Observe que a quantidade de falhas para quatro quadros (dez) é maior do que a quantidade de falhas para três quadros (nove). </li></ul><ul><li>Este resultado inesperado é conhecido como anomalia de Belady: para alguns algoritmos de substituição de página, a taxa de falha de página pode aumentar enquanto a quantidade de quadros alocados aumenta. Poderíamos esperar que, dado mais memória a um processo, seu desempenho melhorasse. </li></ul>
  39. 41. Substituição de páginas
  40. 42. Substituição de páginas <ul><li>Substituição de página ótima </li></ul><ul><li>Um resultado da descoberta da anomalia de Belady foi a busca de um algoritmo de substituição de página ótima . </li></ul><ul><li>Um algoritmo de substituição de página ótima possui a menor taxa de falhas de páginas de todos os algoritmos, e nunca sofrerá com a anomalia Belady. Esse algoritmo é chamado de OPT ou MIN. Ele é simples: </li></ul><ul><ul><li>Substitua a página que não será usada pelo maior período. </li></ul></ul>
  41. 43. Substituição de páginas
  42. 44. Substituição de páginas <ul><li>Substituição de página ótima </li></ul><ul><li>Infelizmente, o algoritmo de substituição de página ótima é difícil de implementar, pois exige o conhecimento futuro da string de referência. Como resultado, o algoritmo ótimo é usado para estudos de comparação. Por exemplo, pode ser útil saber que, embora um novo algoritmo não seja ideal, está dentro dos 12,3% do ideal, no máximo, de dentro dos 4,7% da média. </li></ul>
  43. 45. Substituição de páginas <ul><li>Substituição de página LRU </li></ul><ul><li>Se o algoritmo ótimo não é viável, talvez uma aproximação do algoritmo ótimo seja possível. </li></ul><ul><li>A distinção principal entre FIFO e OPT é: </li></ul><ul><ul><li>FIFO usa a hora em que uma página foi trazida da memória; </li></ul></ul><ul><ul><li>OPT usa a hora em que uma página deverá ser usada. </li></ul></ul><ul><li>Se usarmos o passado recente como uma aproximadamente para o futuro próximo, então poderemos substituir a página que não foi usada pelo maior período. </li></ul>
  44. 46. Substituição de páginas <ul><li>Substituição de página LRU </li></ul><ul><li>Esta técnica é o algoritmo Lest Recently Used (LRU – menos recentemente usado); </li></ul><ul><li>A substituição LRU associa a cada página a hora do último uso desta página. Quando uma página tiver de ser substituída, a LRU escolhe a página que não foi usada pelo maior período; </li></ul>
  45. 47. Substituição de páginas
  46. 48. Substituição de páginas <ul><li>Substituição de página LRU </li></ul><ul><li>O maior problema é como implementar a substituição LRU. Um algoritmo de substituição de página LRU pode exigir assistência substancial do hardware. O problema é determinar a ordem dos quadros definidos pelo horário da última utilização. Duas implementações são viáveis: </li></ul><ul><ul><li>Contadores: no caso mais simples associamos a cada entrada da tabela de página um campo de tempo de uso e acrescentamos a CPU um relógio e um contador lógico. Sempre que é feita uma referência a página, o conteúdo do registrador de relógio é copiado para o campo de horário de uso na tabela de página para esta página. </li></ul></ul>
  47. 49. Substituição de páginas <ul><li>Substituição de página LRU </li></ul><ul><ul><li>Pilha: outra técnica para implementar a substituição LRU é manter uma pilha de números de página. Sempre que uma página é referenciada, ela é removida da pilha e colocada no topo. </li></ul></ul><ul><ul><li>Deste modo, o topo da pilha sempre é a página usada mais recentemente, e a pagina inferior é a página LRU. </li></ul></ul><ul><ul><li>Como as entradas precisam ser removidas do meio da pilha, é melhor implementar essa técnica usando uma lista duplamente encadeada com um ponteiro para a cabeça e outro para o final. </li></ul></ul>
  48. 50. Substituição de páginas <ul><li>Substituição de página por aproximação LRU </li></ul><ul><li>Poucos sistemas computadorizados proveêm suporte de hardware suficiente para a verdadeira substituição de página LRU e outros algoritmos de substituição precisam ser utilizados. </li></ul><ul><li>Muitos sistemas proveêm alguma ajuda na forma de bits de referência . O bit de referência é definido pelo hardware sempre que a página é referenciada. Os bits de referência estão associados a cada entrada na tabela de páginas. </li></ul>
  49. 51. Substituição de páginas <ul><li>Substituição de página por aproximação LRU </li></ul><ul><li>Inicialmente, todos os bits são apagados (com 0) pelo sistema operacional. </li></ul><ul><li>A medida que um processo é executado, o bit associado a cada página referenciada é marcada (com 1) pelo hardware. </li></ul><ul><li>Depois de um algum tempo podemos determinar quais páginas não foram usadas verificando o bit de referência embora não saibamos a ordem do uso. </li></ul><ul><li>Essa informação é a base para muitos algoritmos de substituição de página que se aproximam da substituição LRU. </li></ul>
  50. 52. Substituição de páginas <ul><li>Algoritmo de bits de referência adicionais </li></ul><ul><li>É mantido um byte (8 bits) para cada página em uma tabela de memória; </li></ul><ul><li>Em intervalos regulares uma interrupção de temporizador transfere o controle para o SO. </li></ul><ul><li>O sistema operacional desloca o bit de referência de cada página para o bit para o bit de alta ordem de seu byte de 8 bits deslocando os outros bits para a direita em 1 bit e descartando o bit de baixa ordem; </li></ul><ul><li>Esses registradores de deslocamento de 8 bits comtêm o histórico do uso da página para os oito últimos períodos; </li></ul>
  51. 53. Substituição de páginas <ul><li>Algoritmo de bits de referência adicionais </li></ul><ul><li>Se o registrador de deslocamento tiver 00000000 a página não foi usada por oito períodos; </li></ul><ul><li>Uma página utilizada pelo menos uma vez a cada período teria um registrador de deslocamento igual a 11111111; </li></ul><ul><li>Uma página com o registrador de deslocamento igual a 11000100 foi usada mais recentemente do que uma com 01110111; </li></ul><ul><li>Se interpretarmos esses bytes de 8 bits como inteiros sem sinal, a página com o menor número é a página LRU e poderá ser substituída; </li></ul><ul><li>Esse algoritmo é chamado algoritmo de substituição de página da segunda chance; </li></ul>
  52. 54. Substituição de páginas <ul><li>Algoritmo da segunda chance </li></ul><ul><li>O algoritmo básico da segunda chance é um algoritmo de substituição FIFO; </li></ul><ul><li>O que muda é que quando uma página tiver sido selecionada inspecionamos seu bit de referência: </li></ul><ul><ul><li>Se o valor for 0, prosseguimos com a substituição; </li></ul></ul><ul><ul><li>Se o valor for 1, damos uma segunda chance a página e selecionamos a próxima página FIFO; </li></ul></ul><ul><li>Quando uma página recebe uma segunda chance, seu bit de referência é apagado e sua hora de chegada é reiniciada para a hora atual; </li></ul>
  53. 55. Substituição de páginas <ul><li>Algoritmo da segunda chance melhorado </li></ul><ul><li>Pode-se melhorar o algoritmo da segunda chance considerando o bit de referência e o bit de modificação como um par ordenado: </li></ul><ul><ul><li>(0,0) – nem usada recentemente nem modificada, melhor página a ser substituída; </li></ul></ul><ul><ul><li>(0,1) – não usada recentemente mas modificada – não tão bom pois a página precisará ser escrita antes de ser substituída; </li></ul></ul><ul><ul><li>(1,0) – usada recentemente mas limpa – é provável que seja usada novamente; </li></ul></ul><ul><ul><li>(1,1) – usada recentemente e modificada – é provável que logo seja usada novamente e a página terá que ser escrita no disco antes de poder ser substituída; </li></ul></ul>
  54. 56. Substituição de páginas <ul><li>Substituição de página baseada em contagem </li></ul><ul><li>Pode-se manter um contador do número de referências feitas a cada página e desenvolver os dois esquemas a seguir: </li></ul><ul><ul><li>O algoritmo Lest Frequently Used – LFU (menos freqüentemente usada) exige que a página com a menor contagem seja substituída: </li></ul></ul><ul><ul><ul><li>O motivo para essa seleção é que uma página usada de maneira ativa deve ter um contador de referência grande, porém, um problema surgirá uma página for bastante usada durante a fase inicial de um processo mas nunca mais for usada novamente; </li></ul></ul></ul><ul><ul><li>O algoritmo Most Frequently Used – MFU (mais freqüentemente usada) é baseada no argumento de que a página com a menor contagem provavelmente acabou de ser trazida da memória e ainda está para ser usada. </li></ul></ul>
  55. 57. Substituição de páginas <ul><li>Algoritmo com buffer de página </li></ul><ul><li>Outros procedimentos são usados em conjunto com o algoritmo de substituição de página: </li></ul><ul><ul><li>Os sistemas mantêm um banco de quadros livres; </li></ul></ul><ul><ul><li>Quando ocorre uma falha, um quadro livre é escolhido como antes; </li></ul></ul><ul><ul><li>A página desejada é lida para um quadro livre do banco antes de a vítima ser retirada; </li></ul></ul><ul><li>Este procedimento permite ao processo reiniciar assim que possível, sem esperar a página vítima ser retirada; </li></ul><ul><li>Quando a vítima mais tarde for retirada, seu quadro será acrescentado ao banco de quadros livres </li></ul>
  56. 58. Substituição de páginas <ul><li>Algoritmo com buffer de página </li></ul><ul><li>Uma expansão desta idéia é: </li></ul><ul><ul><li>Manter uma lista de páginas modificadas; </li></ul></ul><ul><ul><li>Quando o dispositivo de páginas tiver ocioso uma página modificada será selecionada e escrita no disco e seu bit de modificação é zerado; </li></ul></ul><ul><li>Esse esquema aumenta a probabilidade de uma página estiver limpa quando for selecionada para substituição e não precisará ser escrita no disco; </li></ul>
  57. 59. Perguntas 1- Porque é interessante a utilização de memória virtual do ponto de vista da programação? 2- Quais as semelhanças e diferenças entre Paginação por demanda e SWAP? 3- Qual o principal benefício do uso da técnica da Cópia na escrita ? 4- Qual algoritmo de substituição de páginas mais simples? Comente-o. 5- Quais fatores afetam o desempenho de uma paginação por demanda?
  58. 60. Respostas <ul><li>1- Porque é interessante a utilização de memória virtual do ponto de vista da programação? </li></ul><ul><li>A memória virtual é interessante para o programador porque o programa não teria que ser mais restrito pela quantidade de memória física disponível. O programador poderia assim escrever programas para um espaço de endereços virtuais extremamente grande, deixando a programação mais simples. </li></ul>
  59. 61. Respostas <ul><li>2- Quais as semelhanças e diferenças entre Paginação por demanda e SWAP? </li></ul><ul><li>Em ambos os processos residem na memória secundária e quando são executados passam pra memória virtual; uma troca só é realizada quando é necessário. Na Paginação preocupa-se com as páginas individuais de cada processo, no swap trata-se de processos inteiros </li></ul>
  60. 62. Respostas <ul><li>3- Quais os benefícios da proteção de página por cópia na escrita? </li></ul><ul><li>Otimização para economizar a memória física e preciosos ciclos de CPU no caso de regiões que nunca são acessadas. Além de permitir a criação de processos mais eficientes, pois somente páginas modificadas são copiadas. </li></ul>
  61. 63. Respostas <ul><li>4- Qual algoritmo de substituição de páginas mais simples? Comente-o. </li></ul><ul><li>O algoritmo de First In First Out (FIFO), onde um algoritmo de substituição FIFO associa a cada página a hora em que essa página foi trazida da memória. Quando uma página tiver de ser substituída, a página mais antiga será a escolhida. </li></ul>
  62. 64. Respostas <ul><li>5- Quais fatores afetam o desempenho de uma paginação por demanda? </li></ul><ul><li>O desempenho de uma paginação por demanda depende da ocorrência de interceptação e quando e como ela ocorre. </li></ul>
  63. 65. Referências <ul><li>Sistemas operacionais com JAVA. - Abraham Silberchatz </li></ul>

×