SlideShare une entreprise Scribd logo
1  sur  18
Gerência de processos
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. (ALECRIM,
2005)

Um processo pode ser descrito como parte de um programa que está aparentemente
rodando. Este aparente existe somente pelo fato de que determinado processo pode
entrar e sair diversas vezes do processador em um único segundo, e em um
determinado momento ele pode não estar no processador e mesmo assim
aparentemente estar rodando.

Como qualquer sistema de compartilhamento de tempo o Linux consegue dar a
impressão de execução simultânea dos processos, separando um espaço bastante
curto de tempo para cada um deles. Para ter sucesso nesta tarefa ele segue uma série
de regras que não desperdiça tempo de hardware com operações desnecessárias e
consegue escolher qual processo deve ser executado naquele exato momento.

O que decide essa escolha no kernel é o escalonador de processos, que em grande
parte é responsável pela produtividade e eficiência do sistema. Mais do que um simples
mecanismo de divisão de tempo, ele é responsável por uma política de tratamento dos
processos que permite os melhores resultados possíveis.
Gerência de processos
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.
Escalonamento Circular com Prioridades: implementa o conceito de fatia de tempo e de
prioridade de execução associada a cada processo. Neste escalonamento, um processo
permanece no estado de execução até que termine seu processamento, ou voluntariamente
passe para o estado de espera (interrupção por E/S), ou sofra uma preempção por tempo
ou prioridade.
A principal vantagem deste escalonamento é permitir um melhor balanceamento no uso do
processador, com a possibilidade de diferenciar o grau de importância dos processos
através da prioridade (o Windows e o Unix utilizam este escalonamento).
Gerência de processos

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.
Gerência de processos
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.
Sinais de processos
Os sinais são meios usados para que os processos possam se comunicar e para que o
sistema possa interferir em seu funcionamento.
Por exemplo, se o usuário executar o comando kill para interromper um processo, isso
será feito por meio de um sinal. Quando um processo recebe um determinado sinal e
conta com instruções sobre o que fazer com ele, tal ação é colocada em prática. Se não
houver instruções pré-programadas, o próprio Linux pode executar a ação de acordo com
suas rotinas. Entre os sinais existentes, tem-se os seguintes exemplos:

STOP - esse sinal tem a função de interromper a execução de um processo e só reativá-
lo após o recebimento do sinal CONT;

CONT - esse sinal tem a função de instruir a execução de um processo após este ter sido
interrompido;

SEGV - esse sinal informa erros de endereços de memória;

TERM - esse sinal tem a função de terminar completamente o processo, ou seja, este
deixa de existir após a finalização;

ILL - esse sinal informa erros de instrução ilegal, por exemplo, quando ocorre divisão por
zero;
Comandos Linux
                           Gerência de Processos
kill- Esse sinal tem a função de "matar" um processo e é usado em momentos de
criticidade. O kill também é um comando que o usuário pode usar para enviar qualquer sinal,
porém, se ele for usado de maneira isolada, ou seja, sem o parâmetro de um sinal, o kill por
padrão executa o sinal TERM.
A sintaxe para a utilização do comando kill é a seguinte:
                                kill -SINAL PID
Como exemplo, vamos supor que você deseja interromper temporariamente a execução do
processo de PID 4220. Para isso, pode-se usar o seguinte comando:
kill -STOP 4220
Para que o processo 4220 volte a ser executado, basta usar o comando:
kill -CONT 4220
Comandos Linux
                        Gerência de Processos

