Buscar

mod3-memoria-virtual

Prévia do material em texto

SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
1 
 
- Módulo 3 - 
 
MEMÓRIA VIRTUAL 
 
A maioria dos computadores possui uma grande quantidade de memória disponível para 
uso da CPU. Infelizmente, nem sempre essa quantidade de memória é suficiente para rodar de 
uma só vez todos os programas requisitados. 
A solução no início era dividir o programa em pedaços chamados overlays. Um overlay 
operava por vez. Tais sistemas eram extremamente complexos, mas permitiam vários overlays na 
memória que eram comutados entre o disco e a memória. Embora esse trabalho de comutação 
fosse realizado pelo sistema, o trabalho de dividir o programa em pedaços tinha de ser realizado 
pelo programador. 
Um meio de permitir que o próprio sistema operacional faça esse trabalho do programador 
é denominado Memória Virtual, método inventado por Fotheringham em 1961. Com a memória 
virtual, o computador pode procurar por áreas da RAM que não foram usadas recentemente e 
copiá-las para o disco rígido. Isso liberará espaço na RAM para carregar um novo aplicativo. 
 
Figura 1 - Hierarquia de memória (Fonte: How Stuff Works) 
 
Devido a essa cópia acontecer automaticamente, não se percebe o que está acontecendo. 
É como se sua máquina tivesse espaço de RAM ilimitado, mesmo que só disponha de 128 
megabytes instalados. Isso também traz grande benefício econômico, uma vez que esse espaço no 
disco rígido é muito mais barato do que os chips da memória RAM. 
A velocidade de leitura/escrita de um disco rígido é muito mais lenta do que a da RAM, e 
sua tecnologia não é ajustada para acessar pequenas quantidades de dados de cada vez. Se o 
sistema depende muito da memória virtual, é notada uma queda significativa no desempenho. A 
chave é ter RAM suficiente para lidar com tudo isso simultaneamente assim, o único momento em 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
2 
 
que a lentidão da memória virtual é observada é quando existe uma pequena pausa na mudança 
de tarefas. Quando é este o caso, a memória virtual é perfeita. 
Mas quando não é este o caso, o sistema operacional terá que trocar constantemente 
informação entre a RAM e o disco rígido. Isso é chamado de thrashing (degradação), e pode 
deixar o computador incrivelmente lento. 
 
Conceitos Importantes: 
Princípio da Localidade: Quando um programa que acessa uma porção relativamente 
pequena do espaço endereçável em um instante qualquer. Por este princípio, uma página 
acessada provavelmente será acessada novamente. 
 
Localidade Temporal: Se um item é referenciado, ele tenderá a ser referenciado novamente. 
Exemplo: loops (instruções e dados). 
 
Localidade Espacial: Se um item é referenciado, itens cujos endereços são próximos a este, 
tenderão a ser referenciados também. Exemplo: acesso a dados de um array. 
 
 
Figura 2 - Principio da localidade 
 
1. PAGINAÇÃO 
 
 Muitos sistemas de memória virtual utilizam uma técnica chamada paginação. Em 
qualquer computador, existe um conjunto de endereços de memória que os programas podem 
produzir. Um programa ao utilizar uma instrução como MOVE REG, 1000 ele está copiando o 
conteúdo do endereço de memória 1000 para REG. 
 Tais endereços gerados por programa são chamados endereços virtuais e formam o 
espaço de endereçamento virtual. Estes endereços virtuais são guardados na Unidade de 
Gerenciamento de Memória (Memory Management Unit - MMU), um chip ou uma coleção de 
chips que mapeia os endereços virtuais para os endereços físicos. 
 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
3 
 
 
Figura 3 - Paginação 
 
 O espaço de endereço virtual é dividido em unidades chamadas páginas. As unidades 
correspondentes na memória física são chamadas molduras de páginas. Ambas têm sempre o 
mesmo tamanho. 
Se um processo tem tamanho K, os seus endereços lógicos (endereços especificados nas 
suas instruções) vão desde 0 até K-1. Este é o espaço de endereçamento do processo. Cada 
endereço lógico é quebrado em duas partes: 
- número de página p 
- deslocamento d 
 
Figura 4 - Endereço Lógico 
 
