Processos Processos 11
ProcessosProcessos
Processos Processos 22
ProcessosProcessos
Abstração do UNIX para gerência de Abstração do UNIX para gerência de memória, CPU e recursos de I/O;memória, CPU e recursos de I/O;
É um conjunto de dados e instruções que É um conjunto de dados e instruções que são executadas, em geral sem compartilhar são executadas, em geral sem compartilhar o seu próprio espaço de endereçamento o seu próprio espaço de endereçamento virtual;virtual;
Um programa/job pode necessitar de vários Um programa/job pode necessitar de vários processos até seu término.processos até seu término.
Processos Processos 33
ProcessosProcessos
Um comando simples (ls por exemplo) será Um comando simples (ls por exemplo) será executado por apenas um processo;executado por apenas um processo;
O administrador tem a incumbência de O administrador tem a incumbência de monitorar o status dos processos, monitorar o status dos processos, controlar quanto do tempo da CPU um controlar quanto do tempo da CPU um processo gasta, enviar sinais para um processo gasta, enviar sinais para um processo e suspender sua execução processo e suspender sua execução quando necessário.quando necessário.
Processos Processos 44
Componentes de um ProcessoComponentes de um Processo
Espaço de endereçamentoEspaço de endereçamento Código do programa e variáveis usadasCódigo do programa e variáveis usadas Pilha do processoPilha do processo Outras informações necessáriasOutras informações necessárias
Estruturas de dados internas ao kernelEstruturas de dados internas ao kernel Localização do espaço de endereçamentoLocalização do espaço de endereçamento Status correnteStatus corrente Prioridade de execuçãoPrioridade de execução Informações acerca dos recursos usadosInformações acerca dos recursos usados A máscara de sinal do processoA máscara de sinal do processo Identificação do proprietárioIdentificação do proprietário
Processos Processos 55
Tipos de ProcessosTipos de Processos
Processos interativosProcessos interativos SS₧₧o inicializados e controlados por uma sessão o inicializados e controlados por uma sessão
de terminalde terminal Executados em foregroundExecutados em foreground
Estão ligados a um terminal para entrada e saída de Estão ligados a um terminal para entrada e saída de dadosdados
Executados em backgroundExecutados em background Não estão ligados a nenhum terminalNão estão ligados a nenhum terminal
DaemonsDaemons São processos servidores, geralmente São processos servidores, geralmente
inicializados no boot da máquina (background)inicializados no boot da máquina (background)
Processos Processos 66
Atributos dos ProcessosAtributos dos Processos
Process ID (PID)Process ID (PID) Associado pelo kernelAssociado pelo kernel Único no sistemaÚnico no sistema
Parent Process ID (PPID)Parent Process ID (PPID) Prioridade (Nice Number)Prioridade (Nice Number)
Número atribuído ao processo e que influencia Número atribuído ao processo e que influencia o cálculo da sua prioridade interna o cálculo da sua prioridade interna
TTYTTY Normalmente é o terminal onde o seu processo Normalmente é o terminal onde o seu processo
foi iniciadofoi iniciado
Processos Processos 77
Atributos dos ProcessosAtributos dos Processos
Real and Effective User ID (UID, EUID)Real and Effective User ID (UID, EUID) UID: Aquele que criou o processoUID: Aquele que criou o processo EUID: Usado para determinar o direito de acesso do EUID: Usado para determinar o direito de acesso do
processo aos recursos do sistema (setuid)processo aos recursos do sistema (setuid) Real and Effective Group ID (GID, EGID)Real and Effective Group ID (GID, EGID)
Mapeados no /etc/groupMapeados no /etc/group Quando um processo é inicializado, o GID Quando um processo é inicializado, o GID éé
configurado para o mesmo do processo paiconfigurado para o mesmo do processo pai EGID: Análogo ao EUID em relação ao UIDEGID: Análogo ao EUID em relação ao UID
Processos Processos 88
P1 P1fork
PID 10 PID 356
Ciclo de Vida de um ProcessoCiclo de Vida de um Processo
forkfork Cria uma cópia idêntica ao processo pai, mas Cria uma cópia idêntica ao processo pai, mas
com outro PID, PPID do pai, cópias próprias dos com outro PID, PPID do pai, cópias próprias dos descritores de arquivo e contabilidade própria.descritores de arquivo e contabilidade própria.
Processos Processos 99
P1
P2
exec
PID 34
PID 34
Ciclo de Vida de um ProcessoCiclo de Vida de um Processo
execexec Muda o contexto do processo que está sendo Muda o contexto do processo que está sendo
executadoexecutado Inicializa os segmentos de dados e pilha para Inicializa os segmentos de dados e pilha para
um estado inicial pré-definidoum estado inicial pré-definido
Processos Processos 1010
Ciclo de Vida de um ProcessoCiclo de Vida de um Processo
Exemplo: Exemplo:
PID 563
fork
fork
PID 424
PID 424
PID 424
PID 1
PID 424 PID 563
init init
getty
login
sh sh
grep
exec
exec
exec
exec
Processos Processos 1111
Estados possíveis dos processosEstados possíveis dos processos
O: running - O: running - o processo está sendo o processo está sendo executado;executado;
R: runnable - R: runnable - esperando apenas por esperando apenas por tempo tempo de CPU;de CPU;
S: sleeping - S: sleeping - esperando o término de um esperando o término de um evento específico;evento específico;
Z: zombie - Z: zombie - o processo terminou e o o processo terminou e o pai pai não está esperando (está não está esperando (está
tentando morrer);tentando morrer); T: stopped - T: stopped - está proibido de executar.está proibido de executar.
Processos Processos 1212
Comando ExitComando Exit
Notifica o kernel que o processo vai morrerNotifica o kernel que o processo vai morrer Libera espaço de endereçamentoLibera espaço de endereçamento Não fornece mais tempo de CPUNão fornece mais tempo de CPU O PID ainda não é liberadoO PID ainda não é liberado Chamada de sistema waitChamada de sistema wait
Processos Processos 1313
Iniciando vários processos com & Iniciando vários processos com &
lp report &lp report &[1] 1746[1] 1746
netscape &netscape &[2] 1750[2] 1750
Os processos são iniciados e rodam em Os processos são iniciados e rodam em segundo planosegundo plano
Processos Processos 1414
Entrada e Saída PadrõesEntrada e Saída Padrões
Em unix um processo é automaticamente Em unix um processo é automaticamente aberto com três arquivos abertos:aberto com três arquivos abertos:
stdin stdin Entrada padrãoEntrada padrão
stdout stdout Saída padrãoSaída padrão
stderrstderr Saída de erro padrãoSaída de erro padrão
Processos Processos 1515
Iniciando vários processos com | Iniciando vários processos com |
O símbolo O símbolo || é chamado de é chamado de ““pipepipe”” (canal) (canal) Estabelece um canal entre dois processosEstabelece um canal entre dois processos Por exemplo:Por exemplo:
ls | wc -lls | wc -l A saída padrão do comando ls é transferida A saída padrão do comando ls é transferida
para a entrada padrão do comando wc (conta para a entrada padrão do comando wc (conta palavras)palavras)
Forma geral Forma geral comando | comando | comando ...comando | comando | comando ...
Todos os processos são iniciados ao mesmo Todos os processos são iniciados ao mesmo tempo e são filhos do shell atual tempo e são filhos do shell atual
Processos Processos 1616
Redirecionando entradas/saídasRedirecionando entradas/saídas
<< símbolo usado para redirecionar a entrada símbolo usado para redirecionar a entrada de um comando da entrada padrão para um de um comando da entrada padrão para um arquivoarquivo mail sarah < infomail sarah < info
>> símbolo usado para redirecionar a saída de símbolo usado para redirecionar a saída de um comando da saída padrão para um arquivoum comando da saída padrão para um arquivo ls -la > lista.txtls -la > lista.txt cat > dados.txtcat > dados.txt
Processos Processos 1717
Redirecionando contRedirecionando cont
>>>> usado para acrescentar ou adicionar usado para acrescentar ou adicionar informações em um arquivo já existenteinformações em um arquivo já existente date > diretoriodate > diretorio ls | sort >> diretoriols | sort >> diretorio mail -s mail -s ““meus arquivosmeus arquivos”” admin < diretorio admin < diretorio
Processos Processos 1818
Monitorando ProcessosMonitorando Processos
O comando ps informa:O comando ps informa: PID, UID, prioridade e terminal de controlePID, UID, prioridade e terminal de controle Tempo de CPU, memória utilizada, etc.Tempo de CPU, memória utilizada, etc.
Exemplo:Exemplo:
% ps -aux /* System V: ps -ef */% ps -aux /* System V: ps -ef */
USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMANDUSER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND
root 137 5.5 0.0 3832 2140 co O 8:38PM 5:38.12 ps -root 137 5.5 0.0 3832 2140 co O 8:38PM 5:38.12 ps -
marcio 155 3.0 0.0 172 16 p0 S 8:38PM 0:00.00 /usr/bin/cshmarcio 155 3.0 0.0 172 16 p0 S 8:38PM 0:00.00 /usr/bin/csh
root 0 0.0 0.0 0 0 ?? T 8:35PM 0:00.06 scheroot 0 0.0 0.0 0 0 ?? T 8:35PM 0:00.06 sche
......
Processos Processos 1919
Campo SignificadoUSER Nome do usuário dono do processoPID Process ID%CPU Porcentagem da CPU que o processo está usando%MEM Porcentagem da memória real sendo utilizadaSZ Tamanho virtual do processo (kb)RSS Número de páginas (1K) na memóriaTT ID do terminal de controleSTAT Status corrente do processo:
START Hora que o processo foi inicializadoTIME Tempo de CPU que o processo consumiuCOMMAND Nome do comando e argumentos
R - RunnableI - Sleeping (<20 sec)
T - Stopped
D - In disk waitS - Sleeping (>20)
Z - Zombie
Monitorando ProcessosMonitorando Processos
Processos Processos 2020
ps - opções comunsps - opções comuns
a a seleciona todos, com a tty exceto líderes seleciona todos, com a tty exceto líderes
aa mostra processos de outros usuários mostra processos de outros usuários e e seleciona todos os processosseleciona todos os processos
ee mostra ambiente após comandomostra ambiente após comando
h h mostra sem cabeçalhomostra sem cabeçalho l l mostra em formato longomostra em formato longo
rr somente processos rodandosomente processos rodando
xx processos sem controle de terminalprocessos sem controle de terminal
uu fornece informações sobre usuáriofornece informações sobre usuário
ff mostra formato de árvore mostra formato de árvore
Processos Processos 2121
Exemplos psExemplos ps
ps -efps -ef
ps -auxps -aux
ps -auxlps -auxl
Processos Processos 2222
Monitorando ProcessosMonitorando Processos
O programa O programa toptop (integra alguns UNIX): (integra alguns UNIX): Provê um resumo dos processos ativos e do Provê um resumo dos processos ativos e do
uso dos recursos;uso dos recursos; Amostragem a cada dez segundos (default);Amostragem a cada dez segundos (default); Permite enviar sinais (k);Permite enviar sinais (k); Permite visualizar processos de um usuário (u);Permite visualizar processos de um usuário (u); Permite modificar a prioridade dos sinais (r);Permite modificar a prioridade dos sinais (r); toptop é de autoria de William LeFebvre, EECS é de autoria de William LeFebvre, EECS
Department, Northwestern UniversityDepartment, Northwestern University..
Processos Processos 2323
Monitorando ProcessosMonitorando Processos
Exemplo:Exemplo:
% toplast pid: 26330; load averages: 0.01, 0.01, 0.00 20:29:5180 processes: 1 running, 79 sleepingCPU states: 0.4% user, 0.0% nice, 0.4% system, 1.6% interrupt, 97.7% idleMem: 29M Active, 6204K Inact, 14M Wired, 8904K Cache, 6386K Buf, 3660K FreeSwap: 128M Total, 34M Used, 94M Free, 27% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 227 root 2 0 1096K 80K select 0:46 0.00% 0.00% httpd26330 marcio 28 0 644K 832K RUN 0:00 0.00% 0.00% top26323 marcio 18 0 688K 1020K pause 0:00 0.00% 0.00% csh18256 root 18 0 484K 516K pause 0:40 0.00% 0.00% office51 155 root 18 0 332K 268K pause 0:06 0.00% 0.00% cron 6061 marcio 10 0 380K 144K wait 0:00 0.00% 0.00% make 6067 marcio 10 0 488K 140K wait 0:00 0.00% 0.00% sh 6038 marcio 10 0 488K 140K wait 0:00 0.00% 0.00% sh
Processos Processos 2424
Sinais para ProcessosSinais para Processos
Interrompem a execução do processoInterrompem a execução do processo Enviados através do comando killEnviados através do comando kill
# kill -HUP 1823# kill -HUP 1823 O processoO processo
Quando recebe, trata o sinal ou então o kernel Quando recebe, trata o sinal ou então o kernel toma alguma ação defaulttoma alguma ação default
É reiniciado do ponto onde parouÉ reiniciado do ponto onde parou
Processos Processos 2525
Alguns sinaisAlguns sinais
SIGKILL (9): SIGKILL (9): Destrói o processoDestrói o processo
$ kill -9 1889$ kill -9 1889 SIGSTOP: SIGSTOP:
Suspende até receber SIGCONTSuspende até receber SIGCONT
$ kill -s STOP 2102$ kill -s STOP 2102 SIGHUP (1): SIGHUP (1):
Faz o programa reler o seu arquivo de Faz o programa reler o seu arquivo de configuraçãoconfiguração
É interessante enviá-lo antes de um kill -9É interessante enviá-lo antes de um kill -9
$ kill -1 2100$ kill -1 2100
Processos Processos 2626
Alguns sinaisAlguns sinais
SIGTERM (15): SIGTERM (15): Terminação de processo por programaTerminação de processo por programa
# kill -15 1889# kill -15 1889 SIGCONT: SIGCONT:
Continua após receber SIGSTOPContinua após receber SIGSTOP
$ kill -s CONT 2102$ kill -s CONT 2102 SIGHUP (1): SIGHUP (1):
Faz o programa reler o seu arquivo de Faz o programa reler o seu arquivo de configuração. É interessante enviá-lo antes de configuração. É interessante enviá-lo antes de um kill -9um kill -9
$$ kill -1 2100 kill -1 2100(#man -s5 signal)(#man -s5 signal)
Processos Processos 2727
Agendando tarefas no Unix - atAgendando tarefas no Unix - at
Permite agendar tarefas em tempos Permite agendar tarefas em tempos determinadosdeterminados
Pode ser usado por qualquer usuário, se não Pode ser usado por qualquer usuário, se não houver restrições (arquivo /etc/at.deny)houver restrições (arquivo /etc/at.deny)
at 1:23at 1:23 lp /usr/vendas/relats/*lp /usr/vendas/relats/* echo echo ““Arquivos sendo impressosArquivos sendo impressos”” | mail -s | mail -s ““Tudo Tudo
okok”” gerente gerente
Processos Processos 2828
Agendando tarefas - at contAgendando tarefas - at cont
at now + 1 DAYat now + 1 DAY rm -f -r *.txtrm -f -r *.txt echo echo ““Removi arquivos textoRemovi arquivos texto”” | mail adriano | mail adriano <ctl>D<ctl>D
at 17:00 DECEMBER 24at 17:00 DECEMBER 24 mail all < feliz_natal.txtmail all < feliz_natal.txt <ctl>D<ctl>D
Processos Processos 2929
Agendando tarefas - at contAgendando tarefas - at cont
Resumo do comandoResumo do comando At hh:mmAt hh:mm
Agenda tarefas para a hora marcada Agenda tarefas para a hora marcada
at hh:mm mes dia ano at hh:mm mes dia ano Agenda tarefas para hora:min mes dia anoAgenda tarefas para hora:min mes dia ano
at -l at -l Lista os servi₤os agendadosLista os servi₤os agendados
at now + inteiro unidadesat now + inteiro unidades Agenda para daqui a inteiro unidades (MONTH, DAY, etc)Agenda para daqui a inteiro unidades (MONTH, DAY, etc)
at -d id_seviço at -d id_seviço
Processos Processos 3030
Agendando tarefas - cronAgendando tarefas - cron
at é usado para agendar tarefas uma vezat é usado para agendar tarefas uma vez
cron usado para agendar tarefas em bases cron usado para agendar tarefas em bases regularesregulares
cron começa quando o sistema é inicializadocron começa quando o sistema é inicializado
Se não há nada para fazer cron fica inativo e Se não há nada para fazer cron fica inativo e verifica a cada minuto se há tarefas para verifica a cada minuto se há tarefas para serem executadas nos arquivos crontabserem executadas nos arquivos crontab
Processos Processos 3131
Agendando tarefas - crontabAgendando tarefas - crontab
crontab [-u user] filecrontab [-u user] file crontab: Comando usado para incluir tarefas crontab: Comando usado para incluir tarefas
na agendana agenda
crontab -u adriano filecrontab -u adriano file Deve ser usado no primeiro agendamento para criar Deve ser usado no primeiro agendamento para criar
o arquivo crontab do usuário adriano a partir de fileo arquivo crontab do usuário adriano a partir de file Este arquivo será armazenado em /var/spool/cronEste arquivo será armazenado em /var/spool/cron
Processos Processos 3232
Agendando tarefas - crontabAgendando tarefas - crontab
crontab [-u user] {-l | -r | -e}crontab [-u user] {-l | -r | -e} crontab: opções usadas depois que o crontab crontab: opções usadas depois que o crontab
é criado é criado l l lista o crontab atual lista o crontab atual r r remove o crontab atualremove o crontab atual e e edita o arquivo atual usando o editor edita o arquivo atual usando o editor
especificado na variável EDITOR ou VISUALespecificado na variável EDITOR ou VISUAL
Processos Processos 3333
Agendando tarefas - crontab contAgendando tarefas - crontab cont
Sintaxe dos comandos a serem inseridos no Sintaxe dos comandos a serem inseridos no crontabcrontabmin hora dia-do-mês mês-do-ano dia-semana comandomin hora dia-do-mês mês-do-ano dia-semana comando
Todos os 5 campos de data precisam aparecerTodos os 5 campos de data precisam aparecer Campos com * são ignoradosCampos com * são ignorados FormatosFormatos
MinMin 00 até 5900 até 59 Hora Hora 00 até 2300 até 23 Dia do mêsDia do mês 01 até 3101 até 31 Mês do anoMês do ano 01 até 1201 até 12 Dia da semanaDia da semana 01 até 07 (segunda 01)01 até 07 (segunda 01)
Processos Processos 3434
Agendando tarefas - exemplosAgendando tarefas - exemplos
30 07 * * 01 sort ./vendas/semanal | mail gerente30 07 * * 01 sort ./vendas/semanal | mail gerente 07:30 h, todo dia do mês, todo mês as segundas envia 07:30 h, todo dia do mês, todo mês as segundas envia
relatório de vendas ordenado para gerenterelatório de vendas ordenado para gerente 45 10 * * 1-5 mail -s “Hoje é um dia útil” adriano45 10 * * 1-5 mail -s “Hoje é um dia útil” adriano
10:45 h, todo dia do mês de segunda a sexta avisa que é 10:45 h, todo dia do mês de segunda a sexta avisa que é dia útildia útil
0,30 * 13 * 5 ls -l0,30 * 13 * 5 ls -l Toda meia hora às sextas e todas meias horas do 13 dia Toda meia hora às sextas e todas meias horas do 13 dia
do mês executa um ls -l e envia o resultado como mail do mês executa um ls -l e envia o resultado como mail para o usuário para o usuário
20 1 * * * find /tmp -atime + 3 -exec rm -f “{}” \;20 1 * * * find /tmp -atime + 3 -exec rm -f “{}” \; 1:20 remove todos os arquivos de /tmp que não foram 1:20 remove todos os arquivos de /tmp que não foram
acessados nas últimas 72 horas.acessados nas últimas 72 horas.
Processos Processos 3535
Nice ValueNice Value
Quanto menor seu valor, maior a prioridadeQuanto menor seu valor, maior a prioridade BSD: -19 a 19BSD: -19 a 19 System V: 0 a 39System V: 0 a 39
Processos recém-criados herdam o valor Processos recém-criados herdam o valor do pai;do pai;
O comando O comando nice nice estabelece o valor na estabelece o valor na criação do processo;criação do processo;
Processos Processos 3636
Nice ValueNice Value
O dono do processo pode alterar este valor O dono do processo pode alterar este valor via comando via comando renice renice (BSD)(BSD)
Quando necessário, usá-lo para iniciar um Quando necessário, usá-lo para iniciar um shell com alta prioridadeshell com alta prioridade
Exemplo:Exemplo:
% ps -l% ps -l
UID PID PPID CPU PRI .... STAT TT TIME COMMANDUID PID PPID CPU PRI .... STAT TT TIME COMMAND
19442 1662 972 3 28 R+ p2 0:00.01 ps -l19442 1662 972 3 28 R+ p2 0:00.01 ps -l
% nice -20 ps -l % nice -20 ps -l
19442 1668 972 3 68 RN p2 0:00.01 ps -l19442 1668 972 3 68 RN p2 0:00.01 ps -l
Top Related