Se o sinal precisa ser enviado a todos os processos, pode-se usar o número -1 no lugar
do PID. Por exemplo:
kill -STOP -1
Como já dito, usar o comando kill isoladamente - por exemplo, kill 4220 - faz com que
este use o sinal TERM por padrão. Esse sinal, no entanto, pode ser ignorado pelos
processos. É por isso que é boa prática usar o comando "kill -9 PID" para "matar" um
processo, pois o número nove representa o sinal kill e este não pode ser ignorado. Isso
deixa claro que se você conhecer o número que é atribuído a um sinal, você pode usá-lo
no lugar de seu nome. Com exceção de alguns sinais, a numeração de cada um pode
mudar de acordo com a distribuição ou com a versão do kernel.
Também é comum usar o kill da seguinte forma: kill -l PID. A opção "-l" (letra L
minúscula) é usada para listar os processos que aceitaram o kill.
Agora, imagine que você não saiba qual o PID de um processo e tenha se esquecido que
o comando ps (visto mais à frente) descobre tal informação. Neste caso, pode-se usar o
comando killall, desde que você saiba o nome do processo. A sintaxe é:
                             killall -SINAL processo
Por exemplo:
killall -STOP vi
Estado dos processos
Quando um processo é criado, isso não significa que ele será imediatamente
executado. Além disso, determinados processos podem ser temporariamente
paralisados para que o processador possa executar um processo prioritário. Isso quer
dizer que os processos, em certos momentos, podem estar em situações de execução
diferentes. O Linux trabalha, essencialmente, com quatro tipos de situação, isto é,
estados:

Executável: o processo pode ser executado imediatamente;
Dormente: o processo precisa aguardar alguma coisa para ser executado. Só depois
dessa "coisa" acontecer é que ele passa para o estado executável;
Zumbi: o processo é considerado "morto", mas, por alguma razão, ainda existe;
Parado: o processo está "congelado", ou seja, não pode ser executado.
Comandos nice e renice
“Gentileza”: Permite que um processo com prioridade maior que a sua seja executado antes dele. Os
níveis de gentileza, também chamados de nice, são determinados através de números. Quanto mais alto
for o valor nice, mais gentil é o processo.
Geralmente, o intervalo de números usados no nice são os inteiros entre -19 e 19.
Não é uma prática comum, afinal, o próprio Linux faz muito bem essa tarefa, isso pode ser necessário
em alguma situação. Para isso, utiliza-se um comando que recebe o mesmo nome do conceito:
                                        nice -n prioridade processo

Exemplo:
nice -n -5 ntpd
No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como já dito, quanto
menor o número menor sua gentileza.
Se um determinado processo está em execução, isso acontece com uma prioridade já definida. Para
alterar um processo nessa condição, usa-se o comando renice, cuja sintaxe é:

                              renice prioridade opção processo/destino

As opções do renice são:
-u - a alteração ocorrerá nos processos do usuário informado;
-g - a alteração ocorrerá nos processos do grupo indicado;
-p - a alteração ocorrerá no processo cujo PID for informado.
Um exemplo:
renice +19 1000 -u infowester
Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a prioridade dos
processos do usuário infowester.
Comandos Linux
                          Gerência de Processos
ps - Como já vimos, o ps é um comando de extrema importância para o gerenciamento
de processos. Por ele, é possível saber quais os processos em execução atualmente, quais
os UIDs e PIDs correspondentes, entre outros. Se somente ps for digitado na linha de
comando, geralmente o sistema mostra quais os processos do usuário. É preciso usar uma
combinação de opções para obter mais detalhes.

