Gerência de Memória: Memória Virtual

download Gerência de Memória: Memória Virtual

of 44

  • date post

    07-Jul-2015
  • Category

    Education

  • view

    2.398
  • download

    4

Embed Size (px)

description

Descrever os benefícios de um sistema de memória virtual Explicar os conceitos de paginação sob demanda, algoritmos de substituição de páginas e alocação de quadros

Transcript of Gerência de Memória: Memória Virtual

  • 1. Sistemas Operacionais I Gerncia de Memria: Memria Virtual Prof. Alexandre Duarte : http://alexandrend.com Centro de Informtica | Universidade Federal da Paraba Estes slides so baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne

2. Objetivos Descrever os benefcios de um sistema de mem ria virtual Explicar os conceitos de pagina o sob demanda, algoritmos de substitui o de pginas e aloca o de quadros 3. Contextualizao Mem ria virtual: separao da mem ria l gica do usurio da mem ria fsica. Apenas uma parte do programa precisa estar na mem ria para execu o Portanto, o espa o de endere amento l gico pode ser muito maior que o espa o de endere amento fsico Permite que os espa os de endere amento sejam compartilhados por vrios processos Permite que a cria o de processos seja mais eficiente Mem ria virtual pode ser implementada de duas formas: Pagina o sob demanda Segmenta o sob demanda 4. Memria virtual maior que a memria fsica 5. Espao de endereamento virtual 6. Biblioteca compartilhada utilizando memria virtual 7. Paginao sob demanda Traz uma pgina para a mem ria apenas quando ela necessria Menos operaes de E/S Menor utilizao de mem ria Resposta mais rpida Mais usurios/processos Pgina necessria referenciada Referncia invalida aborta execuo Fora da mem ria pgina carregada Lazy swapper nunca traz uma pgina para mem ria a menos que ela seja necessria Um Swapper que liga com pginas chamada paginador 8. Transferncia de memria paginada para disco 9. Bit vlido/invlido Associa-se um bit de validade a cada entrada da tabela de pagina o (v na mem ria, i fora da mem ria) Inicialmente setado para I para todas as entradas Durante a tradu o de um endere o, se o bit vale I falta de pgina! 10. Tabela de paginao com algumas pginas fora da memria principal 11. Falta de pgina A primeira referncia a uma pgina fora da mem ria causa uma exce o: falta de pgina 1. O Sistema Operacional uma outra tabela para decidir se houve uma: Referncia invlida aborta o processo Apenas uma referncia a uma pgina fora da mem ria 1. Obtm um quadro livre 2. Carrega a pgina no quadro 3. Reconfigura as tabelas 4. Seta o bit de validade para v 5. Re-executa a instru o que gerou a falta de pgina 12. Sequncia de passos para tratar uma falta de pgina 13. Desempenho da paginao sob demanda Taxa de falta de pginas 0 p 1.0 se p = 0 no hfalta de pginas se p = 1, toda referncia causa uma falta Tempo efetivo de acesso (EAT) EAT = (1 p) x tempo de acesso a mem ria + p (tempo para tratar falta de pgina + tempo de swap out + tempo de carga da pgina + tempo para reiniciar a execu o) 14. Exemplo de paginao sob demanda Tempo de acesso mem ria = 200 nanossegundos Tempo mdio para tratamento de uma falta de pgina = 8 milissegundos EAT = (1 p) x 200 + p (8 milissegundos) = (1 p x 200 + p x 8,000,000 = 200 + p x 7,999,800 Se um acesso a cada 1.000 causa uma falta de pgina ento EAT = 8.2 microssegundos. 40 vezes mais lento!! 15. Criao de Processos O uso de mem ria virtual possibilita outros benefcios durante a cria o de um processo: Copy-on-Write Arquivos mapeados em mem ria (mais tarde) 16. Copy-on-Write Copy-on-Write (COW) permite que processos pai e filho compartilhem inicialmente as mesmas pginas de mem ria Uma pgina s copiada quando algum dos processos realiza uma opera o de escrita COW permite uma cria o mais eficiente de processo pois apenas pginas modificadas so copiadas 17. Antes do processo 1 modificar a pgina C 18. Aps o processo 1 modificar a pgina C 19. O que acontece quando no h quadro livre? Substitui o de pgina encontra alguma pgina na mem ria mas que no esteja realmente em uso e a salva no disco (swap out) algoritmo! desempenho queremos um algoritmo que resulte no menor nmero possvel de faltas de pgina Algumas pginas podem ser trazidas para a mem ria vrias vezes 20. Substituio de pgina Impede que haja uma super-aloca o de mem ria ao modificar a rotina de tratamento de falta de pgina para incluir a substitui o Usa um bit de modifica o (dirty) para reduzir o tempo de transferncia apenas pginas modificadas precisam ser gravadas no disco Substitui o de pginas completa a separa o entre mem ria l gica e mem ria fsica uma mem ria virtual muito grande pode conviver com uma mem ria fsica bem menor 21. Exemplo da necessidade uma substituio de pgina 22. Processo bsico de substituio 1. Localize a pgina desejada no disco 2. Localize um quadro livre: - Se hum quadro livre, utilize-o - Se no htal quadro, utilizar um algoritmo de substitui o para escolher um quadro vtima 3. Carregue a pgina desejada no quadro (recentemente) livre; atualize as tabelas de pginas e de quadros 4. Re-execute a instru o que causou a falta de pgina 23. Substituio de pgina 24. Algoritmos de substituio de pginas Queremos a menor taxa possvel de faltas de pgina Avaliamos um algoritmo utilizando uma sequncia de acessos a mem ria (sequncia de referncia) e contando a quantidade de faltas de pginas Em nossos exemplos utilizaremos as seguintes sequncias: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 25. Grfico de faltas de pginas versus nmero de quadros 26. First-In-First-Out (FIFO) Sequncia de referncia: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 quadros (3 pginas na mem ria ao mesmo tempo) 4 quadros Anomalia de Belady: mais quadros mais faltas de pgina 1 2 3 1 2 3 4 1 2 5 3 4 9 faltas 1 2 3 1 2 3 5 1 2 4 5 10 faltas 44 3 27. FIFO ilustrando a Anomalia de Belady 28. Substituio FIFO 29. Algoritmo timo Substitui a pgina que no seracessada pelo maior perodo de tempo Exemplo com 4 quadros 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Como obter essa informao? til para comparao com outros algoritmos 1 2 3 4 6 faltas 4 5 30. Algoritmo timo 31. Menos Recentemente Usada (LRU) Sequncia de referncia: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Implementao com contador Cada pgina possui um contador que atualizado com o valor do rel gio sempre que a pgina referenciada Quando uma pgina precisa ser substituda, consultar o contador para remover a que possuir o menor valor 5 2 4 3 1 2 3 4 1 2 5 4 1 2 5 3 1 2 4 3 32. Menos Recentemente Usada (LRU) 33. Menos Recentemente Usada (LRU) Implementa o com pilha mantem uma pilha duplamente encadeada com os nmeros das pginas: Pgina referenciada Move a pgina para o topo No requer algoritmo de busca 34. LRU com a utilizao de uma pilha 35. Aproximaes do LRU Bit de referncia Associar um bit a cada pgina, inicialmente = 0 Quando a pgina referenciada, bit = 1 Substitui a pgina com bit = 0 (se existir alguma) No se conhece a ordem Segunda chance Requer um bit de referncia Substitui o do rel gio Se a pgina a ser substituda (em sentido horrio) tem bit = 1, ento Seta bit = 0 Deixa a pgina na mem ria Repete o processo para a pr xima pgina (em sentido horrio) 36. Algoritmo da Segunda Chance 37. Algoritmo de Contagem Mantem um contado para o nmero de referncias a cada pgina Algoritmo LFU: substitui a pgina com o menor contador Algoritmo MFU: substitui a pgina com o maior contador 38. Alocao de Quadros Cada processo precisa de um nmero mnimo de quadros Dois esquemas principais de aloca o Aloca o fixa Aloca o por prioridade 39. Alocao fixa Aloca o igualitria: se h 100 quadros e 5 processos, alocar 20 quadros para cada um Aloca o proporcional: quadros so alocados de acordo com o tamanho dos processos si = tamanho do processo pi S = si m = nmero total de quadros ai = alocao para pi = si S m 5964 137 127 564 137 10 127 10 64 2 1 2 = = = = = a a s s m i 40. Alocao por prioridade Usa uma aloca o proporcional baseada na prioridade ao invs do tamanho Se o processo Pi causa uma falta de pgina Seleciona um de seus quadros para substitui o Seleciona um quadro de um processo de menor prioridade para substitui o 41. Alocao global versus local Substitui o global: o processo seleciona um quadro para substitui o de uma lista com todos os quadros de mem ria - um processo pode tomar um quadro de outro Substitui o local: cada processo s seleciona para substitui o os seus pr prios quadros 42. Thrashing Se um processo no tem pginas suficiente a taxa de falta de pginas pode ser muito alta. Isso leva a : Baixa utiliza o da CPU O Sistema Operacional conclui que precisa aumentar o grau de multi-programa o Um novo processo adicionado mem ria Thrashing um processo fica paralisado com opera es de swap in e swap out 43. Thrashing 44. Monitorando a taxa de faltas de pgina Definimos uma taxa aceitvel de faltas de pgina Se a taxa atual muito baixa o processo perde um quadro Se a taxa atual muito alta o processo ganha um quadro