PROCESSOS COMPONENTES DE UM PROCESSO. A execução de um processo possui vários componentes. PID e PPID



Documentos relacionados
Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Laboratório de Sistemas Operacionais

Sistema Operacional Unidade 7.2 Gerenciamento de Processos. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Processos Prof. João Paulo de Brito Gonçalves

Gerenciamento de Processos

Gerenciamento de Processos

Gerenciamento de Processos

SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA

Instalação e Configuração de Servidores Linux Server Gerenciamento de Processos. Prof. Alex Furtunato

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

SISTEMAS OPERACIONAIS

Aula 06 Comandos Linux Gerenciamento de Privilégios e Processos Gerenciamento de Processos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Instalação e configuração Linux CentOS 6.x

7 Processos. 7.1 Introdução

Monitoramento no Linux Avaliação de desempenho. Prof: Paulo Maciel Instrutor: Jamilson Dantas

Administração de sistemas Linux. Administração de processos.

Descrição. Termos e utilitários. Áreas em foco. Processos. Processos. Comandos GNU e Linux

Comandos TOP, PS e PSTREE

Gerenciamento de memória virtual no Kernel Linux conceitos básicos

Revisão Aula Explique a MBR(Master Boot Record)

Processos e Threads (partes I e II)

Processos. Adão de Melo Neto

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS COTAS DE DISCO. Professor Carlos Muniz

Módulos...2 Shell...3

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Gerência de processos Estudos de caso - BSD Unix

Sistema Operacional LINUX

Manual de Comando Linux

Aula 4 Comandos Básicos Linux. Prof.: Roberto Franciscatto

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

SISTEMAS OPERACIONAIS. George Gomes Cabral

Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti

Relembrando. Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra?

Tecnologia da Informação. Prof Odilon Zappe Jr

Manual de Instalação (TEF LOJA)

Sistemas Operacionais Aula 01

GNU/Linux/Bash. Aula 2

Sistemas Operacionais. Prof. André Y. Kusumoto

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Manual do System Monitor. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Tradução: Marcus Gama

Infra-Estrutura de Software. Introdução. (cont.)

LISTA DE COMANDOS DO LINUX 1

CURSO BÁSICO DE INFORMÁTICA

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim

Fundamentos de Sistemas Operacionais. Processos. Prof. Edwar Saliba Júnior Março de Unidade Processos

Introdução ao Linux. Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais Campus Pouso Alegre

Aula 02. Introdução ao Linux

Sistemas Operacionais

Introdução a Informática. Prof.: Roberto Franciscatto

Soluções de Acessibilidade. VLibras - Desktop. Manual de Instalação da Ferramenta. Microsoft Windows R. Núcleo de Pesquisa e Extensão / LAViD

Fundamentos de Sistemas Operacionais

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Processos em Unix. Conteúdo: Definição de Processos em Unix Estrutura, tipo e escalonamento de processos em Unix Processos, Pai, Filho e Zumbi.

Sistemas Operacionais

Versão PIMACO AUTOADESIVOS LTDA. Assistente Pimaco Ajuda ao Usuário

Comandos de Verificação. Alberto Felipe Friderichs Barros

Gerenciamento de processos

Sistema Operacional Unidade 5 - Iniciando o modo texto. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Lista de exercícios - P2

UFRJ IM - DCC. Departamento de Ciência da Computação. Sistemas Operacionais II. 25/10/2016 Profª Valeria Menezes Bastos 1

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Sistemas Operacionais Prof. André Y. Kusumoto

SIMULADO Windows 7 Parte V

Gerenciador USB do Monitor de Rede Elétrica Som Maior Pro. Versão 3.6

Máquina de estados UNIX O

Processamento com SPOOL. Utilização do CPU e periféricos. Perfis dos programas. Exemplo IBM 1460 (1963) Problemas no escalonamento.

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

LOGs e ALERTAS de DESEMPENHO

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

REVISÃO LINUX CAP /SIN PROF. ESTRELA. e) os

Conceitos e Chamadas de Sistema

Comandos básicos do Linux

Lsof List Open Files. O que é o Lsof? Opções Conclusão

A D M I N I S T R A Ç Ã O D E S I S T E M A S / P E D R O B R A N D Ã O REFERÊNCIAS DOS SLIDES

Procedimentos Operacionais Ambiente Microsoft Windows 2000 Server Máquina Smart02 ADM

Fundamentos de Sistemas Operacionais

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Instalando o Debian em modo texto

Manual de Utilização ZENDESK. Instruções Básicas

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS OPERACIONAIS: GERENCIAMENTO DE PROCESSOS E DE MEMÓRIA

Gerenciamento de usuários e grupos

Transcrição:

