<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook V3.1-Based Variant V1.0//EN" [
 <!ENTITY kpm "<application>kpm</application>">
]>
<book lang="pt">
<bookinfo>
<title>Manual do KPM - Gestão de Processos</title>
<authorgroup>
<author>
<firstname>Mario</firstname>
<surname>Weilguni</surname>
<affiliation><address><email><ulink url="mailto:mweilguni@kde.org">mweilguni@kde.org</ulink></email></address></affiliation>
</author>
</authorgroup>
<date>Versão 1.3k1, 09-03-2000</date>
<releaseinfo><!-- information about this particular version --></releaseinfo>
<abstract>
<para>Este manual descreve o kpm 1.3k1, um utilitário para informações e
administração de processos.</para>
<para>O Manual do kpm<para><!-- Merge this with the previous paragraph; it comes from <META NAME="description" CONTENT="..."> --></abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>KPm</keyword>
<keyword>gestor de processos</keyword>
<keyword>top</keyword>
</keywordset>
</bookinfo>

<chapter id="generalinformation">
<title>Informações Gerais</title>

<sect1 id="whatiskpm">
<title>O que é o kpm?</title>

<para>O kpm permite-te visualizar e controlar os processos de um computador a correr Linux. Ele
mostra informações detalhadas dos processos a correr, recursos do computador como RAM, 
espaço do swap, utilização do CPU e por aí adiante. Podes matar processos e modificar
as suas propriedades. Se estiveres a correr como super-utilizador, poderás 
modificar também o escalonamento dos processos.</para>
</sect1>

<sect1 id="legalstuff">
<title>Aspectos Legais</title>

<para>O kpm é na sua maioria baseado no <literal remap="tt">qps</literal> de <ulink url="mailto:f91-men@nada.kth.se">Mattias Engdegård</ulink>
.
 A grande diferença entre o kpm e o qps é a interface de KDE. O kpm
adere à maioria das convenções do KDE, usa o ficheiro de configuração KDE e tem gestão
de sessão. Algumas características do qps foram removidas (ex. a possibilidade de mostrar o estilo das tabelas ou caixas de verificação 
em Mac
OS7). </para>

<para>O qps (e, agora, o kpm) é publicado de acordo com a 
<ulink url="common/gpl-license.html">GNU Public License</ulink> (GNU GPL).</para>
</sect1>

<sect1 id="requirementsforkpm">
<title>Requisitos do kpm</title>

<para><itemizedlist>
<listitem>
<para>Um sistema operativo Linux 2.0 ou superior. O kpm faz um uso intensivo do
sistema de ficheiros <literal remap="tt">/proc</literal> de Linux. Infelizmente ele não é portável para outros
sistemas, porque todos os sistemas UNIX parecem ter a sua própria maneira de manejar as
informações dos processos.</para>
</listitem>
<listitem>
<para>K Desktop Environment Beta2 ou superior</para>
</listitem>
<listitem>
<para>Qt 1.31. Como o KDE é baseado em Qt, isto não é problema.</para>
</listitem>
<listitem>
<para>O núcleo do teu Linux tem de ser compilado com suporte para o sistema de ficheiros <literal remap="tt">proc</literal>. 
Como muitas coisas, como o top, não iriam funcionar sem o suporte, isto não é problema 
para a maioria dos núcleos normais.</para>
</listitem>
</itemizedlist>
</para>
</sect1>
</chapter>

<chapter id="themenu">
<title>O Menu</title>

<sect1 id="windowmenu">
<title>O Menu da Janela</title>

<para><variablelist>
<varlistentry>
<term>Iconificar</term>
<listitem>
<para>Iconifica a janela. Quando iconificada, o kpm usa menos CPU porque
não há necessidade de actualizar a lista de processos. Se usas o KWM como gestor de janelas 
e a opção "Atracar no painel" estiver seleccionada, verás um pequeno icone no
painel a mostrar a carga do sistema. Nos outros gestores de janelas, como
fvwm, o próprio icone do kpm mostra a carga (mas isto depende de como o gestor
de janelas está configurado).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Sair</term>
<listitem>
<para>Fecha o kpm (se a janela principal for fechada, o efeito é o mesmo).</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>

<sect1 id="processmenu">
<title>Processos do Menu</title>

