# &ktimemon;

## Introdução

&ktimemon; é um pequeno programa para monitorar a utilização do seu sistema. Ele pode mostrar gráficos de barra contendo informações sobre a CPU, memória e uso da área de troca, assim como a utilização do disco e atividade de comutação de contexto. Mantendo o espírito do KDE, ele suporta configuração via interface gráfica de usuário. Ele também suporta docking, &ie; pode mostrar informações no painel do sistema.

Atualmente, o &ktimemon; suporta apenas um número limitado de sistemas: baseados em &Linux; com o sistema de arquivo `/proc`, instalações baseadas em &Solaris; com a biblioteca `kstat` e instalações baseadas em Digital &UNIX; (antigamente DEC/OSF1) com o chamada de sistema`table`(2). A ajuda em portá-lo para outras plataformas é muito bem-vinda.

O &ktimemon; pode ser iniciado a partir da linha de comando ou do menu Iniciar (no submenu Utilitários). Se você escolher iniciar na linha de comando, o &ktimemon; honra as flags de programa normais do &X-Window; como a `-geometry`. O &ktimemon; é ciente da sessão, &ie; ele mantém registro do estado atual (cores, &etc;) e restaura o mesmo na próxima sessão do usuário.

## Fundamentos Onscreen

Após iniciar o &ktimemon; uma pequena janela aparecerá mostrando informação obtida do sistema operacional. Se você mover o ponteiro do mouse sobre a janela do &ktimemon; e deixar ali por um pequeno período de tempo, uma dica (&ie; uma pequena janela transitoria) aparecerá. A dica contem informação numérica sobre os parâmetros do sistema mostrados pelos gráficos de barra. As dicas podem ser desabilitadas (veja em Configuração).

### Modos de Exibição

O &ktimemon; pode mostrar dois diferentes ajustes de informação do sistema. Como explicado no capitulo Configuração , os botões do mouse podem ser ligados a varias ações. Por padrão, o botão esquerdo está ligado a ação de troca de modo, &ie; ao clicar o &LMB; em qualquer lugar da janela do &ktimemon; a informação mostrada alterna do Modo Normal (o padrão) para o Modo Extendido, e vice-versa.

#### Modo Normal

Após iniciar o &ktimemon; pela primeira vez, ele mostrará informação sobre a atividade atual da CPU, assim como memória e uso da área de troca. Três gráficos de barra são usados para mostrar estas informações; elas são atualizadas regularmente (o intervalo padrão é 0.5s, mas isto pode ser mudado, veja Configuração). Os três gráficos de barra representam ( da esquerda para direita):

Uso da CPU .

- O &ktimemon; mostra a barra em três diferentes cores, representando o tempo gasto pela CPU em vários modos. De baixo para cima eles são: modo kernel, modo usuário, e modo usuário com prioridade rebaixada (nice) - como o &Solaris; parece não suportar estatísticas para o modo nice, a parte superior da barra representa o tempo gasto no estado espera nestes sistemas. A distancia do topo da barra ate o topo da janela representa a percentagem do tempo ocioso da CPU.

Uso de Memória.

- Similar a barra de uso da CPU, esta barra é composta por três sub campos, representando (de baixo para cima): memória alocada por processos, memória usada por I/O buffering, e memória usada por cache de arquivos. Para sistemas baseados em Digital &UNIX; o sessão do meio representa a memória inativa (&ie; memória alocada e não usada por um certo período de tempo), e para sistemas baseados em &Solaris;, a seção do meio da barra não é usada, e a seção superior representa a quantidade de memória usada pelo kernel. Novamente, a distancia entre o topo da barra ate o topo da janela representa a memória livre.

Uso da área de troca.

- Esta barra consiste em um campo único representando o uso atual da área de troca relativo a quantidade total de espaço de troca.

Clicando o botão do mouse ligado ao modo de alternância na janela do &ktimemon; alterna para o Modo Extendido.

#### Modo Extendido

Neste modos, os três gráficos de barra são usados para mostrar um conjunto diferente de informação do sistema. Novamente da esquerda para a direita, eles mostram:

Atividade de Paginação.

- Esta barra consiste em duas partes, a metade inferior da qual mostra o numero de paginas de memória escritas para estoque secundário no ultimo intervalo de amostragem. Similarmente, a metade superior indica o numero de paginas lidas do estoque secundário.

Atividade de Troca.

- A segunda barra mostra a informação da atividade de troca (swap).

Alternadores de Contexto.

- Novamente, este gráfico de barras consiste em um único campo que indica o numero de alternadores de contexto no ultimo intervalo de amostragem.

Como não há nenhum modo natural de escalar a informação mostrada no Modo Extendido, por padrão o &ktimemon; usa o autoscaling (explicado na Seção de Perguntas Comuns). Existe, contudo, a possibilidade de especificar a informação escalar, veja a seção Configuração

Note que os dois conjuntos de gráficos de barra compartilham as mesmas cores, &ie; o ajuste de cores para o Modo Normal também é usado para mostrar informação no Modo Extendido (veja também em Configuração como mudar o esquema de cores).

## Estrutura do Menu

Por padrão, o &RMB; está ligado à ação menu pop-up, &ie; clicando no botão direito do mouse em qualquer lugar da janela do &ktimemon; traz um menu, o qual é discutido nas seções seguintes.

### Configurações...

O item de menu Configurações... é usado para trazer o dialogo de configuração. As opções de configuração são discutidas na seção Configuração.

### Painel Recolhido

