1 / 20

Administração de sistemas operacionais

Administração de sistemas operacionais. Aula 12 Administração de processos. Prof. Esp. Diovani Milhorim. Administração de processos. Programas e processos

oma
Télécharger la présentation

Administração de sistemas operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Administração de sistemas operacionais Aula 12 Administração de processos. Prof. Esp. Diovani Milhorim

  2. Administração de processos • Programas e processos Programas são arquivos em disco contendo instruções para execução pelo processador, enquanto processos são as execuções em andamento. Cada processo executando no sistema em um determinado momento é identificado por um número único, o PID - Process IDentifier. Além disso, cada processo possui outras informações que o caracterizam, como: • Usuário proprietário (aquele que lançou o processo) • Sessão de shell de onde foi lançado (se foi lançado através de um shell) • Estado atual (Running, Suspended, SWapped, ...) • Linha de comando usada para lançá-lo. • Uso de memória e CPU 

  3. Administração de processos • Comandos ps e pstree Podemos visualizar os processos em execução no sistema através do comando ps, cuja execução sem parâmetros gera uma listagem como a seguinte: # ps PID TTY          TIME CMD 22791 pts/0    00:00:00 bash 22836 pts/0    00:00:00 ps • Observamos os seguinte campos nesta listagem • PID: identificação do processo • TTY: terminal do usuário que requisitou o processo • TIME: tempo de execução total do processo • CMD: Comando que iniciou o processo.

  4. Administração de processos • Comandos ps e pstree O comando ps aceita uma série de parâmetros, entre os quais os mais importantes são: • a : mostra processos de outros usuários também (all). • u : mostra listagem mais detalhada dos processos, com uso de memória e CPU • x : mostra processos não conectados a terminais. • w: mostra mais detalhes sobre as linhas de comando dos processos.

  5. Administração de processos • Comandos ps e pstree Para obter uma listagem completa dos processos em execução no sistema usa-se as opções auxw, que geram uma listagem como a que segue: # ps auxw USER  PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND root       975  0.0  0.0  1424  568 ?         S    Apr28   0:06 crond xfs       1051  0.0  0.1  5356 4076 ?        S    Apr28   0:00 [xfs] ntop      1072  0.0  0.5 88936 11296 ?   S    Apr28   0:00 [ntop] root      1092  0.0  0.0  1608  576 ?        S    Apr28   0:00 rhnsd --interval 240 root      1099  0.0  0.0  1344  396 tty2   S    Apr28   0:00 /sbin/mingetty tty2 root      1100  0.0  0.0  1344  396 tty3   S    Apr28   0:00 /sbin/mingetty tty3 root      1101  0.0  0.0  1344  396 tty4   S    Apr28   0:00 /sbin/mingetty tty4 root      1102  0.0  0.0  1344  396 tty5   S    Apr28   0:00 /sbin/mingetty tty5 root      1103  0.0  0.0  1344  396 tty6   S    Apr28   0:00 /sbin/mingetty tty6

  6. Administração de processos Os principais campos dessa listagem são: USER                  : o proprietário do processo PID                       : número do processo. %CPU                 : porcentagem da CPU usada pelo processo. %MEM                 : porcentagem da memória usada pelo processo. SIZE                     : memória total usada pelo processo. RSS                     : memória física (RAM) usada pelo processo. TTY                       : terminal ao qual o processo está ligado. STAT                   : status do processo (rodando, suspenso, ...). START                 : data de lançamento do processo. TIME                    : tempo total de CPU usado pelo processo. COMMAND        : comando usado para lançar o processo.

  7. Administração de processos Estados de processo. À medida que vai sendo executado, um processo passa por vários estados. ready: pronto para executar. running. Em execução na CPU waiting: Aguardando operação de I/O. stopped: Suspenso por um outro processo. zombie: Processos que terminam sem que o seu pai (parent) seja informado. Dead: processo terminado

  8. Administração de processos Figura 01: Estados de processos

  9. Administração de processos • Comando pstree O comando pstree é útil por mostrar a hierarquia existente entre os processos ativos no sistema:

  10. Administração de processos • prioridade processos – Comandos nice e renice O comando nice configura a prioridade da execução de um comando/programa. nice [opções] [comando/programa]

  11. Administração de processos • prioridade processos – Comandos nice e renice O comando renice configura a prioridade de um processo que já esteja em execução (somente o dono do processo ou o superusuário podem mudar a prioridade de um processo). renice [opções] [processos ou usuários] Se um programa for executado com maior prioridade, ele usará mais recursos do sistema para seu processamento, caso tenha uma prioridade baixa, ele permitirá que outros programas tenham preferência. A prioridade de execução de um programa/comando ou processo pode ser ajustada de -19 (a mais alta) até 19 (a mais baixa).

  12. Administração de processos • prioridade processos – Comandos nice e renice Exemplos de utilização: # nice -n -19 find / -name apropos # ps –l F S   UID   PID  PPID  C PRI  NI ADDR    SZ WCHAN  TTY          TIME CMD 000 S  1094 22791 22790  0  75   0    -   583 wait4  pts/0    00:00:00 bash 000 R  1094 23275 22791  0  76   0    -   775 -       pts/0    00:00:00 ps #renice 19 -p 22790 22790: prioridade antiga = 0; prioridade nova = 19

  13. Administração de processos • Execução de Comandos em Background e Foreground • Caractere & É possível que se queira executar um comando demorado e, enquanto se espera o resultado do mesmo, fazer-se outras coisas no terminal. Este processo de se rodar um programa ou comando desvinculado do terminal chama-se rodar em background.

  14. Administração de processos • Execução de Comandos em Background e Foreground Se for colocado o caractere & na linha de comando, a mesma será executada em background, liberando assim o terminal para outras tarefas. Se por acaso as saídas padrão e de erro do comando submetido em background não forem redirecionadas elas continuaram saindo na tela apesar da execução do comando não estar mais vinculada a ele. Portanto sempre que for usar comandos em background, redirecione tanto a saída padrão, como a saída de erro. Deve ser colocado com sendo o último caractere da linha de comando; # ls –la –R / > teste.txt 2>&1 & [1] 22925

  15. Administração de processos • Execução de Comandos em Background e Foreground Comando jobs O comando interno jobs mostra a situação de todos os processos que estão em background e que foram submetidos debaixo da sessão corrente. Um processo pode estar em situação suspensa ou rodando. Os processos estão numerados conforme o número indicado na submissão em background. Estas informações estão armazenadas em uma tabela interna do processo shell e é perdida quando se termina a sessão e o processo. # ls –la –R / > teste.txt 2>&1 & [1] 22925 # jobs [1]+  Running              ls --color=tty -la -R / >teste.txt 2>&1 &

  16. Administração de processos • Execução de Comandos em Background e Foreground Comando bg Para ativar um processo parado podemos usar os comandos internos bg , bastando fornecer o número do processo indicado pelo comando jobs ou alguma string de caracteres que identifique o processo. Com o comando interno bg esta se indicando que o processo deve voltar a executar em background. # jobs [1]+  Stopped                 ls --color=tty -la -R / >teste.txt 2>&1 # bg %1 [1]+ ls --color=tty -la -R / >teste.txt 2>&1 & # jobs [1]+  Running                 ls --color=tty -la -R / >teste.txt 2>&1 &

  17. Administração de processos Comando nohup Todos os processos que o usuário roda está ligado ao seu processo shell de sessão. O Unix/Linux possui a característica de que se o processo principal termina, todos os seus filhos serão encerrados. Isto torna-se um problema quando temos que rodar um comando ou programa demorado e não podemos manter a sessão aberta. O comando nohup serve para desligar um processo do processo shell da sessão permitindo assim que se encerre a sessão sem prejuízo da execução do programa ou comando. Deve-se sempre colocar o comando para rodar em background pois o nohup não faz isto automaticamente. # nohup ls –la /etc > teste.txt 2>&1 & [1] 23013

  18. Administração de processos Comando kill Quando se quer matar um processo, seja em background seja em foreground (de outro terminal) devemos usar o comando kill. Deve-se fornecer para este comando o número do PID do processo que se quer eliminar. Somente o proprietário do processo e o usuário root podem enviar sinais. Opcionalmente podemos estabelecer o tipo de sinal a ser mandado para o processo. Para isto basta se colocar o número ou mnemônico do mesmo. Caso não se coloque nenhum sinal, será enviado o sinal 15(TERM) para o processo. • Os sinais mais importantes são: 15 (TERM): Interrupção amena do processo. Este sinal pode ser interceptado e ignorado pelo process; 9 (KILL): Interrupção forçada do processo. Este sinal não pode ser interceptado e nem ignorado pelo processo; 24 (STOP): Suspende a execução de um processo. Este sinal também não pode ser interceptado e ignorado; 26 (CONT): Ativa a execução de um processo suspenso.

  19. Administração de processos Exemplos utilizando o scripttempo.sh abaixo. tempo.sh #/bin/bash trap "echo Não vou terminar!!!" 15 //intercepta sinal 15 while true do sleep 1 done #bash tempo.sh & [1] 23064 #kill -15 23064 Não vou terminar!!! #kill -9 23064 [1]+  Killed                  bash tempo.sh

  20. Administração de processos • Exercícios • Verifique quais os processos em atividade no sistema atualmente, identificando o uso de memória e CPU de cada um (dica: use o comando ps auxw | less). Identifique o significado de cada uma das colunas da listagem obtida (ver a página de manual). Quais os processos que mais consomem recursos do sistema ? • Implemente o exemplo dado nesta aula no comando kill utilizando o shell script tempo.sh. • Envie a resposta do primeiro item e o print screen do resultado do segundo item para o e-mail do professor.

More Related