Você está na página 1de 8

03/03/2011

LicaoControlandoProcessos < GrupoLi


Pular para Busca English

GrupoLinux Iniciar sesso ou Registro


Pular para Busca English

Editar Voc est aqui: TWiki > Web GrupoLinux > LinuxEssencialFinal > LicaoControlandoProcessos

Anexar

Impresso

r13 - 28 Feb 2011 - 14:58:59 - PauloLima

, create new tag Anterior Trilha B Prximo comentar

Lio 10 - Controlando Processos


Objetivo(s): Explicar como feito o controle de processos. Direitos autorais e licena: Veja notas de direitos autorais e licena no final da lio. Contedo 10.1 Controlando processos 10.2 ps 10.3 top 10.4 kill 10.5 job 10.6 Controle de tarefas 10.7 bg 10.8 fg 10.9 Prioridade de processos 10.10 nice 10.11 renice 10.12 Exerccios de Reviso 10.13 - Direitos autorais e licena 10.14 - Comentrios

Web GrupoLinux Criar Novo Tpico ndice Busca Alteraes Notificaes Estatsticas Preferncias Webs BrOffice EaD GrupoJava GrupoLinux GrupoLogica GrupoWeb Main Ruby SGBD SO Sandbox TWiki Wikeditora WikiEdu

10.1 Controlando processos

Quando o usurio solicita um aplicativo, o shell informa para o sistema operacional das intenes do usurio em utilizar determinado aplicativo. Ento, solicitado ao kernel que o mesmo seja localizado no computador. O principal meio de armazenamento para os computadores so os HD's (Hard Disk). To logo as informaes solicitadas so encontradas, o HD as repassa para a memria de acesso aleatrio (RAM). De posse das informaes necessrias para executar o processo, o escalonador de processos espera a vez de levar essas informaes ao processador, para a sua execuo. Isso um processo, ou seja, uma instncia de um programa localizado no HD. Esses processos possuem informaes tais como nmero referente sua solicitao - que diferente para cada pedido -, hora do pedido, nome do usurio solicitante, arquivos que esse processo est escrevendo ou lendo, possveis bibliotecas que esse processo est utilizando.

As informaes entre a RAM e o processador podem ser encontradas em vrios estados, podendo o processo estar rodando no processador, esperando por algum dado necessrio para continuar sua execuo(em swap), residente na memria, parado, em depurao (por depurao entende-se o tratamento que dado para as informaes na tentativa de recuper-las). O conjunto de todas essas informaes chamado de tabela de processos. Nessa tabela encontram-se todas as informaes apresentadas acima, alm de informar o estado do processo no computador. Utilitrios que manipulam essa tabela esto disponveis no GNU/Linux. Dentre as possibilidades esto a suspenso dos processos em execuo, a continuao de algum processo que estava suspenso ou mesmo a finalizao precoce de algum processo mal comportado.

10.2 ps
O comando ps exibe os processos se utilizando das informaes existentes na tabela de processos. Dentre as opes disponveis, esto aquelas que controlam os tipos de processos a serem exibidos, bem como os diferentes tipos de informaes presentes. Sintaxe:
ps [opes] [txx]

sintectus.com//LicaoControlandoPr

1/8

03/03/2011
Opes:

LicaoControlandoProcessos < GrupoLi

a - apresenta os processos do console atual, independentemente do usurio que os executou; c - apresenta somente o principal nome do processo; e - apresenta as variveis de ambiente a qual o processo foi solicitado; f - apresenta o nome em estrutura de rvore; l - formato longo, apresenta todas as informaes da tabela de processos; u - apresenta o resultado em formato de usurio, ou seja, mais amigvel; x - apresenta os processos independe de seu terminal. Exemplo:
$ps a

PID TTY 888 tty2 1145 tty2 2480 tty2

STAT S S R

TIME COMMAND 0:00 login -- root 0:00 - bash 0:00 ps a

