A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Processos.

Apresentações semelhantes


Apresentação em tema: "Processos."— Transcrição da apresentação:

1 Processos

2 Processos Abstração do UNIX para gerência de memória, CPU e recursos de I/O; É um conjunto de dados e instruções que são executadas, em geral sem compartilhar o seu próprio espaço de endereçamento virtual; Um programa/job pode necessitar de vários processos até seu término.

3 Processos Um comando simples (ls por exemplo) será executado por apenas um processo; O administrador tem a incumbência de monitorar o status dos processos, controlar quanto do tempo da CPU um processo gasta, enviar sinais para um processo e suspender sua execução quando necessário.

4 Componentes de um Processo
Espaço de endereçamento Código do programa e variáveis usadas Pilha do processo Outras informações necessárias Estruturas de dados internas ao kernel Localização do espaço de endereçamento Status corrente Prioridade de execução Informações acerca dos recursos usados A máscara de sinal do processo Identificação do proprietário

5 Tipos de Processos Processos interativos Daemons
S₧o inicializados e controlados por uma sessão de terminal Executados em foreground Estão ligados a um terminal para entrada e saída de dados Executados em background Não estão ligados a nenhum terminal Daemons São processos servidores, geralmente inicializados no boot da máquina (background)

6 Atributos dos Processos
Process ID (PID) Associado pelo kernel Único no sistema Parent Process ID (PPID) Prioridade (Nice Number) Número atribuído ao processo e que influencia o cálculo da sua prioridade interna TTY Normalmente é o terminal onde o seu processo foi iniciado

7 Atributos dos Processos
Real and Effective User ID (UID, EUID) UID: Aquele que criou o processo EUID: Usado para determinar o direito de acesso do processo aos recursos do sistema (setuid) Real and Effective Group ID (GID, EGID) Mapeados no /etc/group Quando um processo é inicializado, o GID é configurado para o mesmo do processo pai EGID: Análogo ao EUID em relação ao UID

8 Ciclo de Vida de um Processo
fork Cria uma cópia idêntica ao processo pai, mas com outro PID, PPID do pai, cópias próprias dos descritores de arquivo e contabilidade própria. P1 fork PID 10 PID 356

9 Ciclo de Vida de um Processo
exec Muda o contexto do processo que está sendo executado Inicializa os segmentos de dados e pilha para um estado inicial pré-definido P1 P2 exec PID 34

10 Ciclo de Vida de um Processo
Exemplo: PID 563 fork PID 424 PID 1 init getty login sh grep exec

11 Estados possíveis dos processos
O: running - o processo está sendo executado; R: runnable - esperando apenas por tempo de CPU; S: sleeping - esperando o término de um evento específico; Z: zombie - o processo terminou e o pai não está esperando (está tentando morrer); T: stopped - está proibido de executar.

12 Comando Exit Notifica o kernel que o processo vai morrer
Libera espaço de endereçamento Não fornece mais tempo de CPU O PID ainda não é liberado Chamada de sistema wait

13 Iniciando vários processos com &
lp report & [1] 1746 netscape & [2] 1750 Os processos são iniciados e rodam em segundo plano

14 Entrada e Saída Padrões
Em unix um processo é automaticamente aberto com três arquivos abertos: stdin Entrada padrão stdout Saída padrão stderr Saída de erro padrão

15 Iniciando vários processos com |
O símbolo | é chamado de “pipe” (canal) Estabelece um canal entre dois processos Por exemplo: ls | wc -l A saída padrão do comando ls é transferida para a entrada padrão do comando wc (conta palavras) Forma geral comando | comando | comando ... Todos os processos são iniciados ao mesmo tempo e são filhos do shell atual

16 Redirecionando entradas/saídas
< símbolo usado para redirecionar a entrada de um comando da entrada padrão para um arquivo mail sarah < info > símbolo usado para redirecionar a saída de um comando da saída padrão para um arquivo ls -la > lista.txt cat > dados.txt

17 Redirecionando cont >> usado para acrescentar ou adicionar informações em um arquivo já existente date > diretorio ls | sort >> diretorio mail -s “meus arquivos” admin < diretorio

18 Monitorando Processos
O comando ps informa: PID, UID, prioridade e terminal de controle Tempo de CPU, memória utilizada, etc. Exemplo: % ps -aux /* System V: ps -ef */ USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND root co O :38PM 5: ps - marcio p0 S :38PM 0: /usr/bin/csh root ?? T :35PM 0: sche ...

19 Monitorando Processos
Campo Significado USER Nome do usuário dono do processo PID Process ID %CPU Porcentagem da CPU que o processo está usando %MEM Porcentagem da memória real sendo utilizada SZ Tamanho virtual do processo (kb) RSS Número de páginas (1K) na memória TT ID do terminal de controle STAT Status corrente do processo: START Hora que o processo foi inicializado TIME Tempo de CPU que o processo consumiu COMMAND Nome do comando e argumentos R - Runnable I - Sleeping (<20 sec) T - Stopped D - In disk wait S - Sleeping (>20) Z - Zombie

20 ps - opções comuns a seleciona todos, com a tty exceto líderes
a mostra processos de outros usuários e seleciona todos os processos e mostra ambiente após comando h mostra sem cabeçalho l mostra em formato longo r somente processos rodando x processos sem controle de terminal u fornece informações sobre usuário f mostra formato de árvore

21 Exemplos ps ps -ef ps -aux ps -auxl