Quando são criadas as páginas e as molduras acontece a relocação dinâmica, pois cada 
endereço lógico é traduzido em endereço físico em tempo de execução. 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
4 
 
 
Figura 5 – Esquema paginação 
 
 
No exemplo abaixo elas têm 4Kb, porém é comum que elas tenham tamanhos entre 512 
bytes a 64 Kb. 
 
Figura 6 - Tabela de página 
 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
5 
 
 Com 65 Kb de endereço virtual e 32 Kb de memória física, temos 16 páginas virtuais e 8 
molduras de páginas. As transferências entre memória e disco são sempre em unidades 
de uma página. 
 Contudo, essa capacidade de mapear as 16 páginas virtuais para qualquer uma das 8 
molduras de página não resolve o problema de que o espaço de endereço virtual é maior que a 
memória física, pois os espaços marcados com X na figura não são mapeados. Caso um programa 
tente acessar este espaço marcado com um X, gerará uma interrupção chamada falha de página 
(Page Fault) 
 
1.1. Tabela de Páginas 
 
 O mapeamento de endereços virtuais para endereços físicos se dá quando o endereço 
virtual é dividido em um número de páginas virtuais e um deslocamento. O número de página 
virtual é usado como um índice na tabela de páginas para localizar a entrada para essa página 
virtual. A partir da entrada da tabela de páginas, o número da moldura de páginas é localizado, 
para assim formar o endereço físico que pode ser enviado para a memória. 
 O propósito da tabela de páginas é mapear páginas virtuais em molduras de páginas. 
 
 
Figura 7 - Mapeamento da tabela de páginas 
 
 Duas questões devem ser observadas referentes às tabelas de páginas: 
 - A tabela de páginas pode ser extremamente grande; 
 - O mapeamento deve ser rápido. 
 
 O primeiro ponto é devido aos computadores modernos utilizarem endereços virtuais de 32 
bits. 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
6 
 
 O segundo ponto é uma conseqüência do fato de que o mapeamento virtual para disco 
deve ser feito em cada referência de memória. A necessidade de um mapeamento de páginas 
rápido e grande é uma limitação significativa na maneira como os computadores são construídos. 
 Existem vários projetos de tabela de páginas. Dentre eles destacam-se dois: 
 O projeto mais simples consiste em ter uma única tabela de páginas em uma matriz de 
rápidos registradores de hardware, com uma entrada de página para cada página virtual, indexada 
pelo número de página virtual. Quando um processo é iniciado, o Sistema Operacional carrega os 
registradores com a tabela de páginas do processo. Durante sua execução as referências não 
precisam ser mais requeridas. Sua vantagem é que é simples e direto. Sua desvantagem é que é 
potencialmente caro se a tabela de páginas é grande. 
 Outro projeto, a tabela de páginas pode estar inteiramente na memória principal. Tudo que 
o hardware precisa, então, é de um único registrador que aponta para o início da tabela de 
páginas, permitindo que o mapa de memória seja alterado em uma comutação de contexto 
recarregando um registrador. Tem a desvantagem de exigir que uma ou mais referências de 
memória leiam entradas da tabela de páginas durante a execução de cada instrução. 
 
1.2. Algoritmos de Substituição de Páginas 
 
O algoritmo de substituição de páginas é uma políticas definidas para escolher qual(is) 
página(s) da memória dará lugar a página que foi solicitada e que precisa ser carregada. Isto é 
necessário quando não há espaço disponível para armazenar a nova página. 
Um fato que deve ser observado é se a página, enquantofoi carregada, sofreu atualizações 
e precisa ser atualizada no disco. Se ela não foi atualizada não há esta necessidade. 
As políticas de substituição devem ser empregadas em sistemas que fazem uso de memória 
virtual paginada no objetivo de melhorar o desempenho do sistema computacional. Os algoritmos 
podem ser divididos em: 
- Algoritmos com espaço fixo; 
- Algoritmos de espaço variável. 
A diferença está em trabalhar com um endereço fixo de memória e a capacidade de 
redimensionar o tamanho da memória alocada dinamicamente. 
 
1.2.1. FIFO (FIRST-IN, FIRST-OUT) 
 
 É um algoritmo de baixo custo e de fácil implementação consistindo em substituir a página 