No exemplo acima foi utilizada a opo a , que listou as informaes existentes na tabela de processos do console atual. Nesse caso o console foi inicializado pelo super-usurio, logo aps, a inicializao do shell de comando utilizado (no exemplo o bash) e o comando ps, que sempre gera um valor de processo na sua chamada. Tambm observvel a apresentao de novas palavras, tais como PID STAT TIME e COMMAND, que so campos pertinentes tabela de processos do usurio. Existem mais colunas, conforme apresentado abaixo: PID - um nmero nico que o processo recebe ao solicitar o processador; TTY - console que chamou o processo; STAT - Informa a situao em que se encontra o processo, podendo ele estar em execuo (R), aguardando (S), parado ou em depurao (T), em estado zumbi (Z), aguardando sem interrupo (D). Estas so as informaes que pertencem ao primeiro campo, j no segundo podemos encontrar detalhes sobre pginas residentes na memria (W), e para o terceiro campo podemos ter prioridade positiva (N) em seu valor; TIME - tempo atual de utilizao do processador; COMMAND - apresenta o nome do comando que foi solicitado; USER - nome do usurio solicitante; %CPU - porcentagem de uso da cpu; %MEM - porcentagem de uso da memria; RSS - quantidade de memria fsica utilizada durante o seu processo, o valor apresentado em Kbytes; START - hora do incio do processo. A visualizao de todas essas colunas pode ser feita utilizando o comando ps aux. Para maiores detalhes: man ps.

10.3 top
Muitas vezes somente o comando "ps" no conveniente o bastante para se monitorar o estado dos processos de um sistema. Isto porque o "ps" lista as informaes relativas ao

sintectus.com//LicaoControlandoPr

2/8

03/03/2011

LicaoControlandoProcessos < GrupoLi momento de sua execuo.


O comando "top" funciona de modo interativo, atualizando as informaes em tempo real. O intervalo padro de atualizao das informaes de 5 segundos. As atualizaes incluem novos processos que so finalizados, ou seja, que deixam de ser listados, e tambm as mudanas na quantidade utilizada de processador e memria. Sintaxe:
top

10.4 kill
Um programa pode sofrer vrios tipos de intervenes, quando solicitado pelo usurio. Entre as principais destacam-se a atualizao e retirada do processo. Quando o usurio decide intervir na tabela de processos o comando "kill" que dever ser utilizado, ou seja, se um determinado programa demorar dar uma resposta o prprio usurio poder solicitar a sua parada e retirada do processador. essa solicitao dada o nome de sinal, que varia entre 64 opes para o usurio. Para list-los basta utilizar o comando 'kill -l'. Por padro o comando kill utiliza o sinal TERM (15) quando no especificado.

Sintaxe:
kill [opo] [pid]

Opo: -l - lista todas as opes de sinais - tanto o nome do sinal quanto o seu valor numrico -s - especifica o sinal a ser enviado de acordo com as opes listadas pelo comando -l pid - nmero de identificao do processo, a qual desejado enviar o sinal. Comandos mais comuns listados com a opo -l: matar o processo: -9 atualizar o processo: -1 Exemplo:

sintectus.com//LicaoControlandoPr

3/8

03/03/2011

LicaoControlandoProcessos < GrupoLi - antes de se utilizar o "kill" necessrio saber qual a identificao do processo em questo:
$ps auxc

USER ... aluno ...

PID

%CPU %MEM VSZ

RSS

TTY STAT START

TIME COMMAND

1420 14.2 10.7 23088 14032 ?

0:00

0:02 firefox

Para este exemplo ser encerrado o browser firefox a partir da sua identificao de processo. Observao: veja detalhes das opes do comando "ps" no captulo referente.
$kill -9 1420

logo aps esse comando o firefox ser fechado.

10.5 job
Jobs, ou tarefas, so processos que esto rodando no console atual, disparados pelo usurio atual. As tarefas, alm de seus nmeros de processo, tambm possuem um nmero prprio, utilizado como ndice nos comandos de manipulao de tarefas, mencionados a seguir. O comando "job" limita-se a listar as tarefas existentes. Sintaxe:
jobs [opo]

