>O &ktimemon; é um monitor de sistema para o Ambiente de Trabalho K</para>
</abstract>
<keywordset>
<keyword
>KDE</keyword>
<keyword
>ktimemon</keyword>
<keyword
>monitor de sistema</keyword>
<keyword
>timemon</keyword>
</keywordset>
</chapterinfo>
<title
>Introdução</title>
<para
>O &ktimemon; é um pequeno programa para monitorizar a utilização do seu sistema. Ele pode mostrar gráficos de barras que contêm informações sobre o <acronym
>CPU</acronym
>, a memória e o uso da área de paginação ou memória virtual, assim como a utilização do disco e a actividade de mudança de contexto. Mantendo o espírito do <ulink url="http://www.kde.org/"
>KDE</ulink
>, ele suporta a configuração através de uma interface gráfica de utilizador. Ele também suporta a <emphasis
>acoplagem</emphasis
>, &ie; pode mostrar as informações no painel do sistema.</para>
<note>
<para
>Actualmente, o &ktimemon; suporta apenas um número limitado de sistemas: baseados em &Linux; com o sistema de ficheiros <filename
>/proc</filename
>, as instalações baseadas em &Solaris; com a biblioteca <filename
>kstat</filename
> e as instalações baseadas em Digital &UNIX; (antigamente DEC/OSF1) com a chamada de sistema <command
>table</command
>(2). A ajuda a passá-lo para outras plataformas é muito bem-vinda. </para>
</note>
<para
>O &ktimemon; pode ser iniciado a partir da linha de comandos ou do menu <guimenu
>Iniciar</guimenu
> (no sub-menu <guisubmenu
>Utilitários</guisubmenu
>). Se o utilizador escolher iniciar na linha de comandos, o &ktimemon; obedece às opções de programa normais do &X-Window;, como a <option
>-geometry</option
>. O &ktimemon; é <emphasis
>ciente da sessão</emphasis
>, &ie; ele mantém um registo do estado actual (as cores, &etc;) e restaura o mesmo na próxima sessão do utilizador. </para>
<sect1 id="fund">
<title
>Fundamental da Interface</title>
<para
>Após iniciar o &ktimemon; aparecerá uma pequena janela que mostra informações obtidas a partir do sistema operativo. Se o utilizador mover o cursor do rato sobre a janela do &ktimemon; e deixar ali por um pequeno período de tempo, uma <emphasis
>dica</emphasis
> (&ie; uma pequena janela transitória) irá aparecer. A dica contém informações numéricas sobre os parâmetros do sistema mostrados pelos gráficos de barra. As dicas podem ser desactivadas (veja em <link linkend="config"
>Configuração</link
>). </para
>
<sect2 id="modes">
<title
>Modos de Visualização</title>
<para
>O &ktimemon; pode mostrar dois diferentes conjuntos de informações do sistema. Como é explicado no capítulo <link linkend="config"
>Configuração</link
> , os botões do rato podem ser associados a varias acções. Por omissão, o botão esquerdo está ligado à acção de mudança de modo, &ie; ao carregar com o &LMB; em qualquer lugar da janela do &ktimemon; a informação mostrada muda do <guilabel
>Modo Normal</guilabel
> (por omissão) para o <guilabel
>Modo Extendido</guilabel
>, e vice-versa. </para>
<sect3 id="normalmode">
<title
>Modo Normal</title>
<para
>Após iniciar o &ktimemon; pela primeira vez, ele mostrará informações sobre a actividade actual do processador, assim como da memória e do uso da memória virtual. São usados três gráficos de barras para mostrar estas informações; estes são actualizados regularmente (o intervalo por omissão é 0.5s, mas isto pode ser mudado; veja em <link linkend="config"
>Configuração</link
>). Os três gráficos de barras representam (da esquerda para a direita): <variablelist>
<varlistentry>
<term
>Uso do <acronym
>CPU</acronym
> .</term>
<listitem>
<para
>O &ktimemon; mostra as barras em três cores diferentes, representando o tempo gasto pelo <acronym
>CPU</acronym
> nos vários modos. De baixo para cima estes são o modo de 'kernel', o modo de utilizador e o modo de utilizador com a prioridade reduzida (<emphasis
>nice</emphasis
>) - como o &Solaris; parece não suportar as estatísticas para o modo 'nice', a parte superior da barra representa o tempo gasto no estado de <emphasis
>espera</emphasis
> nestes sistemas. A distância do topo da barra até ao topo da janela representa a percentagem do tempo inactivo do <acronym
>CPU</acronym
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Uso da Memória.</term>
<listitem>
<para
>Semelhante à barra de utilização do <acronym
>CPU</acronym
>, esta barra é composta por três sub-campos, representando (de baixo para cima) a memória alocada pelos processos, a memória usada pelos 'buffers' de E/S e a memória usada pela 'cache' dos ficheiros. Para os sistemas baseados no Digital &UNIX;, a secção do meio representa a memória <quote
>inactiva</quote
> (&ie;, a memória alocada e não usada por um certo período de tempo), e para os sistemas baseados em &Solaris;, a secção do meio da barra não é usada, correspondo a secção superior à quantidade de memória usada pelo 'kernel'. Mais uma vez, a distância entre o topo da barra e o topo da janela representa a memória livre.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Utilização da memória virtual.</term>
<listitem>
<para
>Esta barra consiste num único campo que representa a utilização actual da memória virtual em relação à quantidade total da mesma. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para
>Ao carregar com o botão do rato ligado à <quote
>mudança de modo</quote
> na janela do &ktimemon;, muda para o <quote
>Modo Extendido</quote
>.</para>
</sect3>
<sect3 id="xtndmode">
<title
>Modo Extendido </title>
<para
>Neste modo, os três gráficos de barras são usados para mostrar um conjunto diferente de informações do sistema. Novamente, da esquerda para a direita, eles mostram:</para>
<variablelist>
<varlistentry>
<term
>A actividade de paginação.</term>
<listitem>
<para
>Esta barra consiste em duas partes, em que a metade inferior da mesma mostra o número de páginas de memória escritas no armazenamento secundário no último intervalo de amostragem. De forma semelhante, a metade superior indica o número de páginas lidas do armazenamento secundário.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Actividade de paginação.</term>
<listitem>
<para
>A segunda barra mostra a informação analógica da actividade de paginação.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Mudanças de contexto.</term>
<listitem>
<para
>Novamente, este gráfico de barras consiste num único campo que indica o número de mudanças de contexto no último intervalo de amostragem.</para>
</listitem>
</varlistentry>
</variablelist>
<para
>Como não existe nenhum modo <quote
>natural</quote
> de escalar a informação mostrada no <quote
>Modo Extendido</quote
>, por omissão o &ktimemon; utiliza o <emphasis
>auto-redimensionamento</emphasis
> (explicado na <link linkend="autoscaling"
>Secção de Perguntas Frequentes</link
>). Existe, contudo, a possibilidade de especificar a informação da escala; neste caso veja a secção <link linkend="config"
>Configuração</link
>.</para>
<para
>Repare que os dois conjuntos de gráficos de barras compartilham as mesmas cores, &ie; o ajuste de cores para o <quote
>Modo Normal</quote
> também é usado para mostrar a informação no <quote
>Modo Extendido</quote
> (veja também em <link linkend="config"
>Configuração</link
> como mudar o esquema de cores).</para>
</sect3>
</sect2>
</sect1>
<sect1 id="menu">
<title
>Estrutura do Menu</title>
<para
>Por omissão, o &RMB; está ligado à acção do <quote
>menu de contexto</quote
>, &ie; ao carregar no botão direito do rato em qualquer lugar da janela do &ktimemon; fará aparecer um menu, o qual é discutido nas secções seguintes. </para>
<sect2 id="config-menu">
<title
><guimenuitem
>Configuração...</guimenuitem
></title>
<para
>O item do menu <guimenuitem
>Configuração...</guimenuitem
> é usado para fazer aparecer a janela de configuração. As opções de configuração são discutidas na secção <link linkend="config"
>Configuração</link
>. </para
>
</sect2>
<sect2 id="docked-in-panel">
<title
><guimenuitem
>Acoplado no Painel</guimenuitem
></title>
<para
>Ao seleccionar o item de menu <guimenuitem
>Acoplado no Painel</guimenuitem
>, o &ktimemon; muda da sua visualização normal (&ie; uma janela normal) para o estado do painel, onde a janela do &ktimemon; desaparece e uma versão reduzida é mostrada no painel do sistema, e vice-versa. Para além da redução no tamanho, o &ktimemon; <quote
>no painel</quote
> comporta-se exactamente como o seu irmão maior. </para
>
</sect2>
<sect2 id="help">
<title
><guimenu
>Ajuda</guimenu
></title
> &help.menu.documentation; </sect2>
<sect2 id="horizontal-bars">
<title
><guimenuitem
>Barras Horizontais</guimenuitem
></title>
<para
>Ao seleccionar o item de menu <guimenuitem
>Barras Horizontais</guimenuitem
> ,o &ktimemon; muda de barras verticais para barras horizontais e vice-versa. Não é muito útil, mas foi fácil de implementar ;-) </para>
</sect2>
<sect2 id="quit">
<title
><guimenuitem
>Sair</guimenuitem
></title>
<para
>O item do menu <guimenuitem
>Sair</guimenuitem
> - surpresa, surpresa -- é usado para terminar o &ktimemon;. O estado actual será gravado (&ie; o esquema de cor, o tamanho da janela, se está presente no painel) e é restaurado o estado na próxima chamada. </para>
<para
>A informação da configuração é gravada no ficheiro <filename
> refere-se à pasta pessoal do utilizador. Se o ficheiro for removido, o &ktimemon; iniciar-se-á no seu estado predefinido na próxima chamada. </para
>
</sect2>
</sect1>
<sect1 id="config">
<title
>Configuração</title>
<para
>O &ktimemon; pode ser configurado através de uma janela simples (veja também a discussão do <link linkend="config-menu"
>Menu de Configuração</link
>). Na página <guilabel
>Geral</guilabel
>, o intervalo de amostragem pode ser especificado assim como a informação da escala (veja também a discussão do <link linkend="xtndmode"
>modo extendido</link
>). Se a opção <guilabel
>Auto-redimensionamento</guilabel
> estiver assinalada (o auto-redimensionamento é explicado na secção de <link linkend="autoscaling"
>FAQ</link
>), os factores de escala não poderão ser editados, dado que o &ktimemon; os determina automaticamente. </para>
<para
>A página de <guilabel
>Cores</guilabel
> pode ser usada para configurar as cores dos gráficos de barras conforme as preferências individuais. Uma pequena amostra do gráfico de barras dá um resultado imediato. </para>
<para
>Na página de <guilabel
>Interacção</guilabel
>, as configurações do rato poderão ser adaptadas. Ao carregar com um botão do rato na janela do &ktimemon;, este evento poderá ser ignorado, poderá disparar uma mudança de modo (veja também em <link linkend="modes"
>Modos</link
>), invocar um menu de contexto (veja também em <link linkend="menu"
>Menu</link
>), ou invocar um processo externo. A linha de comandos especificada para os processos externos é interpretada pela 'shell' por omissão, &ie; os comandos de 'shell', as variáveis de ambiente e o redireccionamento &etc; poderão ser usados.</para
>
<para
>A página de <guilabel
>Interacção</guilabel
> também contém uma opção que pode ser usada para desactivar o aparecimento automático de dicas com informações numéricas acerca dos gráficos de barras (compare com os <link linkend="fund"
>Fundamentos do Ecrã</link
>).</para
>
</sect1>
<sect1 id="faq">
<title
>Perguntas e Respostas Frequentes </title>
<qandaset>
<qandaentry>
<question>
<para
>Quais os sistemas operativos que são suportados pelo &ktimemon;? </para>
</question>
<answer>
<para
>O &ktimemon; suporta os sistemas baseados em &Linux;, com o sistema de ficheiros <filename class="devicefile"
>/proc</filename
> , os sistemas baseados em &Solaris; com a biblioteca <filename
>kstat</filename
>, os sistemas Digital &UNIX; (anterior DEC/OSF1) com a interface da chamada de sistema <command
>table</command
>(2). Somente a versão &Linux; foi totalmente testada, se você tiver qualquer problema com a versão para &Solaris;/Digital &UNIX;, por favor não hesite em contactar-me. </para>
<para
>Para além disso, as contribuições para adaptar o &ktimemon; para outras plataformas são muito bem-vindas. Por favor contacte-me em <email
>m.maierhofer@tees.ac.uk</email
> se você pretende passar o &ktimemon; para outras variantes de &UNIX;. </para>
</answer>
</qandaentry>
<qandaentry id="autoscaling">
<question>
<para
>Como funciona o auto-redimensionamento? </para>
</question>
<answer>
<para
>Obrigado por perguntar. Como não há um factor de escala sensível predeterminado para as operações de paginação e das mudanças de contexto (ao contrário da utilização de memória, onde você pode obter o tamanho total da memória como uma base), o &ktimemon; usa um mecanismo semi-inteligente (bem,...) de auto-redimensionamento. Este funciona conforme se segue: </para>
<itemizedlist>
<listitem>
<para
>Cada um dos três gráficos de barras descritos na <link linkend="xtndmode"
>secção do modo extendido</link
> tem um factor de escala associado. Os valores iniciais destes factores são ajustados para alguns valores predeterminados. </para
>
</listitem>
<listitem>
<para
>Cada vez que uma nova amostra é visualizada, o valor respectivo é colocado na escala com o factor correspondente. Se o valor puder ser mostrado na escala escolhida pelo factor, não ocorre nenhuma mudança (&ie;, as pequenas mudanças na actividade são reflectidas por uma mudança na altura da barra). </para>
</listitem>
<listitem>
<para
>Se o valor na escala for muito alto ou muito baixo para ser mostrado com o factor de escala actual, a escala é ajustada de forma que o novo valor mostrado seja aproximadamente metade do gráfico de barra. Assim, as mudanças subsequentes deverão ter uma boa hipótese de serem mostradas em relação ao valor actual, sem mudar a escala de novo. </para>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Por é que aparece uma mensagem com o <errorname
>resultado do diagnóstico do comando-filho</errorname
>? </para>
</question>
<answer>
<para
>Se o utilizador associar um botão do rato a um comando externo tal como é descrito no capítulo <link linkend="config"
>Configuração</link
>, o &ktimemon; não verifica se o nome do comando é válido. Em vez disso, é invocado um comando de 'shell' para executar a declaração, para que os comandos de 'shell', as variáveis de ambiente, entre outras coisas, possam ser usados. Para permitir que seja devolvido algo para o utilizador, o &ktimemon; controla a saída <systemitem
>stderr</systemitem
> do comando, e informa-o nessa mensagem. </para>
<para
>Enquanto que este esquema poderá ser útil se um comando não for encontrado, pode ser muito irritante se o comando chamado imprimir informações de diagnóstico no <systemitem
>stderr</systemitem
>. Uma solução simples e elegante para este problema será adicionar <userinput
>2>/dev/null</userinput
> ao fim da especificação do comando. Isto redirecciona as mensagens de diagnóstico para o nirvana das mensagens e evita o aparecimento das janelas de mensagens. </para>
</answer>
</qandaentry>
</qandaset>
</sect1>
<sect1 id="ktimemon-thanks-and-acknowledgements">
<title
>Agradecimentos e Reconhecimentos</title>
<para
>o &ktimemon; é baseado numa versão Xt do meu irmão.</para>
<para
>Agradecimentos a Tobe Toben, <email
>ttoben@artis.uni-oldenburg.de</email
>, Cristian Tibirna <email
>ctibirna@gch.ulaval.ca</email
>, Dirk A. Mueller <email
>dmuell@rhrk.uni-kl.de</email
>, Mark Krischer <email
>krischem@amp.com</email
>, e Lubos Lunak <email
>l.lunak@sh.cvut.cz</email
> pelos relatos de erros, correcções, comentários e sugestões. </para>