que foi carregada há mais tempo na memória. Dessa forma a primeira página a entrar é a 
primeira página a sair. Esta utilização não considera a utilização da página, o que não é muito 
adequado considerando desempenho do sistema. Por esta razão apresenta uma anomalia 
denominada anomalia de Belady. Sua principal vantagem é a facilidade de implementação: uma 
lista de páginas ordenadas pela idade. 
 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
7 
 
1.2.2. LRU (LEAST RECENTLY USED) 
 
 Apresenta um bom desempenho substituindo as páginas menos recentemente usadas. 
Se a página está sendo intensamente referenciada pelas instruções é provável que ela seja 
novamente referenciada pelas instruções seguintes. De modo oposto, aquelas que não são 
acessadas é provável que continuem não sendo acessadas. Apesar de apresentar um bom 
desempenho, apresenta algumas deficiências quando o padrão de acesso não é seqüencial (lista, 
árvores, loops). Dessa forma existem algumas variações como, por exemplo, o LRU-K. 
 Sua implementação pode ser realiza através de lista, mantendo as páginas mais 
referenciadas no início. No entanto o curso de manutenção é alto devido as constantes 
atualizações na lista para manter as mais acessadas no topo da lista. 
 
1.2.3. MRU (MOST RECENTLY USED) 
 
 Faz a substituição da última página acessada. Com isso é possível explorar com mais 
eficiência o princípio da localidade temporal apresentada pelos acessos. 
 
1.2.4. NRU (NOT RECENTLY USED) 
 
 Procura por páginas que não foram referenciadas nos últimos acessos. Esta informação é 
obtida através de um bit de modificação. A substituição segue uma precedência: 
 - Páginas não referenciadas e não alteradas; 
 - páginas não referenciadas; 
 - Páginas não modificadas; e 
 - Páginas referenciadas e modificadas. 
 
1.2.5. MFU (LEAST FREQUENTLY USED) 
 
 Escolhe a página que foi menos acessada. Para isto é mantido um contador de acessos 
associados a cada página para que a verificação possa ser realizada. Esta informação é zerada a 
cada vez que a página deixa a memória. 
 
1.2.6. MFU (MOST FREQUENTLY USED) 
 
 Substitui a página que tem sido mais referenciada, o oposto do LFU. O controle também é 
realizado através de contador de acesso. Seu maior problema é ignorar o princípio da localidade 
temporal. 
 
1.2.7. WS (WORKING SET – ESPAÇO DE TRABALHO) 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
8 
 
 
 Possui a mesma política do LRU. No entanto não realiza apenas a substituição de página, 
mas também estabelece um tempo máximo que cada página pode permanecer ativa na memória. 
Dessa forma o número de páginas ativas é variável. O WS assegura que as páginas pertencentes 
ao working set processo permaneceram ativas na memória. 
 
 Dentro de uma política de busca de páginas o WS é um conjunto de páginas que um 
processo está atualmente usando. Verifica-se que, para intervalos de tempos razoáveis, o espaço 
de trabalho de um processo mantém-se constante e menor que o seu espaço de endereçamento. 
 Se todo WS está presente na memória, o processo será executado em poucas Page Fault1 
até passar para a próxima fase do programa, quando o WS será atualizado. 
 
1.3. Tamanho da Página 
 
Páginas pequenas: na média, metade da página final de qualquer segmento é 
desperdiçada (fragmentação interna); um programa que consiste em processos pequenos pode 
executar utilizando menos memória quando o tamanho da página é pequeno. 
Páginas grandes: quanto menor o tamanho da página, maior o tamanho da tabela de 
páginas; quando uma página precisa ser carregada na memória, temos um acesso ao disco, com 
os correspondentes tempos de busca e espera de setor, além do de transferência. Se for 
transferida uma quantidade maior de bytes a cada acesso, diminuir-se-á a influência dos dois 
primeiros fatores do tempo, aumentando a eficiência. 
Se o processador central precisa alterar registradores internos referente à tabela de 
páginas a cada chaveamento de processo, então páginas maiores necessitarão menos 
registradores, o que significa menor tempo de chaveamento de processos. 
 
 Resumindo: 