<para><variablelist>
<varlistentry>
<term>Renice</term>
<listitem>
<para>Permite modificar a prioridade do processo marcado
(ou todos os processos marcados). Em Linux a prioridade de um processo (valor de 
nice) está entre -20 (melhor) a +20 (pior), portanto
<emphasis remap="it">aumentar</emphasis> o valor de nice dá a um processo <emphasis remap="it">menos</emphasis> tempo 
de CPU. Não tens permissão para baixar o valor de nice (aumentar a sua
prioridade), a não ser que sejas o super-utilizador. Isto significa que, como utilizador
normal, não podes baixar o valor de nice de um processo mesmo que antes o tenhas 
aumentado.</para>
<para>Claro que podes mudar a prioridade de todos os teus
processos. Ao super-utilizador é permitido modificar a prioridade de qualquer
processo, e ele pode baixar a prioridade.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Modificar o Escalonamento</term>
<listitem>
<para>Esta opção só está disponível para root.
O "Modificar Escalonamento" permite ao super-utilizador
modificar a política de escalonamento do processo seleccionado
(usando as extensões Posix.1b, tempo-real, apresentadas nos
núcleos 2.0.x de Linux). Processos normais estão configurados para 
SCHED&lowbar;OTHER  e têm uma prioridade estática 0; processo tempo-real (soft)
têm a política SCHED&lowbar;FIFO  ou  SCHED&lowbar;RR  e uma 
prioridade estática entre o valor de 1 a 99.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Informação de Sockets</term>
<listitem>
<para>Mostra uma lista de sockets TCP e UDP usados pelos processos seleccionados.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>

<sect1 id="signalmenu">
<title>Menu Sinal</title>

<para>O menu sinal permite mandar sinais para todos os processos marcados. Sê
cuidadoso quando fizeres isto, especialmente com mais do que um processo marcado. Os
sinais por omissão de Linux estão descritos <link linkend="UNIXSignals">aqui</link>.</para>
</sect1>

<sect1 id="viewmenu">
<title>Menu Ver</title>

<para><variablelist>
<varlistentry>
<term>Refrescar lista de processos</term>
<listitem>
<para>Actualiza imediatamente os processos da lista. É muito útil se quiseres utilizar
períodos de actualização longos. Podes também fazer isto carregando no botão de actualizar na
barra de ferramentas ou carregando na tecla Espaço. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Todos os processos</term>
<listitem>
<para>Mostra todos os processos.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Os teus processos</term>
<listitem>
<para>Mostra os teus processos, incluindo aqueles a correr como 
um utilizador diferente (ex.: programas SETUID root que tenhas iniciado)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Processos não root</term>
<listitem>
<para>Mostra todos os processos excepto os que foram iniciados pelo root.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Processos a correr</term>
<listitem>
<para>Mostra apenas os processos que estão a correr (a correr ou na fila de execução)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Campos do Utilizador</term>
<listitem>
<para>A lista de processos mostrará os campos de processos mais importantes. Estes são os
campos tipicamente mostrados pelo "top".</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Campos Job</term>
<listitem>
<para>Mostra os campos mais relevantes para o controlo de jobs.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Campos de Memória</term>
<listitem>
<para>Mostra informação acerca da memória usada, falhas de página...</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>
</chapter>

<chapter id="kpmmainwindow">
<title>A Janela Principal do kpm</title>

<sect1 id="explainingthefields">
<title>Explicando os campos</title>

