administração de sistemas operacionais · 2011-04-01 · gerenciamento de memória aula 9 ....

23
Administração de Sistemas Operacionais Prof.: Marlon Marcon

Upload: dangkhanh

Post on 27-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Administração

de Sistemas

Operacionais Prof.: Marlon Marcon

Page 2: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Gerenciamento de

Memória Aula 9

Page 3: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Gerenciamento de memória

Memória virtual

Cache do disco

Page 4: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Memória virtual

O linux tem suporte a memória virtual, isto

é, utiliza o disco como extensão da

memória RAM, fazendo com que o

tamanho da memória disponível aumente;

O kernel irá gravar o conteúdo de blocos

de memória sem uso no disco rígido;

Processo transparênte ao usuário.

Page 5: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Memória virtual

Os programas executados no linux vêem

somente a quantidade de memória

disponível, sem saber se é disco ou RAM;

Porém o acesso à disco chega a ser 1000

vezes mais lento do que a memória, o que

torna os programas mais lentos.

Page 6: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Memória virtual

O linux pode tanto utilizar um arquivo

normal de um sistema de arquivos quanto

uma partição separada.

Se utilizar arquivos é mais fácil

redimensionar o tamanho da memória

virtual do que usando partições

dedicadas.

Page 7: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Criando uma área de troca

Um arquivo de troca é uma arquivo comum, sem nenhum tratamento especial para o kernel.

A única coisa que importa para o kernel é que este não possua espaços, e que seja preparado utilizando o utilitário mkswap;

Preferenciamente deve residir no disco local

Page 8: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Criando uma área de troca

Porque não pode ter espaços em

branco?

Quando o kernel está verificando o arquivo

de swap, um espaço em branco significa

que a minha área útil terminou;

Se o kernel tentar acessar esse espaço em

branco poderá sobreescrever uma outra

parte que era importante.

Page 9: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Criando uma área de troca

em arquivo

Podemos utilizar o seguinte comando:

dd if=/dev/zero of=/extra-swap bs=1024 count=1024

Onde:

dd: comando básico para copiar um arquivo

integralmente, bit a bit.

if: arquivo de origem

of: arquivo de destino

bs: Bit Size, ou tamanho do meu bloco de dados

count: quantos blocos desejo ter.

Page 10: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Criando uma área de troca

em uma partição

Uma partição de swap é criada como

qualquer outra partição;

A única diferença é que ela não possui

nenhum sistema de arquivos;

Page 11: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Criando uma área de troca

em uma partição

Após criar um arquivo de troca ou uma

partição, é necessário gravar uma assinatura

no início, que contém algumas informações

importantes para o kernel;

Para tal utiliza-se o comando mkswap:

mkswap dispositivo bloco

mkswap /extra-swap 1024

Page 12: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Criando uma área de troca

em uma partição

Devemos ter cuidado ao utilizar um arquivo

não vazio como swap, pois o kernel irá

sobreescrevê-lo;

Porém, nossa área de troca ainda não está

sendo utilizada.

Page 13: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Utilizando a área de troca

Uma área de troca é ativada por meio

do comando swapon:

swapon caminho_swap

swapon /extra-swap

Para verificar se a nossa área de troca

está sendo utilizada digite o comando

free.

Page 14: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Utilizando a área de troca

Para deixar de utilizar o swap utiliza-se o

comando swapoff:

swapoff caminho_swap

swapoff /extra-swap

Page 15: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Alocando áreas de troca

Algumas fontes dizem que dvemos alocar

o dobro da memória física para a área

de troca, mas esta regra é muito simples,

seguem algumas sugestões:

Page 16: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Alocando áreas de troca 1. Estime o total d memória necessário. Faça

isso rodando todos os programas passíveis de execução ao mesmo tempo.

2. Adicione uma margem de segurança ao item 1.

3. O tamanho da memória total é igual à soma da física com a swap, calcule a swap baseado nisso;

4. Se a swap for muito maior que a física aconselha-se colocar mais RAM.

Page 17: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache

A leitura é muitoo lenta quando comparada

com o acesso a memória real;

Quando por exemplo estamos respondendo

um email, primeiramente o lemos, depois

respondemos e daí sim os dados são

gravados em disco;

Enquanto não gravamos o arquivo de email,

esse fica armazenado em memória, em um

buffer cache.

Page 18: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache

O buffer não pode ser muito grande, pois

memória RAM é cara;

Quando o cache está cheio, os dados

sem uso há mais tempo não descartados

e a memória então é liberada para uso

por dados novos.

Page 19: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache

Muitos SOs têm cache de buffer, mas

nem todos funcionam dentro dos

mesmos princípios:

write-through: os dados são gravados no

disco imediatamente (e mantidos no

cache)

write-back: a gravação é feita somente

em intervalos de tempo.

Page 20: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache

O Write-back é mais eficiente, porém

mais suscetível à erros;

Caso a máquina tenha algum problema,

as mudanças no cache serão perdidas.

Em sistemas UNIX tradicionais, existe um

programa chamado update que roda

em segundo plano, executando um sync

a cada 30 segundos.

Page 21: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache no Linux

O linux tem um programa chamado

bdflush que executa uma sincronização

assíncrona, para evitar travamentos

devido ao grande tráfego de entrada e

saída que tal sincronização pode gerar.

Page 22: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache

A eficiência do cache é determinada

pelo seu tamanho.

Um cache pequeno é quase inútil pois

manterá poucos dados o que gerará

muitos acessos ao disco para gravação.

Se for muito grande também é um

problema pois a memória para os

programas fica pequena.

Page 23: Administração de Sistemas Operacionais · 2011-04-01 · Gerenciamento de Memória Aula 9 . Gerenciamento de memória ... Se utilizar arquivos é mais fácil redimensionar o tamanho

Cache

O linux, para tornar mais eficiente o uso

da memória real, automaticamente usa

toda a memória livre como cache de

buffer, mas também diminui quando osp

programas necessitam de mais memória.