A página pequena: 
- Evita fragmentação interna; 
- Evita que partes não usada do programa ocupe a memória desnecessariamente; 
- Implicam tabelas de páginas grandes; 
- Tempo de transferência do disco para a memória é maior quando páginas pequenas são 
utilizadas. 
A página grande: Vice-versa 
 
 
 
 
 
1 Página Inválida 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
9 
 
1.4. Paginação sob demanda 
 
As páginas dos processos são transferidas da memória secundária para a principal apenas 
quando são referenciadas. 
A paginação sob demanda é baseada na paginação simples: 
- a memória lógica é dividida em páginas que podem ser colocadas em qualquer quadro da 
memória física. 
- a tabela de paginação é usada para conversão de endereços lógicos em físicos. 
 
Na paginação por demanda apenas as páginas que o processo acessa são carregadas para 
a memória física. O bit de válido/inválido indica se a página já está presente na memória ou se 
ainda está no disco. 
 
Figura 8 – Bit válido/Inválido 
 
Na conversão de endereço lógico a MMU testa o bit de válido/inválido e se o bit for válido o 
endereço é convertido e o acesso é executado normalmente. Caso contrário a MMU gera uma 
interrupção de proteção e aciona o Sistema Operacional. O Sistema Operacional então verifica se o 
acesso é a uma página inválida (o processo deve ser abortado) ou a uma página que está no 
disco. Se o acesso é a uma página que está no disco (falta de página ou page fault), o Sistema 
Operacional: 
- coloca o processo numa fila de processos esperando por página 
- localiza um quadro livre 
- localiza a página no disco 
- agenda uma operação de leitura da página no disco 
 
Enquanto um processo espera por uma página, a UCP é passada para outro processo. 
Quando a leitura da página for concluída, o Sistema Operacional: 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
10 
 
- atualiza a tabela de páginas do processo 
- recoloca o processo na fila de prontos 
 
Quando o processo reassumir a UCP, ele deverá reiniciar a execução que gerou a falta de 
página. 
Na paginação por demanda pura, uma página só é carregada para a memória quando é 
referenciada. 
A parte do Sistema Operacional que carrega as páginas do disco para a memória é 
chamada de Pager. 
 
Figura 9 - Esquema da paginação por demanda 
 
 
2. SEGMENTAÇÃO 
 
Na segmentação o espaço de endereçamento da memória virtual deixa de ser um só e 
passa a ser vários, chamados segmentos. Na memória virtual da paginação tínhamos uma 
grande memória virtual linear e do mesmo tamanho. Na segmentação, temos vários segmentos de 
tamanhos diferentes e não lineares; 
Pelo fato de segmentos diferentes serem completamente independentes eles podem 
crescer ou diminuir o que for necessário. O acesso a um segmento é dado através de um endereço 
de duas partes, a saber: 
- número do segmento; e 
- posição de memória (offset); 
 
Normalmenteum segmento comporta tipos parecidos de informação (uma pilha, uma 
biblioteca – dll, um procedimento); 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
11 
 
 
Figura 10 - Segmentos 
 
Cada segmento representa um espaço de endereçamento completamente independente, 
onde: 
- Cada segmento é uma seqüência linear de endereços, de 0 ao máximo permitido 
- O tamanho de cada segmento pode ser qualquer um, de 0 ao máximo permitido 
 
Segmentos têm uma relação com a lógica do programa, facilitando a proteção, uma vez 
que segmentos constituem uma porção semanticamente definida do programa, todas as entradas 
serão usadas do mesmo modo: 
- Segmento de instruções 
- Segmento de dados 
- Segmento de pilha 
As páginas não têm essa conotação. De igual forma a segmentação facilita o 
compartilhamento, pois este ocorre no nível do segmento e qualquer informação pode ser 
compartilhada, se definida como um segmento. 
 Se houverem mais segmentos do que a memória física é capaz de suportar será necessário 
implementar a Troca de segmentos. E se um segmento não couber inteiramente na memória, 
será necessária a paginação de segmentos. 
 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
12 
 
 
Figura 11 - Fragmentação 
 
