Pular para o conteúdo

Processos no Linux

Este artigo descreve de maneira básica o tão importante conceito de processos no Linux e, em seguida, mostra quais os meios mais usados para controlá-los e manipulá-los.
Emerson Alecrim wester
Hits: 159.752 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Introdução

Nos sistemas operacionais, um processo é a forma de representar um programa em execução. É o processo que utiliza os recursos do computador - processador, memória, etc - para a realização das tarefas para as quais a máquina é destinada. A seguir, você verá os principais conceitos relacionados a processos no Linux e as ferramentas usadas para manipulá-los e gerenciá-los.

Composição de um processo


O sistema operacional lida com uma infinidade de processos e, por isso, é necessário ter meios que permitam controlá-los. Para isso, os processos contam com um conjunto de características, dentre as quais:
  • Proprietário do processo;
  • Estado do processo (em espera, em execução, etc);
  • Prioridade de execução;
  • Recursos de memória.

O trabalho de gerenciamento de processos precisa contar com as informações acima e com outras de igual importância para que as tarefas sejam executadas da maneira mais eficiente. Um dos meios usados para isso é atribuir a cada processo um PID.

PID e PPID


Um PID (Process Identifier) é um número de identificação que o sistema dá a cada processo. Para cada novo processo, um novo número deve ser atribuído, ou seja, não se pode ter um único PID para dois ou mais processos ao mesmo tempo.

Os sistemas baseados em Unix precisam que um processo já existente se duplique para que a cópia possa ser atribuída a uma tarefa nova. Quando isso ocorre, o processo "copiado" recebe o nome de "processo pai", enquanto que o novo é denominado "processo filho". É nesse ponto que o PPID (Parent Process Identifier) passa a ser usado: o PPID de um processo nada mais é do que o PID de seu processo pai.

UID e GID


Conforme já mencionado, cada processo precisa de um proprietário, um usuário que seja considerado seu dono. A partir daí, o sistema saberá, através das permissões fornecidas pelo proprietário, quem pode e quem não pode executar o processo em questão. Para lidar com os donos, o sistema usa os números UID e GID.

O Linux gerencia os usuários e os grupos através de números conhecidos como UID (User Identifier) e GID (Group Identifier). Como é possível perceber, UID são números de usuários e GID são números de grupos. Os nomes dos usuários e dos grupos servem apenas para facilitar o uso humano do computador.

Cada usuário precisa pertencer a um ou mais grupos. Como cada processo (e cada arquivo) pertence a um usuário, logo, esse processo pertence ao grupo de seu proprietário. Assim sendo, cada processo está associado a um UID e a um GID.

Os números UID e GID variam de 0 a 65536. Dependendo do sistema, o valor limite pode ser maior. No caso do usuário root, esses valores são sempre 0 (zero). Assim, para fazer com que um usuário tenha os mesmos privilégios que o root, é necessário que seu GID seja 0.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Sinais de processos
   3. Comandos nice e renice
   4. Verificando processos com o ps
   5. Verificando processos com o top
   6. Os recursos jobs, fg e bg, fuser, pstree, nohup

O gerenciador de boot GRUB

Usando cron e crontab para agendar tarefas

Máquina Virtual Java (Java Virtual Machine)

O que é Software Livre?

Instalando o KBFX e mudando a imagem do Menu K de uma vez por todas

Impressões de um neonato

Instalando o GNU/Linux numa máquina virtual (e aprendendo sem correr riscos)

Instalando e deixando o Torsmo mais bonito

#1 Comentário enviado por mascote24 em 23/11/2005 - 10:19h
Parabéns Weber, excelente artigo !

Para conhecer/saber como funcionam processos nos *nix está completo. Começar a aprender com este artigo é no mínimo começar por um bom começo.

Acrescentei-o aos meus favoritos.
#2 Comentário enviado por mms_ba em 23/11/2005 - 16:03h
Parabens pela qualidade/ conteúdo do material. :) Ja adicionei aqui nos favoritos.
#3 Comentário enviado por silviojunior em 23/11/2005 - 19:37h
Artigo de excelente qualidade!
#4 Comentário enviado por in54no em 23/11/2005 - 21:24h
Muito bom,
Parabens!
#5 Comentário enviado por Cybertitan em 24/11/2005 - 01:55h
Otimo artigo, resumiu muito bem, esta de parabens.
#6 Comentário enviado por luiscarlos em 24/11/2005 - 10:29h
Sempre percebi que a maquina depois de inciar mesmo com os serviços não essenciais todos parados, ainda rodam em médiua de 60 a 70 processos, a maioria em estado sleeping ou em espera, alguém sabe quais os processos minimos necessários para que a maquina funciona usando o mínimo de memória? eu gostaria de rodar uma console com o mínimo necessário e tmb depois rodar o KDE com o mínimo necesário, já retirei tudo que nao precisava, mas ainda tem muito processo, queria diminuir pra uns 30 no maximo
#7 Comentário enviado por xith em 24/11/2005 - 17:24h
Cara parabens pelo artigo, tirei uma duvida vital nele!
Excelente
#8 Comentário enviado por PCMasterPB em 26/11/2005 - 17:50h
Realmente muito bom esse artigo! Emerson, você está de parabéns!!!
#9 Comentário enviado por brunomark em 01/08/2006 - 19:41h
Excelente material Emerson, matéria fundamental para sobreviver no modo texto
#10 Comentário enviado por decohab em 17/10/2006 - 13:42h
Legal einh boa dica para iniciantes
Ai vai mais um bom tutorial pra galera GNU
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4152&pagina=6

Só uma complementação a vezes até util para não deixar o SHELL preso é usar recursos em background .. util para quando se quer copiar arquivos acima de 200 megas e não se ker ficar preso esperando terminar.. basta usar no final do comando &.

ex.

# cp arquivo.xxx /home &

!!Valew!!!
#11 Comentário enviado por cassimirinho em 16/01/2008 - 13:52h
Uma pergunta sobre processos, a cada reinício do sistema o número do PID é sempre o mesmo pra cada "executável" ?
#12 Comentário enviado por stickybit em 21/01/2009 - 17:04h
Vale lembrar que, os números nice vão de -20a +19. Qualquer usuário pode iniciar um processo com um número nice positivo, mas apenas o superusuário (root) pode diminuir o número nice de um processo, aumentando com isso a sua prioridade.
#13 Comentário enviado por thiagomadeira em 04/01/2013 - 09:51h
Maninho muito bom o seu artigo, parabéns !!!
#14 Comentário enviado por removido em 23/01/2014 - 10:18h
Excelente artigo! Obrigado por compartilhar conhecimento!

Contribuir com comentário

Entre na sua conta para comentar.