Gerencia de Memória Opensolaris

1.901 visualizações

Publicada em

Publicada em: Educação, Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.901
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Gerencia de Memória Opensolaris

  1. 1. GERENCIA DE MEMÓRIA Aluno: Arthur Henrique Guimarães Matricula: 080124
  2. 2. O que é o OpenSolaris?
  3. 3. O OpenSolaris é ● O OpenSolaris é a versão open source do Solaris. ● O Solaris foi lançado originalmente pela Sun em 1991. ● O projeto de desenvolvimento do OpenSolaris começou em 2004. ● As primeiras versões (ainda com o nome de SunOS) foram baseadas no BSD.
  4. 4. O OpenSolaris ... ● ~41k arquivos, ~11m de linhas de código. ● sistemas de janelas (Xorg): GNOME, CDE, KDE* ● sistemas de arquivos: UFS, ZFS, ...
  5. 5. Mas e a memória???
  6. 6. Antes algumas ressalvas!
  7. 7. Quais são os objetivos do gerenciamento de memória? ● Eliminar restrições de tamanho de processos que estão na memoria física. ● Possibilitar um nível alto de multiprogramação.
  8. 8. O controle da memória ● O kernel do OpenSolaris tem acesso completo à memória do sistema. ● É ele quem deve dar permissão para que os programas do espaço do usuário tenham acesso seguro à memória quando requisitada.
  9. 9. E como o Kernel gerencia a memória?
  10. 10. Utilizando métodos conhecidos! ● Paginação ● Swapping ● Cyclical page cache??????
  11. 11. Paginação ● A memória física é dividida em páginas. ● Toda pagina ativa (não livre) é um mapeamento entre um arquivo (vnode) e a memoria. ● Paginas são identificadas partir do vnode e de um offset (par vnode/offset).
  12. 12. Paginação ● O par vnode/offeset também mapeia o arquivo em swap ou para cache de arquivo. ● O mapeamento entre pagina física e seu espaço virtual e feito pelo HAT ● Uma lista hash global de paginas contem ponteiros para listas de paginas e é indexada por uma função hash(vnode/offset)
  13. 13. Paginação
  14. 14. Paginação ● A paginação feita pelo sistema é chamada de paginação por demanda. ● Um processo não precisar ser retirado totalmente da memória para dar espaço a outro, para isso basta substituir uma ou mais páginas desse processo. ● Essa politica não interfere na execução dos processos que não percebem a troca uma vez que alteramos apenas a referencia do endereço lógico.
  15. 15. Swapping ● Consiste na escolha de um programa residente na memoria para ser transferido para o disco com o fim de liberar espaço na memória. ● É possível classificar em dois tipos o swap realizado pelo OpenSolaris, chamado de soft swapping e hard swapping.
  16. 16. Swapping ● Processos não sofrem swapping caso: ● Estejam sendo executados e sejam interrompidos por um sinal. ● “Exiting”. ● “Zombie” ● Sejam uma thread do sistema. ● Estejam bloqueando uma thread com prioridade mais alta.
  17. 17. Soft swapping ● Se a memória disponível do sistema se encontra abaixo de um nível mínimo de memória livre, por um determinado período de tempo, o escalonador de memória começa a fazer a troca de processos. ● Inicialmente o escalonador irá procura por processos que estão inativos por mais tempo (com um mínimo de tempo definido por maxslp), ou seja o que está na memoria mais tempo sem ser referenciado. (LRU)
  18. 18. Hard Swapping ● Acontece se há mais de um processo na fila de processos ativos. ● E a atividade de paginação ultrapassa um valor pré definido ● então o núcleo descarrega todos os módulos e cache do sistema que não estão ativos e começa a fazer a troca de processos sequencialmente até que exista memória livre disponível.
  19. 19. Para um sistema com 128MB de memória Quando o espaço livre da O marcador é: O algoritmo faz: memória 2 MB principal lotfree Começa a procurar por páginas na atinge: memória que não tenham sido usadas recentemente. Então, as move para a 1 MB desfree “free list”¹. a conservação da memoria Promove utilizada pelo Kernel. 512 KB minfree Não mais aloca memoria para programas de usuário e operações de leitura do sistema. 1. O conteudo da “free list” e posteriormente transferido para o disco. 2. Após a versão 7 do Solaris foi introduzido o marcador cachefree.
  20. 20. Alguns marcadores ● physmem: contagem total de páginas na memória física. ● lotsfree: a troca de páginas inicia quando a memória está abaixo do lostfree. ● minfree: Entre o lostfree e o minfree a taxa de troca aumenta linearmente. ● maxpgio: limita a taxa de I/O na fila do dispositivo de swap. ● Cachefree: utilizado como parametro para o cyclical page cache a partir do Solaris 8.
  21. 21. E então? ● O soft swapping ocorre quando a memória fica em média por 30 segundos abaixo do marcador desfree. ● O hard swapping ocorre quando o seguinte é verdade: ● Pelo menos 2 processos estão na fila esperando pela CPU. ● A memória livre fica em média abaixo do marcador desfree por mais de 30 segundos. ● Paginação excessiva (acontece quando page- out+page-in é maior que o definido em maxpgio)
  22. 22. Cyclical page cache ● Solaris 8 usa um algoritmo diferente para fazer a remoção de paginas da memória chamada de cyclical page cache. ● Ela foi projetada para remover os problemas do cache do sistema de arquivos com a memoria virtual. ● Esse novo sistema substitui paginação por demanda existente nas versões anteriores. ● Utiliza uma lista para fazer apenas o cache dos dados do sistema de arquivos. Qualquer outro objeto da memória é tratado em listas diferentes(binários, bibliotécas... ● Dessa maneira o sistema de arquivos só compete com ele mesmo por memória.
  23. 23. The End

×