Um segmento corresponde exatamente a uma parte de um programa definido 
significantemente. Já que os segmentos são de tamanhos diferentes, enquanto eles são 
carregados e descarregados da memória principal, as sobras de espaços da memória variam em 
tamanho. Algumas vezes, muitos espaços pequenos aparecem na memória principal, e eles podem 
ser tão pequenos que não são usados. Isso é chamado de fragmentação e é um sério problema 
em sistemas de segmentação. 
 
3. PAGINAÇÃO X SEGMENTAÇÃO 
 
A Paginação foi inventada para fornecer um espaço de endereçamento linear maior que o 
espaço de endereçamento real. A Segmentação veio para facilitar compartilhamento e proteção. A 
lógica do programa é mapeada para blocos de informação independentes na memória. 
Alguns sistemas combinam paginação e segmentação. As partes lógicas do programa e 
coleções de dados correspondem aos segmentos, e cada segmento é dividido em páginas de 
tamanho fixo por conveniência na localização das partes na memória principal. 
 
 
 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
13 
 
4. SEGMENTAÇÃO COM PAGINAÇÃO 
 
Se os segmentos são grandes, não é possível mantê-los na memória em sua totalidade. 
Assim, a idéia de paginar os segmentos, só é possível mantendo na memória as páginas realmente 
necessárias para cada segmento. Esta estratégia é usada na arquitetura Intel 386. 
 
Figura 12 - Esquema de segmentação com paginação 
 
Este modelo resolveu problemas de fragmentação externa e longos tempos de pesquisa 
através da paginação de segmentos. Solução difere de segmentação pura no que diz respeito às 
entradas da tabela que contém o endereço base de uma tabela de páginas para o segmento e não 
o endereço base do segmento. 
A segmentação com paginação recupera as vantagens dos dois métodos em relação a 
fragmentação. 
- Fragmentação Interna: presente na paginação e não na segmentação. 
- Fragmentação Externa: presente na segmentação e na paginação não. 
 
5. CONSIDERAÇÕES DE PROJETO PARA SISTEMAS DE PAGINAÇÃO 
(Texto de Alex De Francischi Coletta) 
 
5.1. Modelo de Conjunto Ativo (Working Set) 
 
Num sistema puro de paginação (paginação por demanda), o sistema começa sem 
nenhuma página na memória e elas vão sendo carregadas na medida em que forem necessárias. 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
14 
 
Podemos melhorar essa estratégia, para isso devemos considerar a existência na grande maioria 
dos processos de uma localidade de referências, isto é, os processos mantêm em cada uma das 
fases de sua execução, referências a frações pequenas do total do número de páginas necessárias 
a ele. Então surge o conceito de conjunto ativo, que é o conjunto de páginas correntemente em 
uso de um dado processo. Se todo o conjunto ativo de um processo estiver na memória principal, 
ele executará sem gerar page faults. Mas se não houver espaço para todo o conjunto ativo de um 
processo, este gerará muitos page faults, ocasionando a diminuição do seu tempo de execução 
devido a necessidade de constantes trocas de páginas entre memória e disco. Temos o conceito 
de thrashing que ocorre quando um processo gera muitos page faults em poucas instruções. 
Devemos determinar qual é o working set do processo e carregá-lo na memória antes de permitir 
a execução do processo. Este é o chamado modelo do conjunto ativo. Pré-paginação é o ato do 
carregamento adiantado das páginas (antes da ocorrência do page fault para as mesmas). 
Considerações com relação aos tamanhos dos working set: se a soma total dos working set de 
todos os processos residentes em memória é maior que a quantidade de memória disponível, 
então ocorre thrashing. 
Os processos residentes na memória são aqueles que o escalonador de baixo nível utiliza 
para a seleção do atualmente em execução. O escalonador em alto nível é o responsável pela 
troca dos processos residentes em memória a certo intervalo de tempo. 
Então devemos escolher os processos residentes em memória de forma que a soma de 
seus working set não sejam maiores que a quantidade de memória disponível. Para determinar 
quais as páginas de um processo que fazem parte de seu working set, pode-se utilizar o algoritmo 
de Aging, considerando como parte do working set apenas as páginas que apresentarem ao 
menos um bit em 1 em seus primeiros n bits, isto é, qualquer página que não seja referenciada 
por n bits consecutivos é retirada do working set do processo. 
 
