segunda-feira, 2 de abril de 2012

Gerenciamento de processos




Gerenciamento de processos
Processo é a forma como algum programa se apresenta para o processador, ou seja, todas as tarefas em execução no computador. Todo sistema ou função do computar é realizada através de processos, no qual  é quem utiliza os recursos do computador.



Composição e conceitos associados ao processo 
A composição dos processos vem a ser os atributos que os diferenciam um de outro ajudando o sistema operacional a controla-los, suas características ou atributos são:
  • Lifetime: Tempo de vida de um processo em execução.
  • PID: Numero de identificação que o sistema da a um processo.
  • PPID: É o PID do processo pai de um processo.
  • UID:  Associa um usuário a um processo.
  • GID: Associa um grupo de usuários a um processo.
  • Enviroment: Cada processo tem suporte a uma lista de variáveis associadas a valores.
  • Curremt working Directory: Diretório default atribuído a cada processo.


Sinais de processos 
Usados para que os processos possam se comunicar e para que o sistema possa interferir em seu funcionamento.
Sinais:
  • STOP:  Função de interromper a execução do processo reativando após o recebimento de CONT
  • CONT: Instrui a execução de um processo após a interrupção.
  • SEGV: Sinal que informa os erros de endereços de memoria.
  • TERM:  Termina completamente com o processo, eliminando-o
  • ILL: Informa o erro de instruções ilegal.
  • KILL: Sinal tem a função de "matar" um processo sendo usado em momentos críticos.
OBS:  O sinal KILL sem parâmetro, por padrão executa o sinal TERM


ESTADOS DOS PROCESSOS
Os processos não necessariamente são executados no momento em que são criados. Alguns processos podem ser temporariamente paralisados liberando o processador a executar outro processo com maior prioridade. Há quatro tipos de situações, isto é, estados:
  • Executável: O processo pode ser executado diretamente;
  • Dormente: O processo precisa aguardar alguma ação para ser executado;
  • Zumbi: O processo é considerado morto, mas por alguma razão ainda existe;
  • Parado: O processo esta parado e não pode ser executado;


MONITORANDO PROCESSOS (PS, TOP e PSTREE)
PS
Comando extremamente importante para o gerenciamento de processos. Através desse comando é possível saber os processos que estão em execução. O comando PS sem parâmetro exibe apenas os processos do usuário, é preciso utilizar parâmetros para conseguir mais detalhes.
Parâmetros(opções):
  • a - mostra todos os processos existente;
  • e - exibe variáveis de ambiente relacionada ao processo;
  • f - exibe a arvore de execução dos processos;
  • l - exibe mais campos no resultado;
  • m - mostra a quantidade de memoria utilizada por cada processo;
  • u - exibe o nome e a hora do usuário que executo o processo;
  • x - exibe os processos que não estão associados a terminais;
  • w - se o resultado de processo não couber em uma linha, sera exibido na próxima;
Dentre as opções citadas, a combinação mais usada é o: ps aux  como mostra a a figura.


Descrição:
  • User:  nome do usuário dono do processo;
  • UID: numero de identificação do dono do processo;
  • PID: numero de identificação do processo;
  • PPID: numero de identificação do processo pai;
  • %CPU: porcentagem de processamento pelo processador;
  • %MEM: porcentagem de memoria utilizada;
  • VSZ: Indica o tamanho virtual do processo;
  • RSS: sigla de Resiident Set Size, indica a quantidade de memória usada (kb);
  • TTY: indica o identificador do terminal;
  • STAT:  hora em que o processo foi iniciado;
  • TIME: tempo de processamento consumido pelo processador;
  • COMMAND: Comando que executa o processo;


TOP
O comando ps exibe os processos no momento em que foi executado, o comando top vai atualizando os processos num determinado tempo. Exemplo: o ps tira uma foto da situação dos processos e o top atualiza a situação regularmente.
Opções:
  • -d: atualiza o top num determinando tempo em segundos. Ex: top -d 30 ;
  • -c: exibe a linha de comando ao invés do nome do processo;
  • -i: faz o top ignorar processos no estado zumbi;
  • -s: executa o top em modo seguro.
  • u: mostra processos de usuário especifico;