Opo: -l - apresenta junto com o valor do "job" o valor de identificao do processo, que foi dado na chamada do programa para ser rodado em segundo plano. Exemplo:
$jobs -l

[1]

1765 Running

firefox &

No exemplo dado, o valor do job foi apresentado entre colchetes. A coluna a seguir representa o valor do PID, A terceira coluna informa o estado do programa dentro do processador e a ltima, o nome do programa.

10.6 Controle de tarefas


Suponha que um usurio, logado em um console serial, esteja depurando uma determinada aplicao. Para isso, ele precisa fazer uso de um editor de texto e de um interpretador de comandos, a partir de onde a aplicao ser executada e re-compilada. Utilizando os recursos e comandos de tarefas, o usurio consegue colocar o editor de texto em segundo plano (geralmente atravs da combinao de teclas Ctrl+Z), para ento recompilar a aplicao, e em seguida execut-la para testar as alteraes feitas. Depois dessa primeira fase de testes, o usurio retorna ao editor de texto, faz novas alteraes na aplicao e retorna ao interpretador de comandos para novos testes. Sem os recursos de controle de tarefas, o usurio teria que fechar o editor de texto, junto com todos os arquivos em edio para proceder com a recompilao e testes. Em uma sesso de desenvolvimento, o tempo gasto seria mltiplas vezes superior ao tempo gasto com a utilizao dos comandos de tarefa. Para esse controle de tarefas so utilizados os comandos "bg" e "fg".

10.7 bg
sintectus.com//LicaoControlandoPr 4/8

03/03/2011

LicaoControlandoProcessos < GrupoLi bg a abreviao para background , e a funo principal deste comando de colocar os programas para rodarem em segundo plano.
Sintaxe:
bg %identificao_trabalho

onde identificao_trabalho o valor apresentado pelo comando jobs ou quando bg acionado para trazer o comando para foreground. Exemplo:
bg %2

O exemplo acima coloca o trabalho de nmero 2 em segundo plano. Ao executar um programa, pode ser desejvel coloc-lo imediatamente em segundo plano. Isso obtido atravs da seguinte sintaxe: Sintaxe:
programa &

Exemplo:
$xterm & [1] 1317

Nesse exemplo foi solicitado a abertura do xterm em background. Logo aps a solicitao apareceram dois valores e por ltimo foi devolvido o prompt de comando para o usurio. Os valores apresentados so um entre colchetes e outro sem colchetes. O valor entre colchetes representa o job (trabalho) ao qual esse programa est associado. Esse valor auto-incrementvel, e nico em uma determinada sesso em um determinado console. Esse o valor a ser utilizado em uma possvel chamada ao comando "fg". O segundo valor apresentado a identificao do processo ao qual esse programa pertence. O kill -9 pode enviar um sinal de parada do processo, e com isso terminar um programa. Com o segundo valor possvel parar o trabalho de processo em background. Mas ateno! O valor apresentado sem colchetes o "pid" para o background, assim que este terminar de processar, morrer automaticamente o processo e o programa solicitado poder ter um valor diferente do apresentado.

10.8 fg
Para trazer de volta a interatividade ao nosso editor de texto do exemplo anterior, utilizaramos o comando "fg", abreviao de foreground (viso superior, frente). Note que um programa em segundo plano pode at continuar gerando mensagens na tela, mas no consegue receber entrada de dados do usurio. O nmero de identificao da tarefa usada como argumento no comando "fg". Para ver as tarefas existentes em sua sesso, lembre-se do comando jobs. Sintaxe:
fg %x

ou
fg pid

onde pid o nmero identificador do processo.

sintectus.com//LicaoControlandoPr

5/8

03/03/2011
Exemplo:

LicaoControlandoProcessos < GrupoLi

$firefox & [1] 1738 [aluno@lab20 aluno]$fg %1 firefox

ou
$firefox & [1] 1738 $fg 1738 firefox