<para><variablelist>
<varlistentry>
<term>PID - ID dos Processos</term>
<listitem>
<para>Cada processo tem um único número de ID, começando por 1 e subindo.
Quando um novo processo é criado, o próximo PID não usado é alocado. Os PIDs
são (actualmente) inteiros de 16-bit com sinal, portanto eles terminam e dão a volta no 32767; este
é o comportamento normal e nada há a recear.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PPID - ID do Processo Pai</term>
<listitem>
<para>Todos os processos têm um processo pai.  A excepção é o processo 1 (init),
que é a raiz de toda a hierarquia de processos; não tem nenhum pai.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PGID - ID do Grupo de Processos</term>
<listitem>
<para>Cada processo é um membro de um grupo de processos. Os grupos de processos são usados para
distribuição dos sinais, e por terminais para arbitrar acessos 
à entrada: os processos que têm o mesmo grupo do terminal
são principais e podem ler a entrada, enquanto os outros irão bloquear com um
sinal se tentarem ler.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SID - ID da Sessão</term>
<listitem>
<para>Os IDs das sessões são usados normalmente para determinar o que acontece quando se dá
"hangup".</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TTY - Controlando o tty</term>
<listitem>
<para>O terminal de controlo (tty) é geralmente o dispositivo (porto série, pty, etc.)
de onde o processo foi começado, e que utiliza para entradas e saídas.
Nem todos os processos têm um terminal de controlo. O KPM vasculha o directório /dev
com o objectivo de determinar o nome do terminal, mas isto pode falhar.
Por uma questão de espaço, só os dois últimos caracteres do nome tty são mostrados
(portanto /dev/ttyp6 é mostrado como p6)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TPGID - ID do Grupo de Processos do dono do tty</term>
<listitem>
<para>Um tty a correr tem por dono um processo. O TPGID é o PGID desse processo.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UTILIZADOR - Dono do Processo</term>
<listitem>
<para>Este é o nome (real) do utilizador que é dono do processo. Se o ID 
efectivo
de um processo for diferente do ID real, isso será indicado
por: "*" ou "+".  O asterisco é usado quando o utilizador efectivo
é o super-utilizador (geralmente indica um executável que é set-uid para o root).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>NICE - Prioridade do Tempo-Partilhado</term>
<listitem>
<para>O valor nice determina a frequência com que um processo pode aceder ao CPU, e
a fatia de tempo de acesso. O valor situa-se entre -20 a 20; 0
é o valor nice por omissão. Números menores dão mais tempo de CPU ao processo.
Apenas o super-utilizador pode baixar o valor de nice.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PRI - Tamanho da Próxima Fatia de Tempo</term>
<listitem>
<para>Isto é o tamanho máximo da próxima fatia de tempo a atribuir ao processo (ou o que
sobrar da fatia de tempo actual, se o processo estiver a correr).
O número situa-se no intervalo de -20 a 20, números mais pequenos indicam
uma fatia de tempo maior.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PLCY - Política de Escalonamento</term>
<listitem>
<para>FIFO (F) e Round-Robin (R) são políticas de escalonamente em tempo-real; OTHER
(O) é a política normal de tempo partilhado em Unix. Os processos F e R têm uma
prioridade de tempo-real entre 1 e 99. Um processo correrá desde que
não haja processos em condições de execução com maior prioridade. Os processos Round-Robin
correrão durante uma fatia de tempo, depois de terem
sido colocados em último na fila de prioridade correspondente. Os processos FIFO executam
até acederem o CPU (por adormecerem ou bloquearem) ou
serem interrompidos por um processo de prioridade superior. Apenas o super-utilizador (root)
pode modificar a política de escalonamento.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RPRI - Prioridade de Tempo-Real</term>
<listitem>
<para>Os processos de tempo-real (FIFO e Round-Robin) têm prioridades entre 1 e 99.
Um processo interrompe outro qualquer que tenha menor prioridade.
Processos normais de tempo partilhado (política O) têm a prioridade 0. Apenas o
super-utilizador (root) pode modificar a prioridade de tempo-real.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MAJFLT - Número de Falhas Importantes Ocorridas</term>
<listitem>
<para>Uma falha de página ocorre quando um processo tenta ler ou escrever de/para uma página
de memória que não está presente na RAM.
Uma falha importante de página ocorre quando está envolvido acesso ao disco, tal como swapping
de páginas de memória.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MINFLT - Número de Falhas Pequenas Ocorridas</term>
<listitem>
<para>Uma falha de página ocorre quando um processo tenta ler ou escrever de/para uma página de 
memória que não está presente na RAM, ou escreve para uma página que está protegida contra escrita.
Uma falha pequena dá-se quando não há está envolvido acesso ao disco, por exemplo 
quando se tenta escrever para uma página partilhada "copy-on-write".</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TRS - Tamanho do Texto Residente (Kbytes)</term>
<listitem>
<para>Isto é o tamanho do texto (isto é, código executável) do processo
que está actualmente presente na RAM.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DRS - Temanho dos Dados Residentes (Kbytes)</term>
<listitem>
<para>Isto é o tamanho da zona de dados (código não executável) do processo que
está actualmente presente na RAM.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TAMANHO - Tamanho da Imagem Virtual do Processo (Kbytes)</term>
<listitem>
<para>Isto é o tamanho total da imagem do processo. Inclui todo
o código, dados, e bibliotecas partilhadas usadas pelo processo, incluindo páginas
que foram "swapped".</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SWAP - Kbytes do Dispositivo de swap</term>
<listitem>
<para>Isto é simplesmente a diferença entre TAMANHO e RSS; por outras palavras é
o tamanho do processo residente no disco.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RSS - Tamanho do Conjunto Residente (Kbytes)</term>
<listitem>
<para>Isto é o tamanho da parte do processo (código e dados) que
reside actualmente na RAM, incluindo bibliotecas partilhadas. Indica
aproximadamente quanta RAM está a ser usado pelo processo.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>SHARE - Memória Partilhada (Kbytes)</term>
<listitem>
<para>Isto é a quantidade de memória que um processo partilha com outros.
Não significa que esteja a ser usada por outros processos, apenas
que tal é possível.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DT - Número de Páginas Inválidas</term>
<listitem>
<para>Isto é o número (não o número de bytes!) de páginas em RAM que foram
modificadas desde a última vez que foram escritas para o disco. As páginas inválidas têm de ser escritas
para o disco antes de serem libertadas e utilizadas para outras coisas.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>STAT - Estado de um Processo</term>
<listitem>
<para>Um processo está em qualquer altura num dos seguintes estados:
<itemizedlist>
<listitem>
<para>R (em execução): o processo está a correr no cpu ou está preparado para correr.</para>
</listitem>
<listitem>
<para>S (adormecido): o processo está a aguardar a ocorrência de um evento (tal como I/O ou
um temporizador).</para>
</listitem>
<listitem>
<para>D (sono não interrompivel): o processo está a aguardar a ocorrência de um evento,
e não pode ser interrompido (geralmente de um dispositivo de driver).</para>
</listitem>
<listitem>
<para>T (parado): o processo está parado, ou está a ser seguido por outro processo.</para>
</listitem>
<listitem>
<para>Z (zombie): o processo terminou, mas o seu pai ainda não foi buscar 
a informação final.</para>
</listitem>
<listitem>
<para> Se o processo estiver completamente "swapped" (não tiver páginas residentes), um 'W'
é mostrado neste campo. (Isto também é válido para processos do núcleo, tal como kswapd.)</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FLAGS - Flags de Processos (hex)</term>
<listitem>
<para>Isto dá informação adicional sobre o estado dos processos.
Ver o código fonte do núcleo de Linux para mais detalhes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>WCHAN - Função Onde o Processo está a Dormir</term>
<listitem>
<para>Se o processo estiver à espera de alguma coisa, esta é a função do núcleo em
que ele está parado. (Prefixos do&lowbar; ou sys&lowbar; são retirados do nome para torná-lo
mais pequeno.)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UID - ID Númerica do Utilizador</term>
<listitem>
<para>Isto é a ID (real) do utilizador dono do processo.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&percnt;WCPU - Percentagem Pesado do CPU</term>
<listitem>
<para>Isto é percentagem de tempo de CPU que o processo está a utilizar, em média nos
últimos 30 segundos (média decaindo exponencialmente).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&percnt;CPU - Percentagem de Tempo de CPU desde a Última Actualização</term>
<listitem>
<para>Isto é a quantidade de tempo de CPU utilizada pelo processo desde a última actalização 
da tabela de processos do kpm.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&percnt;MEM - Percentagem de Memória Usada</term>
<listitem>
<para>Isto é a percentagem da memória total RAM utilizada pelo processo (como
tamanho residente). Inclui as bibliotecas partilhadas, pelo que é exagerado.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>START - Altura em que o Processo Começou</term>
<listitem>
<para>Isto é a altura de quando o processo foi iniciado.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>TIME - Tempo Total de CPU Usado</term>
<listitem>
<para>Isto é quanto tempo de CPU o processo usou desde de que foi iniciado.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>COMM - Comando que Iniciou o Processo</term>
<listitem>
<para>Isto é o nome do comando (nome do ficheiro) que começou o processo. Nomes compridos são
cortados.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CMDLINE - Linha de Comando com que o Processo foi Começado</term>
<listitem>
<para>Isto é a linha de comando, incluindo argumentos, que iniciou o processo. Se
no menu Opções estiver seleccionado "Esconder Caminho de Comando", então o caminho da
linha de comando não é mostrado. Os processos "swapped" devem apenas mostrar o
nome de comando entre parenteses (isto também é válido para os processos do núcleo).</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect1>
</chapter>

