Exercício II: Processos em Unix
O propósito deste exercício é, por um lado, conhecer melhor os
processos em Unix, como são criados/organizados, e por outro lado
habituar-se a pesquisar informação existente no sistema sobre
processos. Para tal, segue-se um conjunto de pequenas tarefas que deve
resolver.
Algumas das questões são mais simples de responder usando a sintaxe
SysV e outras usando a sintaxe BSD. SysV usa um hífen (-) antes da
lista de opções enquanto que BSD não. Existem diferenças nas duas
sintaxes nas opções dos comandos, e algumas das opções com a mesma
letra produzem resultados diferentes. Consulte a man-page do
comando ps para saber mais sobre as opções das duas
sintaxes. Para obter um sumário das opções faça ps
-help, uma opção ilegal em SysV mas que acciona a mensagem de
como usar o comando.
Realize as tarefas propostas e escreva, sempre que apropriado, o
comando completo usado para encontrar ou ajudar a encontrar a resposta
adequada.
- Crie um ficheiro para gravar os comandos que irá invocar e as
respostas dadas pelo sistema. Para começar a gravar faça:
script fich_output (se não indicar
fich_output o output vai para o ficheiro
typescript). Para terminar de gravar faça
Ctrl-d.
- Registe a data e a hora com o comando date.
- Use o comando pstree para visualizar a
hierarquia dos processos em execução e em seguida identifique o
próprio comando pstree nessa hierarquia.
- Use o comando top para visualizar a evolução do
estado dos vários processos e acompanhe a evolução do seu
processo corrente. Para interpretar os vários parâmetros
apresentados consulte a man-page do comando
top.
- Execute o comando ps e determine qual o
ID do seu processo.
- Descubra mais informação sobre o seu processo usando ps
-f, ps l ou ps u.
- Descubra qual a shell que está a executar.
- Qual é o ID do processo-pai do seu processo?
- Qual é o ID do pai de todos os processos do
sistema?
- Execute o comando ps aux e consulte a
man-page do comando ps para determinar o
significado das colunas START e
TIME?
- Use os comandos ps e wc para
determinar quantos processos estão a executar no sistema.
- Consulte a man-page do ps para descobrir
como listar todos os seus processos.
- Do total dos seus processos, quantos estão em cada um dos
seguintes estados: running, sleeping,
zombie e stopped?
- Inicie o editor emacs com o comando emacs
-nw e em seguida suspenda a sua execução com
Ctrl-z. Como é que isso afecta a sua lista de
processos e o seu estado?
- Quantos processos estão a correr no sistema e desses quantos
estão swapped-out?
- Quantos processos existem no sistema que não estão associados a
terminais?
- Qual o processo que está a usar mais tempo de CPU?