# &ktimemon;

## Introdução

&ktimemon; é um pequeno programa para monitorar a utilização do seu sistema. Ele pode mostrar gráficos de barra contendo infomações sobre a CPU, memória e uso da área de troca, assim como a utilização do disco e atividade de comutaçao 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 panel 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 sistema de chamadas `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 sessao do usuário.

## Fundamentos Onscreen

Após iniciar o &ktimemon; uma pequena janela aparecerá mostrando informaçao obtida do sistema operacional. Se voce mover o ponteiro do mouse sobre a janela do &ktimemon; e deixar ali por um pequeno periodo de tempo, uma dica (&ie; uma pequena janela transitoria) aparecerá. A dica contem informaçao numerica sobre os parametros do sistema mostrados pelos graficos de barra. As dicas podem ser desabilitadas (veja em Configuracao).

### Modos de Exibiçao

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

#### Modo Normal

Apos iniciar o &ktimemon; pela primeira vez, ele mostrará informaçao sobre a atividade atual da CPU, assim como memoria e uso da area de troca. Tres graficos de barra sao usados para mostrar estas informaçoes; elas sao atualizadas regularmente (o intervalo padrao é 0.5s, mas isto pode ser mudado, veja Configuraçao). Os tres graficos de barra representam ( da esquerda para direita):

Uso da CPU .

- O &ktimemon; mostra a barra em tres diferentes cores, representando o tempo gasto pela CPU em varios modos. De baixo para cima eles sao: modo kernel, modo usuario, e modo usuario com prioridade rebaixada (nice) - como o &Solaris; parece nao suportar estatisticas 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 Memoria.

- Similar a barra de uso da CPU, esta barra é composta por tres sub campos, representando (de baixo para cima): memoria alocada por processos, memoria usada por I/O buffering, e memoria usada por cache de arquivos. Para sistemas baseados em Digital &UNIX; o sessao do meio representa a memoria inativa (&ie; memoria alocada e nao usada por um certo periodo de tempo), e para sistemas baseados em &Solaris;, a seçao do meio da barra nao é usada, e a seçao superior representa a quantidade de memoria usada pelo kernel. Novamente, a distancia entre o topo da barra ate o topo da janela representa a memoria livre.

Uso da area de troca.

- Esta barra consiste em um campo unico representando o uso atual da area de troca relativo a quantidade total de espaço de troca.

Clicando o botao do mouse ligado ao modo de alternancia na janela do &ktimemon; alterna para o Modo Extendido.

#### Modo Extendido

Neste modos, os tres graficos de barra sao usados para mostrar um conjunto diferente de informaçao do sistema. Novamente da esquerda para a direita, eles mostram:

Atividade de Paginaçao.

- Esta barra consiste em duas partes, a metade inferior da qual mostra o numero de paginas de memoria escritas para estoque secundario no ultimo intervalo de amostragem. Similarmente, a metade superior indica o numero de paginas lidas do estoque secundario.

Atividade de Troca.

- A segunda barra mostra a informaçao analogica de atividade de troca.

Alternadores de Contexto.

- Novamente, este grafico de barras consiste em um unico campo que indica o numero de alternadores de contexto no ultimo intervalo de amostragem.

Como nao ha nenhum modo natural de escalar a informaçao mostrada no Modo Extendido, por padrao o &ktimemon; usa o autoscaling (explicado na Seçao de Perguntas Comuns). Existe, contudo, a possibilidade de especificar a informaçao escalar, veja a seçao Configuration

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

## Estrutura do Menu

Por padrao, o &RMB; está ligado à ação menu pop-up, &ie; clicando no botao direito do mouse em qualquer lugar da janela do &ktimemon; traz um menu, o qual é discutido nas seçoes 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 proxima chamada.

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

## Configuração

O &ktimemon; pode ser configurado via um diálogo sequencial (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 customizar as cores dos graficos de barra conforme preferências individuais. Uma pequena amostra de grafico 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émsee also 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 disabilitar 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 contactar.

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

Como a autoescal funciona?

Agradecido por perguntar. Como não há um fator escalar sensível prederminado 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 tres 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 grafico de barra. Assim, mudanças subsequentes 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 saida 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 saida `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 relatorios de erros, correções, comentários e sugestões.

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

&underGPL;