PROCESSOS Um processo é um canal de comunicação entre os programas que estão sendo executados no sistema operacional e o usuário, ou seja um processo é um programa que está sendo executado. No Linux / Unix os processos utilizam os recursos de forma inteligente diminuindo o uso do processador (CPU), ou seja quando processo de um programa tentar ler ou escrever informações no HD, este processo entrará na fila de espera até finalizar a entrada e saída dados, enquanto isso ocorre, outro processo pode ser executado diminuindo o tempo de uso e acesso do processador, memória RAM e periféricos. Cada processo que está sendo executado armazena um subdiretório com o mesmo número do processo (PID) em /proc, e dentro desses subdiretórios é armazenado informações sobre cada processo nos arquivos cmdline, environ e status. Para exibir os processos são utilizados os comandos ps, pstree e top e para mudar a ordem de prioridade dos processos são usados os comandos nice e renice. Os processos tem prioridades alternando entre -20 (prioridade (maior) e 19 (prioridade menor), o comando nice pode executar um programa com prioridade específicas sendo o seu padrão 10. O comando renice modifica a prioridade de um processo em execução, sendo que somente o usuário root pode executar processos com prioridade negativa e modificar a ordem de execução de processos positivos para negativos. COMPONENTES DE UM PROCESSO A execução de um processo possui vários componentes. PID e PPID A execução de um processo possuem vários componentes PID e PPID O PID (Process Identification - indentificador de processo) é um número de identificação que o sistema exibe a cada processo. Nenhum PID pode existir para dois ou mais processos ao mesmo tempo, devendo ser gerado um novo numero a cada um novo processo. Quando isso ocorre, o processo "copiado" recebe o nome de "processo pai", enquanto que o novo é denominado "processo filho". É justamente nesse momento que o PPID (Parent Process Identification - indentificador de processo pai) passa a ser usado, sendo gerado em função do processo pai, o PID. UID e GID Lembrando que cada processo necessita de um proprietário, ou seja, um usuário que seja considerado seu dono. Nesse ponto, o sistema irá identificar, quem pode ou não executar o processo em questão, isso de acordo com as permissões do usuário. Para lidar com os donos, o sistema utiliza os números UID e GID.

No Linux os usuários e os grupos são gerenciados através dos números UID (User Identifier) e GID (Group Identifier). Como podemos perceber, que UID são números de usuários e GID são números de grupos. No processo podemos visualizar os usuários e grupos, facilitando a sua visualização e somente o usuário root pode finalizar processos criados por outros usuários CLASSIFICAÇÃO DOS PROCESSOS Abaixo podemos distinguir a classificação dos processos utilizados no sistema Linux / Unix. Foreground (primeiro plano) Os comandos quando executados em primeiro plano no terminal de comandos, passam a interagir junto com o usuário, exibindo a sua execução na tela do computador. Esses processos ficam fixos no prompt, impedindo que outros processos sejam inicializados no terminal. Background (segundo plano) Os processos executados em background podem ser inicializados no terminal de shell, não há interação com o usuário e nenhuma execução visível na tela do computador. Esses processos não seguram o prompt de comandos, permitido assim que outros processos sejam inicializados no terminal. TIPOS DE PROCESSOS Processos dinâmicos A partir de uma sessão de usuário, os processos dinâmicos são executados inicialmente em um terminal de comandos e gerenciado por ele. Quando se executa um comando no terminal, geralmente ele é processado em modo foreground (primeiro plano). Para interromper um processo utiliza-se as teclas <CTRL> + <Z>, onde automaticamente será exibido a mensagem "Stopeed" e o número do job entre colchetes [ ] desse processo, e para cancelar um processo utiliza-se as teclas <CTRL> + <C>. Para controlar o gerenciamento de processos são utilizados os comandos fg, bg e jobs. $ xeyes <CTRL> + <Z> [1]+ Stopped xeyes $ xeyes <CTRL> + <C>

GERENCIAMENTO DE TAREFAS (JOBS) É a maneira pelo o qual os processos são finalizados e retornados ao seu estado inicial, os processos são executados no terminal de comandos através de comandos de shell pelo usuário, podendo um job armazenar um ou mais processos que podem ser visualizados pelo comando jobs. No exemplo abaixo é executado o programa xeyes em backgroung &. $ xeyes & [1] 3480 $ jobs -l [1]+ 3480 Running xeyes & Acima é exibido o número do job [1] e o PID do processo 3480. COMANDOS DE GERENCIAMENTO DE PROCESSOS CTRL + C (finaliza um processo) CTRL + Z (interrompe um processo) & - Executa um comando(processo) em background (segundo plano) $ firefox & bg - Põe um comando(processo) em background (segundo plano) %id Número do job colocado em segundo plano. $ xeyes CTRL + Z [1] + Stopped xeyes $ bg %1 [1]+ xeyes & fg - Coloca um processo em primeiro plano (background) %id - Número do job colocado em primeiro plano. $ top &

[1] 3004 $ fg %1 CTRL + C jobs - Exibe os jobs em execução -l Exibe o nome e o numero de cada processo -s Exibe o nome de cada processo -p Exibe o numero de cada processo $ firefox & $ jobs $ jobs -l $ jobs -p ps - Mostra informações sobre processos em execução -A Mostra todos os processos -a Mostra informações de outros usuários -u Mostra o nome do usuário e o horário de início do processo -x Mostra processos do terminal corrente e de outros terminais -p Mostra o número do processo PID $ firefox & $ ps -aux $ ps -aux grep firefox Abaixo seguem as opções exibidas na saída dos comandos: USER PID Nome do usuário dono do processo ID do processo

%CPU %MEM VSZ RSS TTY STAT Porcentagem do consumo de CPU Porcentagem do consumo de memória Tamanho virtual do processo Número de páginas na memória(resident Set Size) TTY do terminal Estado processo: R (executável), S (Dormente (< 20 segundos)), Z (Zumbi), D (espera no disco(curto prazo)), T (rastreado ou interrompido) Outras opções adicionais: W (processo paginado em disco), < (prioridade do processo maior que o normal), N (prioridade do processo menor que o normal), L (páginas bloqueadas no kernel do sistema) START TIME COMMAND Horário de início do processo Tempo de consumo do processador (CPU) consumido pelo processo Nome do comando e opções pstree - Mostra informações sobre processos em execução em forma de árvore -a Mostra opções de comandos no terminal. -c Não compacta subárvores. -l Mostra linhas de forma detalhada -n Classifica os processos pelo PID -p Exibe o PID dos processos. $ pstree -p $ pstree -nap pidof - Exibe o PID do processo informado -s Exibe apenas o PID -x Exibe o PID do script que está sendo executado $ top & $ pidof top

top - Visualiza os processos com o maior uso do processador (CPU) -u Mostra processos de um usuário específico -U Não mostra processos de um usuário específico -d (n) Atualiza a tela do monitor a cada n segundos $ top $ top -u aluno1 $ top -u aluno1 -d 3 (atualiza os processos do usuário aluno1 a cada 3 segundos) free - Visualiza a quantidade de memória livre e usada pelo sistema -b Mostra informações em bytes (Bytes) -k Mostra informações em kbytes (KB) -m Mostra informações em megabytes (MB) -g Mostra informações em gigabytes (GB) -o Mostra os dados de memória sem exibir a memória utilizada como buffer -s (n) Mostra os dados de memória a cada n segundos $ free - -help $ free $ free -m $ free -s 3 (atualiza os processos do usuário aluno1 a cada 3 segundos) vmstat - Exibe estatística de utilização da memória swap -n Mostra as informações de uma só vez -V Exibe a versão do comando $ vmstat - -help $ vmstat $ vmstat -n $ vmstat 1 3 (atualiza o comando a cada 1 segundo 3 vezes)

kill - Finaliza um processo pelo PID -V Exibe a versão -l Lista todos os nomes e números de sinais. O sinal padrão para o kill é TERM(encerramento por hardware), usando a opção -l no comando kill são exibidos todos os sinais, como HUP (suspender), INT (interromper), KILL (destruir), STOP (parar), QUIT (sair) e etc. Para mais detalhes sobre os sinais use o comando man kill. Para matar um processo são utilizadas 3 maneiras usando os sinais negativos: -9, -SIGKILL e -KILL. $ kill -l $ kill -l KILL 9 $ top & [1] 3357 $ kill -9 3357 ou $ kill -KILL 3357 ou $ kill -SIGKILL 3357 killall - Finaliza processos pelo nome -V Exibe a versão -l Lista todos os nomes e números de sinais. $ kill -l $ xeyes & [1] 3409 $ killall xeyes [1]+ Terminado $ top & [1] 3357

$ killall -9 top ou $ killall -KILL top ou $ killall -SIGKILL top nohup - Continua executando um comando mesmo que o usuário saia do sistema $ nohup find /usr grep adduser & nice - Executa um processo com prioridade de execução --help --version (prioridade) Mostra uma mensagem de ajuda Mostra a versão do comando Valor da prioridade do processo, sendo que quanto maior o valor, menor será a prioridade de escalonamento do processo, variando entre os valores -20 a +19, sendo -10 o valor padrão de prioridade. $ nice -1 firefox renice - Modifica a prioridade de um processo em execução opção (prioridade) Valor que deve ser atribuído à prioridade do processo -p (número) Processo -u (usuário) Nome do usuário -g (grupo) Grupo do usuário $ firefox & [2] 3429 $ renice +19 3429 (modifica a prioridade do processo 3429 para +19) 3429: prioridade antiga = 0; prioridade nova = 19

$ renice -1 -p 3429 (modifica a prioridade do processo 3429 para -1) 3429: prioridade antiga = 19; prioridade nova = -1 # renice -20 -u aluno1 (modifica a prioridade para -20 de todos os processos do usuário aluno1) 3429: prioridade antiga = -1; prioridade nova = -20