Baixe o app para aproveitar ainda mais
Prévia do material em texto
Gerência de Processos Administração de Sistemas Abertos Professor: Anderson Costa E-mail: anderson@ifpb.edu.br Definição “Um processo é uma instância de um programa em execução em um computador” Criação de Processos no SO Primitiva fork Identificação PID Número de identificação do processo Inteiro não negativo PPID Número de identificação do pai do processo M e m ó r i a Init (Init) Proc A fork() (Proc A) Proc B fork() Init (PID=1) Proc A (PID=2, PPID=1) Proc B (PID=3, PPID=2) Proc C (PID=4, PPID=2) (Proc A) Proc C fork() Estados de um processo Executável (Running ou Runnable) Processo está ativo, podendo estar rodando ou esperando por tempo de processador Parado (Stopped) Processo suspenso por um processo externo Dormindo (Sleep) Processo está esperando um evento externo Leitura de dados do HD Entrada de dados via terminal Zumbi (Zombie) Processo terminou a execução, mas não teve seu status de saída coletado Prioridade de processos Processos possuem um valor de niceness (gentileza) Indica o tratamento que deve ser dado ao processo Valores de -20 a +19 Quanto maior mais “gentil” será o processo, isto é, menor a sua prioridade Filhos herdam niceness dos pais Usuários não podem mudar niceness acima do original Root pode Comando nice Utilizado na criação do processo nice -n 5 cp /backup.tar.gz /home/asa/backup/ O valor passado é um ajuste ao atual, isto é, o valor de niceness final será atual+5, no exemplo. Comando renice Utilizado quando o processo está em execução renice 5 4389 Valor passado é o valor final, o outro valor é o PID Listagem de processos Comando ps m Mostra nomes dos processos de Kernel entre colchetes ps aux Mostra percentual de memória e CPU ocupados, dono, PID, Estado... ps lax Mostra outras informações técnicas: PID, PPID, Nice, Estado... ps -eo cdm,ppid,pid Mostra apenas o comando, o PPID e o PID, nesta ordem. Comando top Mostra os processos de maneira dinâmica Comando pstree Mostra a árvore dos processos Pais e seus respectivos filhos Forma comum: pstree -A Listagem de processos Comando ps aux Listagem de processos Comando ps lax Listagem de processos (ps) • Informações sobre processos e seus atributos. ps (processos do usuário). ps -a (todos os processos). ps -e (variáveis do Linux ligadas ao processo). ps -f (árvore de processos). ps -l (mais campos são exibidos). ps -m (memória ocupada pelo processo). ps -u (usuário e hora de início do processo). ps -x (processos sem terminais). ps -w (informações muito grandes na linha seguinte). Listagem de processos (Campos do ps) • USER – nome do dono do processo. • UID – número do dono do processo. • PID – identificação do processo. • PPID – identificação do processo pai. • %CPU - % de cpu usado pelo processo. • %MEM - % de memória usada pelo processo. • VSZ – tamanho virtual do processo. • RSS – quantidade de memória usada. • TTY – identificador do terminal do processo. • START – hora que o processo iniciou. • TIME – tempo que o processo está rodando. • COMMAND – nome do comando que executa o processo. • PRI – valor da prioridade do processo. • NI – valor preciso da prioridade. • WCHAN – função do kernel onde o processo está no modo suspenso. Listagem de processos (Campos do ps) • STAT – indica o estado atual do processo que pode assumir uma das seguintes letras: R – executando D – esperando o disco S – suspenso (dormindo menos que 20s) T – interrompido (parado) Z – zumbi Flags adicionais W – processo com página em disco < - prioridade maior do que o comum N – prioridade menor que o comum L – alguns recursos bloqueados pelo kernel Listagem de processos (Estados) - STAT D processo dormindo interruptamente (normalmente IO) R running ( na fila de processos) S dormindo interruptamente (aguardando um evento terminar) T parado, por um sinal de controle Z zombie, terminado mas removido por seu processo pai X processo morto Junto a essas letras podemos encontrar outros caracteres cujos significados são: > o processo está rodando com prioridade maior que a padrão, tendo sido definida pelo kernel < o processo está rodando com prioridade menor que a padrão, tendo sido definida pelo kernel + o processo é um processo pai, ou seja, possui processos filhos s o processo é um session leader, ou seja, possui processos que dependem dele l o processo possui múltiplas threads L o processo possui páginas travadas na memória N o processo foi definido com uma prioridade diferente da padrão, tendo sido definida pelo usuário Listagem de processos (Opções do top) top -d 30 (atualiza o top a cada 30 segundos). top -c (exibe a linha de comando). top -i (não mostra processos zumbis). Barra de espaço (atualiza o top na hora). q (top termina) h (help do top) Comandos FUSER e NOHUP fuser: Exibe e acessa o processo que utiliza determinado arquivo ou diretório. fuser -v caminho (mostra os processos). nohup: Processo fica ativo mesmo quando o usuário faz logout. nohup comando demorado. Finalização de processos (1) Comando kill Utilizado para enviar sinais para processos específicos Precisa saber o PID do processo Sinais mais comuns INT (2): Interrompe a execução da operação atual do programa Ocorre quando usamos Ctrl+c TERM (15): Termina o processo completamente Opção default do kill KILL (9): Mata o processo em nível de Kernel Usado em situações críticas STOP: Coloca o processo em estado parado Ocorre quando usamos Ctrl+z CONT: Retorna um processo parado Finalização de processos (2) Comando kill Exemplo kill -9 8195 kill 8121 kill -stop 4230 (faz o processo 4230 parar) kill -cont 4220 (continua processo 4220) kill -stop -1 (para todos os processos) Comando killall Mata os processos pelo nome Utiliza os mesmos conjuntos de sinais Exemplo killall bash killall -9 processo-relutante Foreground e o Background (1) Processos em background são aqueles que não estão atrelados a um terminal Serviços Processos demorados Quando temos apenas um terminal disponível Processo de Foreground está atrelado ao terminal Usualmente cada terminal possui um único processo em foreground Pode ter outros em foreground mas parados ForegroundBackground Foreground e o Background (2) Para iniciar um processo em background adicionar & ao final do comando tar xzf backup.tar.gz & cp /home/user /media/backup/ comando jobs Lista os processos em parados ou em background Atribui um número para cada processo comando fg +<num> Traz os processos para o foreground comando bg +<num> Coloca processos em background Os processos precisam estar anteriormente parados Uso do Ctrl+Z fg bg ForegroundBackground Gerência de Processos Administração de Sistemas Abertos Professor: Anderson Costa E-mail: anderson@ifpb.edu.br
Compartilhar