Em ambos os exemplos foi solicitado o netscape em background (com a utilizao do "&"), com os valores [1] (jobs) e o 1738 (pid). No exemplo acima, o programa firefox foi colocado para rodar em foreground com o seu nmero identificador de tarefa. No segundo exemplo foi colocado para rodar com o pid dado para o background, lembrando-se que o pid apresentado ao colocar um programa para ser aberto em background poder ser diferente do pid dado ao mesmo programa depois de aberto.

10.9 Prioridade de processos


Ao solicitar a abertura de um programa, criado uma tabela sobre o processo gerado, ficando armazenado todos os dados do mesmo. Quando um programa posto para processar, ele ir esperar, em uma fila, por sua hora de execuo no processador, porm possvel colocar prioridade sobre este programa no tempo do processador. Ao modificar a prioridade de um processo ele colocado em uma posio mais a frente na fila de processos sendo executado antes de outros com menor prioridade. Os nveis de prioridade pode variar entre -19 at 20, sendo que o nvel mais alto est em -19 variando sua importncia at o nvel mais baixo em 20. Os programas ao serem gerados tm inserido em sua tabela de processo o nvel 10, at mesmo para o superusurio, isso porque todos os usurios sero tratados iguais. Porm existe uma diferenciao quanto aos valores, pois os usurios comuns podem variar o nvel de prioridade dentro dos valores positivos (at 0) enquanto que o superusurio poder alcanar os valores negativos. O comando que realiza o controle destes nveis so o nice e o renice. A diferena entre esses dois comandos est no momento da passagem do valor de prioridade. Enquanto o nice dever passar o valor antes do processo ser inicializado, o renice pode alterar o valor do mesmo com o programa j em execuo.

10.10 nice
Sintaxe para o nice:
nice [prioridade] comando

Prioridade: -n - sendo que n o valor da prioridade a ser passada junto com o comando a ser executado

10.11 renice
Sintaxe para o renice:
renice [prioridade] [-p pid] [-g grupo] [-u usurio]

Prioridade: [+][-]n - sendo que n o valor da prioridade a ser passada

sintectus.com//LicaoControlandoPr

6/8

03/03/2011

LicaoControlandoProcessos < GrupoLi O valor da prioridade do renice pode variar entre -19 e 20, sendo que quanto menor o valor maior ser a sua prioridade.
Pid - o valor identificador do processo Grupo - utilize esta opo para alterar a prioridade de todos os processos executados por determinado grupo Usurio - utilize esta opo para alterar a prioridade de todos os processos executados por determinado usurio

10.12 Exerccios de Reviso


1. Redirecione para o arquivo root.txt todos os processos que esto sendo executados pelo root neste momento. 2. Qual a diferena entre os comandos top e ps? 3. Como utilizar o comando Kill? 4. Qual a diferena entre os comandos nice e renice?

10.13 - Direitos autorais e licena


Autor(es): Direito Autoral: Copyright Licena: Esta obra est licenciada sob uma Licena Creative Commons.

Anterior Trilha B

Prximo

10.14 - Comentrios
Adicionar

LicaoForm Titulo LicaoAnterior NivelAcima LicaoPosterior Licenca DireitoAutoral Autoria PreRequisitos SoftwareUtilizado Objetivo OrdemPadrao TrilhaPadrao Exibir anexos Editar | Anexar | Impresso | Texto Puro | Referncias: Web, Global | Histrico: Explicar como feito o controle de processos. 10 B Controlando Processos LicaoLocalizandoArquivos LicaoLoginDesligamentoReinicializacaodoSistema LicaoCompactandoDescompactandoArquivos LicencaCreativeCommonsBySA ?

sintectus.com//LicaoControlandoPr

7/8

03/03/2011

LicaoControlandoProcessos < GrupoLi


r13 < r12 < r11 < r10 < r9 | Mais aes de tpico

Copyright 2003 - 2011, pelos autores colaboradores. Todo o contedo desta pgina pode ser utilizado segundo os termos da Licena Creative Commons: Atribuio, Uso no Comercial e Permanncia da Licena, salvo disposio em contrrio indicada de forma explcita no tpico correspondente.

sintectus.com//LicaoControlandoPr

8/8

Você também pode gostar