As opções mais importantes são os seguintes:
a - mostra todos os processos existentes;
e - exibe as variáveis de ambiente relacionadas aos processos;
f - exibe a árvore de execução dos processos;
l - exibe mais campos no resultado;
m - mostra a quantidade de memória ocupada por cada processo;
u - exibe o nome do usuário que iniciou determinado processo e a hora em que isso ocorreu;
x - exibe os processos que não estão associados a terminais;
w - se o resultado de processo não couber em uma linha, essa opção faz com que o restante
seja exibido na linha seguinte.
Note que usando a combinação lax, o resultado mostra mais detalhes:
ps lax
A seguir, segue a descrição dos campos mostrados anteriormente e alguns que só são mostrados
com a combinação lax:
USER - nome do usuário dono do processo;
UID - número de identificação do usuário dono do processo;
PID - número de identificação do processo;
PPID - número de identificação do processo pai;
%CPU - porcentagem do processamento usado;
%MEM - porcentagem da memória usada;
VSZ - indica o tamanho virtual do processo;
RSS - sigla de Resident Set Size, indica a quantidade de memória usada (em KB);
TTY - indica o identificador do terminal do processo;
START - hora em que o processo foi iniciado;
TIME - tempo de processamento já consumido pelo processo;
COMMAND - nome do comando que executa aquele processo;
PRI - valor da prioridade do processo;
NI - valor preciso da prioridade (geralmente igual aos valores de PRI);
WCHAN - mostra a função do kernel onde o processo se encontra em modo suspenso;
STAT - indica o estado atual do processo, sendo representado por uma letra:
R - executável;
D - em espera no disco;
S - Suspenso;
T - interrompido;
Z - Zumbi. Essas letras podem ser combinadas e ainda acrescidas de: W - processo paginado em
disco; < - processo com prioridade maior que o convencional; N - processo com prioridade menor
que o convencional; L - processo com alguns recursos bloqueados no kernel.
Comandos Linux
                          Gerência de Processos

top- O comando ps trabalha como se tirasse uma fotografia da situação dos
processos naquele momento. O comando top, por sua vez, coleta as informações, mas
as atualiza regularmente. Geralmente essa atualização ocorre a cada 10 segundos.
A sintaxe do comando top é a seguinte:


                                  top -opção
Entre as opções, tem-se as que se seguem:
-d - atualiza o top após um determinado período de tempo (em segundos). Para isso,
informe a quantidade de segundos após a letra d. Por exemplo: top -d 30;
-c - exibe a linha de comando ao invés do nome do processo;
-i - faz o top ignorar processos em estado zumbi;
-s - executa o top em modo seguro.
É possível manipular alguns recursos do comando top através das teclas do teclado. Por
exemplo, para atualizar imediatamente o resultado exibido, basta pressionar a tecla de
espaço. Se pressionar a tecla q, o top é finalizado. Pressione a tecla h enquanto estiver
utilizando o top para ver a lista completa de opções e teclas de atalho.
Comandos Linux
                       Gerência de Processos
jobs - Serve para visualizar os processos que estão parados ou executando em
segundo plano (background). Quando um processo está nessa condição, significa sua
execução é feita pelo kernel sem que esteja vinculada a um terminal. Em outras
palavras, um processo em segundo plano é aquele que é executado enquanto o
usuário faz outra coisa no sistema. Uma dica para saber se o processo está em
background é verificar a existência do caractere & no final da linha. Se o processo
estiver parado, geralmente a palavra "stopped" aparece na linha, do contrário, a
palavra "running" é exibida. A sintaxe do jobs é:


                                   jobs -opção
As opções disponíveis são:
-l - lista os processos através do PID;
-r - lista apenas os processos em execução;
-s - lista apenas os processos parados.
Se na linha de um processo aparecer o sinal positivo (+), significa que este é o
processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal for
negativo (-), o processo foi o penúltimo. Note também que no início da linha um número
é mostrado entre colchetes. Muitos confundem esse valor com o PID do processo,
mas, na verdade, trata-se do número de ordem usado pelo jobs.
Comandos Linux
                            Gerência de Processos
bg: Coloca a última tarefa que estiver em segundo plano em execução (ainda em
segundo plano).Pode-se especificar uma tarefa utilizando-se o símbolo “%” e seu número
identificador: utilizando-se o símbolo “%” e seu número identificador:
                                     bg +número


fg: Traz a última traefa do segundo plano para o primeiro planos. Pode-se especificar
uma tarefa utilizando-se o símbolo “%” e seu número identificador:
                                     fg +número


fuser: o comando fuser mostra qual processo faz uso de um determinado arquivo ou
diretório. Sua sintaxe é:
                fuser -opção caminho (do arquivo ou diretório)