O comando top apos executado permite manipular os recursos através do teclado:
  • espaço: atualiza imediatamente o resultado exibido;
  • m: classifica os processos por uso de memoria;
  • p:  classifica os processos por uso de  CPU;
  • t: classifica processos por tempo;
  • q: top é finalizado;
  • h: exibe a lista completa de opções e teclas de atalho.


Descrição:
  • PR: prioridade do processo;
  • NI: valor preciso da prioridade


PSTREE
Apresenta os processos em formato de arvore;

Opções:
  • -u: mostra o proprietário do processo;
  • -p: exibe o PID apos o nome do processo;
  • -c: mostra as relação dos processos ativos;
  • -G: usa determinados caracteres para exibir o resultado em formato gráfico;


TERMINANDO PROCESSOS COM KILL E KILLAL
KILL
Usado para enviar sinais a determinados processos. Há diferentes sinais que o comando kill pode enviar ao processador, pode-se verificar através do comando: # kill -l



Como a lista apresenta o numero 9(SIGKILL) elimina um processo, exemplo:

1- Vamos listar os processos:


2- Para eliminar o processo destacado basta executar o comando kill com o parametro 9 seguido do PID do programa


Pode-se descobrir o PID do programa, também através do comando pgrep, basta digitar o comando seguindo do nome do processo:
Ex: # pgrep cron
         347 -> PID do processo



KILLALL
O comando killall diferente do comando kill que elimina os processos atraves do PID, elimina os processos pelo nome:
Ex - Para eliminarmos o editor de texto vi basta digitar o comando kill -9:




RECURSOS JOBS, FG, BG
JOBS
Serve para visualizar os processos que estão parados ou executando em segundo plano.
#jobs -opções
Opções:
  • -l: lista os processos através do PID;
  • -r: lista apenas os processos em execução;
  • -s: lista apenas os processos parados;
Dicas:
  • Para ver os processos que estão executando em segundo plano basta verificar a existência do caractere "&" no final da linha
  • Se aparecer (+) na linha do processo significa que é o processo mais recente a ser parado;
  • Se aparecer (-), foi o penúltimo;


FG
O comando FG permite que um programa rodando em segundo plano ou parado rode em primeiro plano.
Ex - Vamos colocar o editor vi que esta rodando em segundo plano para o primeiro.
# fg vi
ou
# fg (PID do vi)


BG
O comando BG faz ao contrario do FG passando o processo do primeiro para o segundo plano.
Ex - Vamos colocar o editor vi que esta rodando em primeiro plano para o segundo.
# bg vi
ou
# bg (PID do vi)


MODIFICANDO PRIORIDADES DE EXECUÇÕES DOS PROCESSOS
Uns processos tem prioridades sobre outros, isso tudo é atribuído a "gentileza" que cada  processo tem com outros. O comando nice atribuí valores e quanto mais alto for o valor atribuído ao processo mais gentil é  e menor prioridade tem. Esses números variam de -19 a 19.
Sintaxe:
#nice -n 1 vi  (o processo vi recebe prioridade 1)
e
#nice -n -1 gpedit  (o processo gpedit tem mais prioridade que o processo anteior pois o valor é menor)

Se um processo já esta em execução, ele ja tem sua prioridade definida. Para modificar essa prioridade utiliza-se o comando renice.
Opções:
  • -u: a alteração acontecera nos processos do usuário informado;
  • -g:  a alteração acontecera nos processos do grupo informado;
  • -p:  a alteração acontecera no processo cujo PID foi informado;
Exemplo:



Esse post foi baseado num estudo de dois artigos!

Artigo 01
Artigo 02

Nenhum comentário:

Postar um comentário