O documento discute como os sistemas operacionais gerenciam processos, incluindo o que é um processo, como eles são hierarquizados, e como o sistema operacional aloca recursos e prioriza processos usando ferramentas como ps, kill, top e nice.
2. Agenda
n Conhecer o que é um processo
n Quais as funções de um processo?
n Gerenciar processos
n Finalizar processos
n Referências
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
3. O que é um processo ?
n Um processo é basicamente um programa
em execução (TANENBAUM, 2014)
n Um processo é o contêiner que detém todas
as informações necessárias para rodar um
programa (TANENBAUM, 2014)
n Cada programa detém o seu processo
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
4. O que é um processo ?
n Um processo pode ter processos
filhos
n Cabe ao sistema operacional
gerenciar os processos correntes
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
5. Hierarquia de processos
Processo pai
Filho 01
Filho 001
Filho 02
Filho 002
Filho 03
Filho 003
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
6. Exemplo de hierarquia - Linux
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
7. Exemplo de hierarquia - Linux
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
8. COMO GERENCIÁ-LOS ?
O QUE GERENCIAR ?
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
9. Gerenciamento de processos
n Cabe ao Sistema Operacional (SO)
gerenciar todos os recursos da
máquina
n Os processos demandam recursos
(que são finitos)
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
10. Gerenciamento de processos
n O SO precisa conceder os recursos,
mas “vigiá-los”
n Apenas alguns processos são
executados por vez
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
12. Como o SO gerencia os
procesos ?
n Por meio das prioridades
n Cada processo tem um Process ID (PID)
n Cada PID tem a sua prioridade
n No Linux, as prioridades vão de -20 a
19
n Quanto menor, maior a prioridade
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
13. Gerenciando processos no
Linux
n Quando o computador é ligado o BIOS procura pelo
gerenciador de boot no HD
n Os gerenciadores mais comuns são o GRUB e o LILO
n O GRUB ou LILO carregam o kernel na memória
n O kernel inicia um processo chamado init
n O init carrega todas as outras aplicações
n Por fim, o init inicia o getty – é o responsável pela
autenticação dos usuários e inicia o processo do shell
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
15. Como gerenciar efetivamente ?
n Os comandos que iremos utilizar são:
n ps [opções]!
n Gera uma lista com todos os processos em execução
n pstree [opções]!
n Mostra os processos na hierarquia
n top [opções]!
n Mostra os processos em execução (como o ps), mas atualizando
a tela
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
16. Como gerenciar efetivamente ?
n Os comandos que iremos utilizar são:
n kill [opções] PID!
n O seu principal uso é para matar (via PID) os processos em execução
n killall [opções] nome!
n Similar ao kill, mas mata pelo nome
n nohup [comando]!
n Executa uma aplicação e a mantém funcionando independente do usuário estar
conectado ou não
n free [opções]!
n Mostra a quantidade de memória disponível no sistema
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN
17. Alterando a prioridade dos
processos
n Nice [prioridade] comando!
n “legal”, em inglês. Usado para definir a prioridade de um
programa que será iniciado
n Quanto “menos legal” com os outros, maior a sua prioridade
n Renice [+/- prioridade] [opções] PID/
usuario!
n Utilizado para alterar a prioridade de um processo já em
execução
22/09/14
Instituto Federal de Educação,
Ciência e Tecnologia do RN - IFRN