Entre as opções, tem-se:
-k - finaliza o processo que utiliza o arquivo/diretório em questão;
-i - deve ser usada em conjunto com a opção k e serve para perguntar se a finalização do
processo deve ser feita;
-u - mostra o proprietário do processo;
-v - o resultado é mostrado em um padrão de exibição semelhante ao comando ps.
Comandos Linux
                          Gerência de Processos
pstree -       Esse comando mostra processos relacionados em formato de árvore. Sua
sintaxe é:
                         $ pstree -opção PID
Entre as opções, tem-se:
-u - mostra o proprietário do processo;
-p - exibe o PID após o nome do processo;
-c - mostra a relação de processos ativos;
-G - usa determinados caracteres para exibir o resultado em um formato gráfico.
Um detalhe importante: se ao digitar o comando pstree o PID não for informado, todos os
processos serão listados.
Gerenciador de processos

Lembra do Gerenciador de tarefas do Windows? O Ubuntu possui algo semelhante que pode
ser acessado na guia “Processos” pelo caminho Sistema > Administração > Monitor do
Sistema.

Contenu connexe

Tendances

Evolução dos sistemas operativos da windows
Evolução dos sistemas operativos da windowsEvolução dos sistemas operativos da windows
Evolução dos sistemas operativos da windowsFrogFAT
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsJoeldson Costa Damasceno
 
Informática Básica Parte 5 - Internet conhecimentos básicos
Informática Básica Parte 5 - Internet conhecimentos básicosInformática Básica Parte 5 - Internet conhecimentos básicos
Informática Básica Parte 5 - Internet conhecimentos básicosMaurício V.Pires
 
curso de computador bom e completo
curso de computador bom e completocurso de computador bom e completo
curso de computador bom e completomurilosoldier
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processosComputação Depressão
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosCarlos Eduardo Teruel
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 

Tendances (20)

Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Evolução dos sistemas operativos da windows
Evolução dos sistemas operativos da windowsEvolução dos sistemas operativos da windows
Evolução dos sistemas operativos da windows
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional Windows
 
Informática Básica Parte 5 - Internet conhecimentos básicos
Informática Básica Parte 5 - Internet conhecimentos básicosInformática Básica Parte 5 - Internet conhecimentos básicos
Informática Básica Parte 5 - Internet conhecimentos básicos
 
curso de computador bom e completo
curso de computador bom e completocurso de computador bom e completo
curso de computador bom e completo
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Aula sobre Linux.
Aula sobre Linux. Aula sobre Linux.
Aula sobre Linux.
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos Básicos
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Linux para leigos
Linux para leigos Linux para leigos
Linux para leigos
 

En vedette

Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaAlexandre Duarte
 
Dispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massaDispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massaelliando dias
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processosCarlos Melo
 
Estrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas OperacionaisEstrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas OperacionaisSuliane Carneiro
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIsaac Vieira
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoLuiz Arthur
 
Comandos, Permissões e Partições Linux
Comandos, Permissões e Partições LinuxComandos, Permissões e Partições Linux
Comandos, Permissões e Partições LinuxVirgínia
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processosTalles Nascimento Rodrigues
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Sistemas Operacionais (Windows X Linux)
Sistemas Operacionais (Windows X Linux)Sistemas Operacionais (Windows X Linux)
Sistemas Operacionais (Windows X Linux)Paulo Guimarães
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaWellington Oliveira
 
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12
Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12Rodrigo Botelho
 

En vedette (20)

Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
 
Dispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massaDispositivos de Armazenamento em massa
Dispositivos de Armazenamento em massa
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processos
 
Estrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas OperacionaisEstrutura de Processos em Sistemas Operacionais
Estrutura de Processos em Sistemas Operacionais
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas Operacionais
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Comandos, Permissões e Partições Linux
Comandos, Permissões e Partições LinuxComandos, Permissões e Partições Linux
Comandos, Permissões e Partições Linux
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Sistemas Operacionais (Windows X Linux)
Sistemas Operacionais (Windows X Linux)Sistemas Operacionais (Windows X Linux)
Sistemas Operacionais (Windows X Linux)
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Sistemas Operacionais para Servidores
Sistemas Operacionais para ServidoresSistemas Operacionais para Servidores
Sistemas Operacionais para Servidores
 
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12
Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12Sistemas Operacionais   GerêNcia De Dispositivos De Io   CapíTulo 12
Sistemas Operacionais GerêNcia De Dispositivos De Io CapíTulo 12
 

