• Save
Gerencia de Memória Opensolaris
Upcoming SlideShare
Loading in...5
×
 

Gerencia de Memória Opensolaris

on

  • 1,981 views

 

Statistics

Views

Total Views
1,981
Views on SlideShare
1,981
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Gerencia de Memória Opensolaris Gerencia de Memória Opensolaris Presentation Transcript

  • GERENCIA DE MEMÓRIA Aluno: Arthur Henrique Guimarães Matricula: 080124
  • O que é o OpenSolaris?
  • 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.
  • O OpenSolaris ... ● ~41k arquivos, ~11m de linhas de código. ● sistemas de janelas (Xorg): GNOME, CDE, KDE* ● sistemas de arquivos: UFS, ZFS, ...
  • Mas e a memória???
  • Antes algumas ressalvas!
  • 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.
  • 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.
  • E como o Kernel gerencia a memória?
  • Utilizando métodos conhecidos! ● Paginação ● Swapping ● Cyclical page cache??????
  • 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).
  • 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)
  • Paginação
  • 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.
  • 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.
  • 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.
  • 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)
  • 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.
  • 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.
  • 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.
  • 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)
  • 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.
  • The End