# Capítulo 3. A Janela Principal do kpm

# 3.1. Explicando os campos

PID - ID dos Processos

  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.

PPID - ID do Processo Pai

  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.

PGID - ID do Grupo de Processos

  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.

SID - ID da Sessão

  Os IDs das sessões são usados normalmente para determinar o que acontece quando se dá "hangup".

TTY - Controlando o tty

  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)

TPGID - ID do Grupo de Processos do dono do tty

  Um tty a correr tem por dono um processo. O TPGID é o PGID desse processo.

UTILIZADOR - Dono do Processo

  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).

NICE - Prioridade do Tempo-Partilhado

  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.

PRI - Tamanho da Próxima Fatia de Tempo

  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.

PLCY - Política de Escalonamento

  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.

RPRI - Prioridade de Tempo-Real

  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.

MAJFLT - Número de Falhas Importantes Ocorridas

  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.

MINFLT - Número de Falhas Pequenas Ocorridas

  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".

TRS - Tamanho do Texto Residente (Kbytes)

  Isto é o tamanho do texto (isto é, código executável) do processo que está actualmente presente na RAM.

DRS - Temanho dos Dados Residentes (Kbytes)

  Isto é o tamanho da zona de dados (código não executável) do processo que está actualmente presente na RAM.

TAMANHO - Tamanho da Imagem Virtual do Processo (Kbytes)

  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".

SWAP - Kbytes do Dispositivo de swap

  Isto é simplesmente a diferença entre TAMANHO e RSS; por outras palavras é o tamanho do processo residente no disco.

RSS - Tamanho do Conjunto Residente (Kbytes)

  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.

SHARE - Memória Partilhada (Kbytes)

  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.

DT - Número de Páginas Inválidas

  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.

STAT - Estado de um Processo

  Um processo está em qualquer altura num dos seguintes estados:

  - R (em execução): o processo está a correr no cpu ou está preparado para correr.

  - S (adormecido): o processo está a aguardar a ocorrência de um evento (tal como I/O ou um temporizador).

  - 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).

  - T (parado): o processo está parado, ou está a ser seguido por outro processo.

  - Z (zombie): o processo terminou, mas o seu pai ainda não foi buscar a informação final.

  - 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.)

FLAGS - Flags de Processos (hex)

  Isto dá informação adicional sobre o estado dos processos. Ver o código fonte do núcleo de Linux para mais detalhes.

WCHAN - Função Onde o Processo está a Dormir

  Se o processo estiver à espera de alguma coisa, esta é a função do núcleo em que ele está parado. (Prefixos do_ ou sys_ são retirados do nome para torná-lo mais pequeno.)

UID - ID Númerica do Utilizador

  Isto é a ID (real) do utilizador dono do processo.

%WCPU - Percentagem Pesado do CPU

  Isto é percentagem de tempo de CPU que o processo está a utilizar, em média nos últimos 30 segundos (média decaindo exponencialmente).

%CPU - Percentagem de Tempo de CPU desde a Última Actualização

  Isto é a quantidade de tempo de CPU utilizada pelo processo desde a última actalização da tabela de processos do kpm.

%MEM - Percentagem de Memória Usada

  Isto é a percentagem da memória total RAM utilizada pelo processo (como tamanho residente). Inclui as bibliotecas partilhadas, pelo que é exagerado.

START - Altura em que o Processo Começou

  Isto é a altura de quando o processo foi iniciado.

TIME - Tempo Total de CPU Usado

  Isto é quanto tempo de CPU o processo usou desde de que foi iniciado.

COMM - Comando que Iniciou o Processo

  Isto é o nome do comando (nome do ficheiro) que começou o processo. Nomes compridos são cortados.

CMDLINE - Linha de Comando com que o Processo foi Começado

  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).