Similaire à Gerência de processos

Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosLuiz Arthur
 
(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processos(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processosAnderson Lago
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSLucasNogueira565696
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
Sistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - ProcessosSistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - ProcessosMauro Duarte
 
Linux - Inicialização e Gerenciamento de Processos
Linux - Inicialização e Gerenciamento de ProcessosLinux - Inicialização e Gerenciamento de Processos
Linux - Inicialização e Gerenciamento de ProcessosFrederico Madeira
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosFábio dos Reis
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linuxFábio dos Reis
 
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no LinuxFLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no LinuxPaulo Henrique
 

Similaire à Gerência de processos (20)

Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
 
(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processos(08)inicializacao e gerencia_de_processos
(08)inicializacao e gerencia_de_processos
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OS
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Sistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - ProcessosSistemas Operacionais - 04 - Processos
Sistemas Operacionais - 04 - Processos
 
Linux - Inicialização e Gerenciamento de Processos
Linux - Inicialização e Gerenciamento de ProcessosLinux - Inicialização e Gerenciamento de Processos
Linux - Inicialização e Gerenciamento de Processos
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
S.o aula 9101112
S.o aula 9101112S.o aula 9101112
S.o aula 9101112
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson Treinamentos
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Processos
ProcessosProcessos
Processos
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linux
 
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no LinuxFLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
FLISOL 2013 - Aprendendo Tarefas Administrativas de Segurança no Linux
 
Aula3so
Aula3soAula3so
Aula3so
 
S.o aula 5678
S.o aula 5678S.o aula 5678
S.o aula 5678
 
Gerencia Básica Gnu/Linux
Gerencia Básica Gnu/LinuxGerencia Básica Gnu/Linux
Gerencia Básica Gnu/Linux
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 

Plus de Virgínia

Versões Windows e Gerenciamento de Usuários
Versões Windows e Gerenciamento de UsuáriosVersões Windows e Gerenciamento de Usuários
Versões Windows e Gerenciamento de UsuáriosVirgínia
 
Sistema de arquivos
Sistema de arquivosSistema de arquivos
Sistema de arquivosVirgínia
 
Gerenciamento de usuários e grupos
Gerenciamento de usuários e gruposGerenciamento de usuários e grupos
Gerenciamento de usuários e gruposVirgínia
 
Linux, distribuições e comandos
Linux, distribuições e comandosLinux, distribuições e comandos
Linux, distribuições e comandosVirgínia
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisVirgínia
 

Plus de Virgínia (6)

Versões Windows e Gerenciamento de Usuários
Versões Windows e Gerenciamento de UsuáriosVersões Windows e Gerenciamento de Usuários
Versões Windows e Gerenciamento de Usuários
 
Sistema de arquivos
Sistema de arquivosSistema de arquivos
Sistema de arquivos
 
Windows
WindowsWindows
Windows
 
Gerenciamento de usuários e grupos
Gerenciamento de usuários e gruposGerenciamento de usuários e grupos
Gerenciamento de usuários e grupos
 
Linux, distribuições e comandos
Linux, distribuições e comandosLinux, distribuições e comandos
Linux, distribuições e comandos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 

Gerência de processos

  • 1. Gerência de processos 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. (ALECRIM, 2005) Um processo pode ser descrito como parte de um programa que está aparentemente rodando. Este aparente existe somente pelo fato de que determinado processo pode entrar e sair diversas vezes do processador em um único segundo, e em um determinado momento ele pode não estar no processador e mesmo assim aparentemente estar rodando. Como qualquer sistema de compartilhamento de tempo o Linux consegue dar a impressão de execução simultânea dos processos, separando um espaço bastante curto de tempo para cada um deles. Para ter sucesso nesta tarefa ele segue uma série de regras que não desperdiça tempo de hardware com operações desnecessárias e consegue escolher qual processo deve ser executado naquele exato momento. O que decide essa escolha no kernel é o escalonador de processos, que em grande parte é responsável pela produtividade e eficiência do sistema. Mais do que um simples mecanismo de divisão de tempo, ele é responsável por uma política de tratamento dos processos que permite os melhores resultados possíveis.
  • 2. Gerência de processos 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.
  • 3. Escalonamento Circular com Prioridades: implementa o conceito de fatia de tempo e de prioridade de execução associada a cada processo. Neste escalonamento, um processo permanece no estado de execução até que termine seu processamento, ou voluntariamente passe para o estado de espera (interrupção por E/S), ou sofra uma preempção por tempo ou prioridade. A principal vantagem deste escalonamento é permitir um melhor balanceamento no uso do processador, com a possibilidade de diferenciar o grau de importância dos processos através da prioridade (o Windows e o Unix utilizam este escalonamento).
  • 4. Gerência de processos 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.
  • 5. Gerência de processos 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.
  • 6. Sinais de processos Os sinais são meios usados para que os processos possam se comunicar e para que o sistema possa interferir em seu funcionamento. Por exemplo, se o usuário executar o comando kill para interromper um processo, isso será feito por meio de um sinal. Quando um processo recebe um determinado sinal e conta com instruções sobre o que fazer com ele, tal ação é colocada em prática. Se não houver instruções pré-programadas, o próprio Linux pode executar a ação de acordo com suas rotinas. Entre os sinais existentes, tem-se os seguintes exemplos: STOP - esse sinal tem a função de interromper a execução de um processo e só reativá- lo após o recebimento do sinal CONT; CONT - esse sinal tem a função de instruir a execução de um processo após este ter sido interrompido; SEGV - esse sinal informa erros de endereços de memória; TERM - esse sinal tem a função de terminar completamente o processo, ou seja, este deixa de existir após a finalização; ILL - esse sinal informa erros de instrução ilegal, por exemplo, quando ocorre divisão por zero;
  • 7. Comandos Linux Gerência de Processos kill- Esse sinal tem a função de "matar" um processo e é usado em momentos de criticidade. O kill também é um comando que o usuário pode usar para enviar qualquer sinal, porém, se ele for usado de maneira isolada, ou seja, sem o parâmetro de um sinal, o kill por padrão executa o sinal TERM. A sintaxe para a utilização do comando kill é a seguinte: kill -SINAL PID Como exemplo, vamos supor que você deseja interromper temporariamente a execução do processo de PID 4220. Para isso, pode-se usar o seguinte comando: kill -STOP 4220 Para que o processo 4220 volte a ser executado, basta usar o comando: kill -CONT 4220
  • 8. Comandos Linux Gerência de Processos Se o sinal precisa ser enviado a todos os processos, pode-se usar o número -1 no lugar do PID. Por exemplo: kill -STOP -1 Como já dito, usar o comando kill isoladamente - por exemplo, kill 4220 - faz com que este use o sinal TERM por padrão. Esse sinal, no entanto, pode ser ignorado pelos processos. É por isso que é boa prática usar o comando "kill -9 PID" para "matar" um processo, pois o número nove representa o sinal kill e este não pode ser ignorado. Isso deixa claro que se você conhecer o número que é atribuído a um sinal, você pode usá-lo no lugar de seu nome. Com exceção de alguns sinais, a numeração de cada um pode mudar de acordo com a distribuição ou com a versão do kernel. Também é comum usar o kill da seguinte forma: kill -l PID. A opção "-l" (letra L minúscula) é usada para listar os processos que aceitaram o kill. Agora, imagine que você não saiba qual o PID de um processo e tenha se esquecido que o comando ps (visto mais à frente) descobre tal informação. Neste caso, pode-se usar o comando killall, desde que você saiba o nome do processo. A sintaxe é: killall -SINAL processo Por exemplo: killall -STOP vi
  • 9. Estado dos processos Quando um processo é criado, isso não significa que ele será imediatamente executado. Além disso, determinados processos podem ser temporariamente paralisados para que o processador possa executar um processo prioritário. Isso quer dizer que os processos, em certos momentos, podem estar em situações de execução diferentes. O Linux trabalha, essencialmente, com quatro tipos de situação, isto é, estados: Executável: o processo pode ser executado imediatamente; Dormente: o processo precisa aguardar alguma coisa para ser executado. Só depois dessa "coisa" acontecer é que ele passa para o estado executável; Zumbi: o processo é considerado "morto", mas, por alguma razão, ainda existe; Parado: o processo está "congelado", ou seja, não pode ser executado.
  • 10. Comandos nice e renice “Gentileza”: Permite que um processo com prioridade maior que a sua seja executado antes dele. Os níveis de gentileza, também chamados de nice, são determinados através de números. Quanto mais alto for o valor nice, mais gentil é o processo. Geralmente, o intervalo de números usados no nice são os inteiros entre -19 e 19. Não é uma prática comum, afinal, o próprio Linux faz muito bem essa tarefa, isso pode ser necessário em alguma situação. Para isso, utiliza-se um comando que recebe o mesmo nome do conceito: nice -n prioridade processo Exemplo: nice -n -5 ntpd No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como já dito, quanto menor o número menor sua gentileza. Se um determinado processo está em execução, isso acontece com uma prioridade já definida. Para alterar um processo nessa condição, usa-se o comando renice, cuja sintaxe é: renice prioridade opção processo/destino As opções do renice são: -u - a alteração ocorrerá nos processos do usuário informado; -g - a alteração ocorrerá nos processos do grupo indicado; -p - a alteração ocorrerá no processo cujo PID for informado. Um exemplo: renice +19 1000 -u infowester Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a prioridade dos processos do usuário infowester.
  • 11. Comandos Linux Gerência de Processos ps - Como já vimos, o ps é um comando de extrema importância para o gerenciamento de processos. Por ele, é possível saber quais os processos em execução atualmente, quais os UIDs e PIDs correspondentes, entre outros. Se somente ps for digitado na linha de comando, geralmente o sistema mostra quais os processos do usuário. É preciso usar uma combinação de opções para obter mais detalhes. As opções mais importantes são os seguintes: a - mostra todos os processos existentes; e - exibe as variáveis de ambiente relacionadas aos processos; f - exibe a árvore de execução dos processos; l - exibe mais campos no resultado; m - mostra a quantidade de memória ocupada por cada processo; u - exibe o nome do usuário que iniciou determinado processo e a hora em que isso ocorreu; x - exibe os processos que não estão associados a terminais; w - se o resultado de processo não couber em uma linha, essa opção faz com que o restante seja exibido na linha seguinte.
  • 12.
  • 13. Note que usando a combinação lax, o resultado mostra mais detalhes: ps lax A seguir, segue a descrição dos campos mostrados anteriormente e alguns que só são mostrados com a combinação lax: USER - nome do usuário dono do processo; UID - número de identificação do usuário dono do processo; PID - número de identificação do processo; PPID - número de identificação do processo pai; %CPU - porcentagem do processamento usado; %MEM - porcentagem da memória usada; VSZ - indica o tamanho virtual do processo; RSS - sigla de Resident Set Size, indica a quantidade de memória usada (em KB); TTY - indica o identificador do terminal do processo; START - hora em que o processo foi iniciado; TIME - tempo de processamento já consumido pelo processo; COMMAND - nome do comando que executa aquele processo; PRI - valor da prioridade do processo; NI - valor preciso da prioridade (geralmente igual aos valores de PRI); WCHAN - mostra a função do kernel onde o processo se encontra em modo suspenso; STAT - indica o estado atual do processo, sendo representado por uma letra: R - executável; D - em espera no disco; S - Suspenso; T - interrompido; Z - Zumbi. Essas letras podem ser combinadas e ainda acrescidas de: W - processo paginado em disco; < - processo com prioridade maior que o convencional; N - processo com prioridade menor que o convencional; L - processo com alguns recursos bloqueados no kernel.
  • 14. Comandos Linux Gerência de Processos top- O comando ps trabalha como se tirasse uma fotografia da situação dos processos naquele momento. O comando top, por sua vez, coleta as informações, mas as atualiza regularmente. Geralmente essa atualização ocorre a cada 10 segundos. A sintaxe do comando top é a seguinte: top -opção Entre as opções, tem-se as que se seguem: -d - atualiza o top após um determinado período de tempo (em segundos). Para isso, informe a quantidade de segundos após a letra d. Por exemplo: top -d 30; -c - exibe a linha de comando ao invés do nome do processo; -i - faz o top ignorar processos em estado zumbi; -s - executa o top em modo seguro. É possível manipular alguns recursos do comando top através das teclas do teclado. Por exemplo, para atualizar imediatamente o resultado exibido, basta pressionar a tecla de espaço. Se pressionar a tecla q, o top é finalizado. Pressione a tecla h enquanto estiver utilizando o top para ver a lista completa de opções e teclas de atalho.
  • 15. Comandos Linux Gerência de Processos jobs - Serve para visualizar os processos que estão parados ou executando em segundo plano (background). Quando um processo está nessa condição, significa sua execução é feita pelo kernel sem que esteja vinculada a um terminal. Em outras palavras, um processo em segundo plano é aquele que é executado enquanto o usuário faz outra coisa no sistema. Uma dica para saber se o processo está em background é verificar a existência do caractere & no final da linha. Se o processo estiver parado, geralmente a palavra "stopped" aparece na linha, do contrário, a palavra "running" é exibida. A sintaxe do jobs é: jobs -opção As opções disponíveis são: -l - lista os processos através do PID; -r - lista apenas os processos em execução; -s - lista apenas os processos parados. Se na linha de um processo aparecer o sinal positivo (+), significa que este é o processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal for negativo (-), o processo foi o penúltimo. Note também que no início da linha um número é mostrado entre colchetes. Muitos confundem esse valor com o PID do processo, mas, na verdade, trata-se do número de ordem usado pelo jobs.
  • 16. Comandos Linux Gerência de Processos bg: Coloca a última tarefa que estiver em segundo plano em execução (ainda em segundo plano).Pode-se especificar uma tarefa utilizando-se o símbolo “%” e seu número identificador: utilizando-se o símbolo “%” e seu número identificador: bg +número fg: Traz a última traefa do segundo plano para o primeiro planos. Pode-se especificar uma tarefa utilizando-se o símbolo “%” e seu número identificador: fg +número fuser: o comando fuser mostra qual processo faz uso de um determinado arquivo ou diretório. Sua sintaxe é: fuser -opção caminho (do arquivo ou diretório) Entre as opções, tem-se: -k - finaliza o processo que utiliza o arquivo/diretório em questão; -i - deve ser usada em conjunto com a opção k e serve para perguntar se a finalização do processo deve ser feita; -u - mostra o proprietário do processo; -v - o resultado é mostrado em um padrão de exibição semelhante ao comando ps.
  • 17. Comandos Linux Gerência de Processos pstree - Esse comando mostra processos relacionados em formato de árvore. Sua sintaxe é: $ pstree -opção PID Entre as opções, tem-se: -u - mostra o proprietário do processo; -p - exibe o PID após o nome do processo; -c - mostra a relação de processos ativos; -G - usa determinados caracteres para exibir o resultado em um formato gráfico. Um detalhe importante: se ao digitar o comando pstree o PID não for informado, todos os processos serão listados.
  • 18. Gerenciador de processos Lembra do Gerenciador de tarefas do Windows? O Ubuntu possui algo semelhante que pode ser acessado na guia “Processos” pelo caminho Sistema > Administração > Monitor do Sistema.