Escola SENAI “Suíço-Brasileira” Componente Curricular Sistemas Operacionais - SOP Linux Agenda - 8ª Parte • Gerenciamento de processos: – – – – Definição de processo; Atributos de um processo; Classificação de processos; Comandos para o gerenciamento. • Duração: 3 horas Definição de processos • Processo é um programa em execução; • Definição do ponto de vista do SO: – Estrutura responsável pela manutenção de todas as informações necessárias a execução de um programa. • Processos são entidades independentes. – Possuem permissões de acesso; – e atributos como: Definição de processos • PID - Process Identification; • O Linux é responsável por gerenciar processos para uma melhor otimização do uso da CPU; • No diretório /proc é criado um subdiretório para cada processo em execução; • Os nomes desses diretórios são os PIDs desses processos. Atributos de um processo Atributo Descrição PID Identifica um processo em execução. PPID Identifica o processo pai que gerou o processo filho. UID Identifica o usuário que gerou o processo. Somente o root pode cancelar processos de outros usuários. Identifica o grupo ao qual pertence o processo GID Classificação de processos • Quanto a execução os processos podem ser classificados em: – Foreground - primeiro plano: • • • • podem interagir com o usuário; resultados são exibidos no vídeo; são inicializados no terminal de comandos; esses processos “prendem” o prompt. Classificação de processos – Background - segundo plano: • • • • são inicializados no terminal de comandos; não podem interagir com o usuário; não exibem a sua execução no vídeo; esses processos não “prendem” o prompt. Classificação de processos • Quanto ao tipo, os processos no Unix podem ser classificados em: – Processos interativos: • são iniciados a partir de uma sessão de usuário no terminal de comandos e são controlados por ele; • quando um comando do shell é executado, um processo em foreground é executado; – Processos em lote - batch; Classificação de processos – Daemons: • São processos servidores normalmente executados quando o Linux é inicializado, permanecendo em execução enquanto o sistema estiver em funcionamento esperando em background que outro processo solicite o seu serviço. Comandos para o gerenciamento • • • • <CTRL> + <C>: aborta um processo; jobs: exibe os jobs em execução pelo shell; jobs [opções] -l exibe o nome e o número de cada processo; • -s exibe o nome de cada processo; • -p exibe o número de cada processo; • $ jobs -l Comandos para o gerenciamento • • • • ps: exibe informações sobre os processos ativos; ps [opções] -a exibe também informações de outros usuários; -u exibe o nome do usuário e a hora de início do processo; • -x exibe também os processos não associados a um terminal de controle • -p <pid> exibe o processo cujo número é pid; • $ ps -aux | more Comandos para o gerenciamento • • • • • • • • • pstree: exibe os processos em formato de árvore; pstree [opções] [pid] -a exibe argumentos de linha de comando; -c não compacta subárvores; -l exibe linhas detalhadas; -n classifica a saída pelo pid; -p exibe o processo cujo número é pid; $ pstree -c | more $ pstree -cl | more Comandos para o gerenciamento • • • • pidof: exibe o PID do processo informado; pidof [opções] <processo> -s só retorna um pid; -x retorna o pid do shell que está executando o script informado; • $ pidof login • $ pidof vim Comandos para o gerenciamento • top: exibe os processos com maior consumo de CPU; • top [opções] • -u <usuário> exibe processos pertencentes ao usuário especificado; • -U <usuário> não mostra processos pertencentes ao usuário especificado; • -d <n> refresh de vídeo a cada n segundos; • -t <tty> exibe processos do terminal especificado; • $ top • $ top -q • $ top -v • $ top -d 5 Comandos para o gerenciamento • • • • • • • free: exibe a quantidade de memória livre; free [opções] -b exibe informações em bytes; -k exibe informações em Kbytes; -m exibe informações em Mbytes; -s <n> atualiza dados de n em n segundos; $ free -s 10 Comandos para o gerenciamento • vmstat: exibe estatísticas de utilização de memória virtual; • vmstat [opções] • -n informações estáticas; • -V exibe a versão do comando; • $ vmstat • $ vmstat -n Comandos para o gerenciamento • • • • • • kill: finaliza um processo pelo pid; kill [opções] [sinal] <pid> -n sinal aplicado ao processo; -l lista todos os nomes e números de sinais; $ ps -aux $ kill -9 1029 Comandos para o gerenciamento • • • • • killall: finaliza processos por nome; killall [opções] [sinal] <pid> n sinal aplicado ao processo; -l lista todos os nomes e números de sinais; $ killall -9 kde Comandos para o gerenciamento • nice: executa um processo com uma prioridade diferente da padrão; • nice [opções] <prioridade> <comando> • -- help exibe uma msg de ajuda; • -- version exibe a versão do comando; • <prioridade> quanto maior este valor, menor será a prioridade de escalonamento do processo. Variam de -20 a +19. O padrão é -10; • $ nice -4 find / -name kde Referência Bibliográfica • Livro: – – – – – Linux: Guia do Administrador do Sistema Rubem E. Ferreira Editora Novatec São Paulo, 2003 Capítulo 14