Processos.

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Administração de sistemas operacionais
Administração de sistemas operacionais
Operadores e Funções do LINGO
Componente Curricular Sistemas Operacionais - SOP
Prof. João Paulo de Brito Gonçalves
Prof. João Paulo de Brito Gonçalves Sistema de Arquivos - COMANDOS DE VISUALIZAÇÃO, BUSCA E LOCALIZAÇÃO Campus - Cachoeiro Curso Técnico de Informática.
Gerência de Processos no Linux Prof. Antônio Rogério Ramos Pelo menos esse, fui eu que fiz!!!
Excel Profa. Cristina M. Nunes.
Processos no Linux.
Processos no Unix e Linux
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Administrando projetos com MS Project – Unidade IX
Arquitetura de Sistemas Operacionais
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Administrando usuários 1 Controle de contas de usuários 1.
Vi 1 Editando com vi. vi 2 Por que vi? l Editar arquivos de configuração l Editar scripts de shell l Disponível em todas as distribuições l Necessita.
Conceitos Básicos sobre o S.O.
Chapter 4: Threads.
EXPRESSÕES ARITMÉTICAS
Estatística Básica Utilizando o Excel
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Sistemas Operacionais
Estruturas de Controle
SVCs para Controle de Processos no Unix
SVCs para Controle de Processos no Unix
UNIX.
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
MetaLib - Visão Geral 1º Encontro de Usuários ALEPH 30 Nov. e 1º Dez. de 2006 Caio Pellegatti.
Sistemas Operacionais
Comandos para navegação no Sistema de Arquivos
Instalação e Configuração
Prof. André Leon S. Gradvohl, Dr.
Como controlar o caixa Supermercados.
Criação de objetos da AD 1Luis Rodrigues e Claudia Luz.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
SISTEMAS OPERACIONAIS
Estruturas de Dados com Jogos
Processos em Linux Aluno: Raphael Franklin Professor: Hugo Vieira L. de Souza Disciplina: Sistemas Operacionais.
Conteúdo Processos e threads Partes do processo
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Sistemas Operacionais
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti
Sistemas Operacionais
Linux Prof. Fabio Santos, D.Sc
Sistemas Operacionais c
ÁREA DE TRABALHO DO WINDOWS
FORMATANDO O TRABALHO NO WORD 2007
Administração de Sistemas Operacionais Não Proprietários 2ºSemestre Aula 05 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM.
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
2.5 Processos no Minix 1. gerenciamento de processos:
Planilha Eletrônica - Excel
Usuários e Grupos Usuário: alguém que possui conta, internamente é tratado como um número (UID) que é a identificação do usuário (USER ID). Cada usuário.
Prof. Werley T. Reinaldo 26/05/  Sistemas Operacionais:  Visão geral  As diferentes imagens do SO:  Visão Usuários;  Visão Projeto.  Multiprogramação;
Administrando usuários 1 Controle de contas de usuários 1.
Shell Script Parte 2.
SICII (Sistemas Operacionais) – Prof. Alberto  Comandos de console (Linux)
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Linux – Prática Regiane Kawasaki
Sistemas Operacionais de Redes Introdução ao Linux IGOR ALVES.
Transcrição da apresentação:

Processos

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.

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.

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

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)

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

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

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

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

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

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.

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

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

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

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

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

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

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 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/csh root 0 0.0 0.0 0 0 ?? T 8:35PM 0:00.06 sche ...

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

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

Exemplos ps ps -ef ps -aux ps -auxl

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.

Monitorando Processos Exemplo: % top last pid: 26330; load averages: 0.01, 0.01, 0.00 20: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 2 0 1096K 80K select 0:46 0.00% 0.00% httpd 26330 marcio 28 0 644K 832K RUN 0:00 0.00% 0.00% top 26323 marcio 18 0 688K 1020K pause 0:00 0.00% 0.00% csh 18256 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

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

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 -1 2100

Alguns sinais SIGTERM (15): SIGCONT: SIGHUP (1): Terminação de processo por programa # kill -15 1889 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 -1 2100 (#man -s5 signal)

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

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

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

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

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

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

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 00 até 59 Hora 00 até 23 Dia do mês 01 até 31 Mês do ano 01 até 12 Dia da semana 01 até 07 (segunda 01)

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.

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;

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 19442 1662 972 3 28 R+ p2 0:00.01 ps -l % nice -20 ps -l 19442 1668 972 3 68 RN p2 0:00.01 ps -l