22 Monitorando Processos
O programa top (integra alguns UNIX): Provê um resumo dos processos ativos e do uso dos recursos; Amostragem a cada dez segundos (default); Permite enviar sinais (k); Permite visualizar processos de um usuário (u); Permite modificar a prioridade dos sinais (r); top é de autoria de William LeFebvre, EECS Department, Northwestern University.

23 Monitorando Processos
Exemplo: % top last pid: 26330; load averages: 0.01, 0.01, :29:51 80 processes: 1 running, 79 sleeping CPU states: 0.4% user, 0.0% nice, 0.4% system, 1.6% interrupt, 97.7% idle Mem: 29M Active, 6204K Inact, 14M Wired, 8904K Cache, 6386K Buf, 3660K Free Swap: 128M Total, 34M Used, 94M Free, 27% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 227 root K 80K select 0: % 0.00% httpd 26330 marcio K 832K RUN : % 0.00% top 26323 marcio K 1020K pause 0: % 0.00% csh 18256 root K 516K pause 0: % 0.00% office51 155 root K 268K pause 0: % 0.00% cron 6061 marcio K 144K wait 0: % 0.00% make 6067 marcio K 140K wait 0: % 0.00% sh 6038 marcio K 140K wait 0: % 0.00% sh

24 Sinais para Processos Interrompem a execução do processo
Enviados através do comando kill # kill -HUP 1823 O processo Quando recebe, trata o sinal ou então o kernel toma alguma ação default É reiniciado do ponto onde parou

25 Alguns sinais SIGKILL (9): SIGSTOP: SIGHUP (1): Destrói o processo
Suspende até receber SIGCONT $ kill -s STOP 2102 SIGHUP (1): Faz o programa reler o seu arquivo de configuração É interessante enviá-lo antes de um kill -9 $ kill

26 Alguns sinais SIGTERM (15): SIGCONT: SIGHUP (1):
Terminação de processo por programa # kill SIGCONT: Continua após receber SIGSTOP $ kill -s CONT 2102 SIGHUP (1): Faz o programa reler o seu arquivo de configuração. É interessante enviá-lo antes de um kill -9 $ kill (#man -s5 signal)

27 Agendando tarefas no Unix - at
Permite agendar tarefas em tempos determinados Pode ser usado por qualquer usuário, se não houver restrições (arquivo /etc/at.deny) at 1:23 lp /usr/vendas/relats/* echo “Arquivos sendo impressos” | mail -s “Tudo ok” gerente

28 Agendando tarefas - at cont
at now + 1 DAY rm -f -r *.txt echo “Removi arquivos texto” | mail adriano <ctl>D at 17:00 DECEMBER 24 mail all < feliz_natal.txt

29 Agendando tarefas - at cont
Resumo do comando At hh:mm Agenda tarefas para a hora marcada at hh:mm mes dia ano Agenda tarefas para hora:min mes dia ano at -l Lista os servi₤os agendados at now + inteiro unidades Agenda para daqui a inteiro unidades (MONTH, DAY, etc) at -d id_seviço

30 Agendando tarefas - cron
at é usado para agendar tarefas uma vez cron usado para agendar tarefas em bases regulares cron começa quando o sistema é inicializado Se não há nada para fazer cron fica inativo e verifica a cada minuto se há tarefas para serem executadas nos arquivos crontab

31 Agendando tarefas - crontab
crontab [-u user] file crontab: Comando usado para incluir tarefas na agenda crontab -u adriano file Deve ser usado no primeiro agendamento para criar o arquivo crontab do usuário adriano a partir de file Este arquivo será armazenado em /var/spool/cron

32 Agendando tarefas - crontab
crontab [-u user] {-l | -r | -e} crontab: opções usadas depois que o crontab é criado l lista o crontab atual r remove o crontab atual e edita o arquivo atual usando o editor especificado na variável EDITOR ou VISUAL

33 Agendando tarefas - crontab cont
Sintaxe dos comandos a serem inseridos no crontab min hora dia-do-mês mês-do-ano dia-semana comando Todos os 5 campos de data precisam aparecer Campos com * são ignorados Formatos Min até 59 Hora até 23 Dia do mês 01 até 31 Mês do ano 01 até 12 Dia da semana 01 até 07 (segunda 01)

34 Agendando tarefas - exemplos
30 07 * * 01 sort ./vendas/semanal | mail gerente 07:30 h, todo dia do mês, todo mês as segundas envia relatório de vendas ordenado para gerente 45 10 * * 1-5 mail -s “Hoje é um dia útil” adriano 10:45 h, todo dia do mês de segunda a sexta avisa que é dia útil 0,30 * 13 * 5 ls -l 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 para o usuário 20 1 * * * find /tmp -atime + 3 -exec rm -f “{}” \; 1:20 remove todos os arquivos de /tmp que não foram acessados nas últimas 72 horas.

35 Nice Value Quanto menor seu valor, maior a prioridade
BSD: -19 a 19 System V: 0 a 39 Processos recém-criados herdam o valor do pai; O comando nice estabelece o valor na criação do processo;

36 Nice Value O dono do processo pode alterar este valor via comando renice (BSD) Quando necessário, usá-lo para iniciar um shell com alta prioridade Exemplo: % ps -l UID PID PPID CPU PRI STAT TT TIME COMMAND R p2 0: ps -l % nice -20 ps -l RN p2 0: ps -l


Carregar ppt "Processos."

Apresentações semelhantes


Anúncios Google