Ao selecionar o item de menu Painel Recolhido, o &ktimemon; alterna entre sua visualização normal (&ie; uma janela normal) e o estado de painéis, onde a janela do &ktimemon; desaparece e uma versão reduzida é mostrada no painel do sistema. Além da redução em tamanho, o &ktimemon; em painel comporta-se exatamente como seu irmão maior.

### Ajuda

&help.menu.documentation;

### Barras Horizontais

Ao selecionar a entrada de menu Barras Horizontais ,o &ktimemon; alterna de barras verticais para barras horizontais e vice-versa. Não é muito útil, mas foi fácil de implementar ;-)

### Sair

O item de menu Sair - surpresa, surpresa -- é usado para terminar o &ktimemon;. O estado atual será salvo (&ie; o esquema de cor, tamanho da janela, se está visualizado no painel) e restaura o estado na próxima chamada.

A informação de configuração é salva no arquivo `$`HOME`/.trinity/share/config/ktimemonrc`, onde `$`HOME`` refere-se a pasta do usuário. Se o arquivo for removido, o &ktimemon; iniciará em seu estado padrão na próxima chamada.

## Configuração

O &ktimemon; pode ser configurado via um diálogo seqüencial (veja também a discussão do Menu de Configuração). Na página Geral, o intervalo de amostragem pode ser especificado assim como informação de escala (veja também a discussão do modo extendido). Se a caixa de marcação Autoscaling estiver marcada (autoescala é explicada na seção de FAQ), os fatores de escala não podem ser editados, pois o &ktimemon; os determina automaticamente.

A página de Cores pode ser usada para personalizar as cores dos gráficos de barra conforme preferências individuais. Uma pequena amostra de gráfico de barra dá um retorno imediato.

Na página de Interação, as ligações do mouse podem ser adaptadas. Clicar um botão do mouse na janela do &ktimemon; pode ser ignorado, disparar um modo de alternância (veja também Modos), invocar um menu de contexto (veja também Menu), ou invocar um processo externo. A linha de comando especificada para processos externos é interpretada pelo shell padrão, &ie; comandos shell, variáveis de ambiente, redirecionamento &etc; podem ser usados.

A página de Interação também contém uma caixa de marcação a qual pode ser usada para desabilitar o aparecimento automático de dicas com informações numéricas acerca dos gráficos de barras (compare Fundamentos Onscreen).

## Perguntas e Questões Comuns

Quais sistemas operacionais são suportados pelo &ktimemon;?

O &ktimemon; suporta sistemas baseados em &Linux; com a arquivo de sistemas `/proc` , sistemas baseados em &Solaris; com a biblioteca `kstat`, sistemas Digital &UNIX; (anterior DEC/OSF1) com a interface de chamada de sistema `table`(2). Somente a versão &Linux; foi totalmente testada, se você experimentar qualquer problema com a porta &Solaris;/Digital &UNIX;, por favor não hesite em me contatar.

Também, contribuições para adaptar o &ktimemon; para outras plataformas são muito bem-vindas. Por favor contate-me em m.maierhofer@tees.ac.uk, se você pretende portar o &ktimemon; para outros sabores de &UNIX;.

Como a autoescala funciona?

Agradecido por perguntar. Como não há um fator escalar sensível predeterminado para operações de paginação/troca e alternância de contexto (diferentemente de utilização de memória, onde você pode pegar o tamanho total da memória como base), o &ktimemon; usa um semi-inteligente (bem,...) mecanismo de autoescala. Autoescala funciona conforme a seguir:

- Cada um dos três gráficos de barra descritos na seção de modo extendido tem um fator de escala associado. Os valores iniciais destes fatores são ajustados para alguns valores predeterminados.

- Cada vez que uma nova amostra é visualizada, o valor respectivo é colocado em escala com o fator correspondente. Se o valor puder ser mostrado na escala escolhida pelo fator, nenhuma mudança ocorre (&ie; pequenas mudanças na atividade são refletidas por uma mudança na altura da barra).

- Se o valor em escala for muito alto ou muito baixo para ser mostrado com o fator de escala atual, a escala é ajustada de forma que o novo valor mostrado é aproximadamente metade do gráfico de barra. Assim, mudanças subseqüentes devem ter uma boa chance de serem mostradas relacionadas com o valor atual, sem mudar a escala novamente.

Por que uma caixa de mensagem com saída de diagnostico do comando filho aparece?

Se você ligar um botão do mouse para um comando externo como descrito no capitulo Configuração, o &ktimemon; não checa se o nome do comando é válido. Ao invés, um comando shell é chamado para executar a declaração, então comandos shell, varáveis de ambiente e outros mais podem ser usados. Para permitir algum retorno para o usuário, o &ktimemon; monitora a saída `stderr` do comando shell, e informa-o na caixa de mensagem.

Enquanto este esquema pode ser útil se um comando não for encontrado, pode ser muito irritante se o comando chamado imprime informações de diagnósticos no `stderr`. Uma solução simples e elegante para este problema é adicionar `2>/dev/null` no final da especificação do comando. Isto redireciona as mensagens de diagnóstico para o nirvana das mensagens e evita o aparecimento das caixas de mensagem.

## Agradecimentos e Reconhecimentos

o &ktimemon; é baseado em uma versão Xt do meu irmão.

Agradecimentos a Tobe Toben, ttoben@artis.uni-oldenburg.de, Cristian Tibirna ctibirna@gch.ulaval.ca, Dirk A. Mueller dmuell@rhrk.uni-kl.de, Mark Krischer krischem@amp.com, e Lubos Lunak l.lunak@sh.cvut.cz por relatórios de erros, correções, comentários e sugestões.

Tradução de José Monteiro monteiro@ajato.com.br

&underGPL;