6. MEMÓRIA VIRTUAL NO LINUX (SWAP) 
 
 A memória virtual no Linux consiste em reservar uma parte do disco rígido para ser uma 
extensão da memória RAM. Dessa forma o sistema de memória é constituído pela memória RAM 
mais a área de troca (SWAP). 
Quando é necessário esvaziar parte da RAM, os processos mais envelhecidos (swapping) 
são transferidos para o disco (partição swap). 
 
6.1. Paginação sob Demanda 
 
 Na paginação sob demanda o kernel do Linux Traz uma página para a memória somente 
quando ela é necessária: 
- Necessita de menos E/S 
- Ocupa menos memória 
- Resposta mais rápida 
- Permite mais usuários 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
15 
 
Similar ao swapping, mas o sistema não traz todo o processo para a memória, apenas as 
paginas requeridas. Isso pode aumentar o numero de acessos a disco. Um processo pode precisar 
de várias páginas durante sua execução. Quando uma página não é encontrada na memória 
principal, uma exceção chamada de falta de página é capturada. 
O tratador de falta de página, no kernel realiza as seguintes tarefas: 
 - Localizar a página no disco; 
 - Escolher o frame para armazenar a memória física; 
 - Atualiza a tabela de páginas; 
 - Reinicia a execução do programa. 
 
Esse mecanismo funciona da seguinte forma: 
- Um processo é dividido em uma série de páginas. 
- Isto informa onde estão as páginas do processo. 
- O bit de válido/inválido indica se a página já está presente na memória ou se ainda está 
no disco. 
 
Figura 13 - Tabela de paginação 
 
6.2. Comandos no Linux para Administração de Memória Virtual 
 
 Um comando útil para verificação da memória virtual no Linux é o vmstat. Como seu 
nome sugere, são relatórios de estatísticas de memória virtual. Isso mostra o quanto de memória 
virtual existe, quanto é livre e atividade de paginação. É possível ainda observar Page-ins e Page-
outs. 
Para monitorar a atividade de memória virtual em seu sistema, é melhor usar o vmstat com 
um atraso. Um atraso é o número de segundos entreas atualizações. Se não for fornecido um 
atraso, o relatório constará as médias desde a última inicialização. Dessa forma, cinco segundos é 
o intervalo de atraso recomendado. 
A sintaxe do comando é: 
vmstat [intervalo] [contagem] 
 
Para executar vmstat com um atraso de cinco segundos, digite: 
vmstat 5 
SISTEMAS OPERACIONAIS ABERTOS 
Prof. Ricardo Rodrigues Barcelar 
http://www.ricardobarcelar.com.br 
 
 
16 
 
 Ainda é possível especificar uma contagem, que indica quantas atualizações deseja-se 
visualizar antes do comando ser encerrado. 
Para executar vmstat com dez atualizações, cinco segundos de diferença, o comando é o 
seguinte: 
 vmstat 5 10 
 
Se não for especificado nenhum parâmetro, o vmstat mostra o status da memória virtual e 
volta imediatamente para a linha de comando. A descrição dos campos do vmstat são as 
seguintes: 
Processos 
r - Número de processos aguardando execução. 
b - Número de processos em espera não interrompíveis. 
w - Número de processos extraí-dos do arquivo de troca ou caso contrário em execução. 
Memória 
swpd - A quantidade de memória virtual usada em Kb. 
free - Quantidade de memória livre em Kb. 
buff - Quantidade de memória usada como buffer em Kb. 
Memória Virtual 
si - Quantidade de memória gravada para o disco Kb/s. 
so - Quantidade de memória retirada do disco em Kb/s. 
Entrada/Saída 
bi - Blocos enviados para um dispositivo de bloco (medido em blocos por segundo). 
bo - Blocos recebidos de um dispositivo de bloco (em blocos por segundo). 
Sistema 
in - Número de interrupções por segundo, incluindo o clock. 
cs - Número de mudanças de contexto por segundo. 
Porcentagem do total de tempo da CPU 
us - Tempo do usuário 
sy - Tempo do sistema 
id - Tempo ocioso 
 
Pode-se também usar o comando top para mostrar memória e estatísticas swap como 
vimos no módulo anterior.

Continue navegando