<chapter id="appendix">
<title>Apêndice</title>

<sect1 id="unixsignals">
<title>Sinais UNIX</title>

<para>Este são os sinais como explicados no manual de <emphasis remap="it">signal(7)</emphasis>. Para
mais detalhes consulta a página do manual com:</para>

<para><literal remap="tt">man 7 signal</literal></para>

<para>Os seguintes sinais são definidos pela norma Posix e podem ser enviados a partir do kpm:
<itemizedlist>
<listitem>
<para><emphasis remap="bf">SIGHUP:</emphasis>  Condição desligado detectada no terminal de
controlo ou morte do processo de controlo</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGINT:</emphasis> Interrupção a partir do teclado</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGQUIT:</emphasis> Sinal de saída do teclado</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGILL:</emphasis> Instrução Inválida</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGABRT:</emphasis> Sinal de Terminação de abort(3)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGFPE:</emphasis> Excepção de vírgula flutuante</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGKILL:</emphasis> Sinal de Matar</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSEG:</emphasis> Referência de memória inválida</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPIPE:</emphasis> Canal interrompido: escrita para um canal sem leitores</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGALRM:</emphasis> Temporizador de alarm(1)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTERM:</emphasis> Sinal de terminação</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGUSR1:</emphasis> Sinal de utilizador 1</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGUSR2:</emphasis> Sinal de utilizador 2</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGCHLD:</emphasis> Filho parado ou terminado</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGCONT:</emphasis> Continuar, no caso de estar parado</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSTOP:</emphasis> Parar Processo</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTSTP:</emphasis> Sinal de Parar do tty</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTTIN:</emphasis> Entrada no tty para processos em "background"</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGTTOU:</emphasis> Saída no tty de processos em "background" </para>
</listitem>
</itemizedlist>

Estes sinais não são definidos pela norma Posix, nem disponíveis no kpm (até agora)
<itemizedlist>
<listitem>
<para><emphasis remap="bf">SIGTRAP:</emphasis> Trace/breakpoint trap</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGIOT:</emphasis> IOT trap. Sinónimo para SIGABRT</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGBUS:</emphasis> Erro de Barramento</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSYS:</emphasis> Mau argumento para rotina (SVID)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGSTKFLT:</emphasis> Falha da pilha no coprocessador</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGURG:</emphasis> Condição urgente no socket (4.2 BSD)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGIO:</emphasis> I/O possível agora (4.2 BSD)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPOLL:</emphasis> Sinónimo para SIGIO (System V)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGCLD:</emphasis> Sinónimo para SIGCHLD</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGXCPU:</emphasis> Tempo limite do CPU excedido (4.2 BSD)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGXFSZ:</emphasis> Tamanho limite do ficheiro excedido (4.2 BSD)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGVTALRM:</emphasis> Despertador virtual (4.2 BSD)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPROF:</emphasis> Despertador de perfil</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGPWR:</emphasis> Falha de energia (System V)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGINFO:</emphasis> Sinónimo para SIGPWR </para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGLOST:</emphasis> Lock de ficheiro perdido</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGWINCH:</emphasis> Alteração do tamanho da janela (4.3 BSD, Sun)</para>
</listitem>
<listitem>
<para><emphasis remap="bf">SIGUNUSED:</emphasis> Sinal não usado</para>
</listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="knownbugsandproblems">
<title>"Bugs" e Problemas Conhecidos</title>

<para><itemizedlist>
<listitem>
<para>O kpm morre algumas vezes com um erro de segmentação se estiverem marcados mais que um processo
e a lista for actualizada. Não sei porquê...</para>
</listitem>
<listitem>
<para>A barra de informação e a lista de processos estão optimizados para um fonte de 12pt.
Fica bem com fontes até 14pt, mas fica horroroso
para fontes maiores.</para>
</listitem>
<listitem>
<para>O kpm pode consumir muitos recursos do CPU se o período de actualização for
pequeno. No meu sistema (AMD K6PR200) ele usa aproximadamente 5 porcento do tempo do CPU com
uma actualização de um segundo. Isto também depende do número total de
processos (todos os processos, não apenas os mostrados) e pode ser muito superior
a isto.</para>
</listitem>
<listitem>
<para>O número de &percnt;CPU não é exacto para períodos de tempo curtos
 devido à granularidade do 
temporizador.</para>
</listitem>
<listitem>
<para>O campo WCHAN não é correcto se o processo dormir em local fora
dos indicados em <literal remap="tt">System.map</literal> (por exemplo, num módulo do núcleo). Nestes
casos, a última entrada do <literal remap="tt">System.map</literal> será mostrada (qualquer coisa como
<literal remap="tt">&lowbar;end</literal>).</para>
</listitem>
<listitem>
<para>O kpm não aguenta com mais que um processo com o mesmo PID.  Isto pode
ocorrer quando se usa CLONE&lowbar;PID com a chamada de sistema clone(). </para>
</listitem>
</itemizedlist>
</para>
</sect1>

<para>
Tradução da documentação por Ricardo Cruz <email>rick2@ricjoa.fe.up.pt</email>
</para>

</chapter>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->
<!-- actualizado para a versão CVS :1.1: --> 
