Sistemas de Operação

Aula Prática 1: 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.

  1. Crie um ficheiro para gravar os comandos que irá invocar e as respostas dadas pelo sistema.
  2. Registe a data e a hora com o comando date.
  3. Use o comando pstree para visualizar a hierarquia dos processos em execução e em seguida identifique o próprio comando pstree nessa hierarquia.
  4. 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.
  5. Execute o comando ps e determine qual o ID do seu processo.
  6. Descubra qual a shell que está a executar.
  7. Descubra mais informação sobre o seu processo usando ps -f, ps l ou ps u.
  8. Qual é o ID do processo-pai do seu processo?
  9. Execute o comando ps aux e consulte a man-page do comando ps para determinar o significado das colunas TIME e STIME?
  10. Inicie o editor emacs e em seguida suspenda a sua execução com Ctrl-z. Como é que isso afecta a sua lista de processos e o seu estado?
  11. Use os comandos ps e wc para determinar quantos processos estão a executar no sistema.
  12. Consulte a man-page do ps para descobrir como listar todos os seus processos.
  13. Do total dos seus processos, quantos estão em cada um dos seguintes estados: running, sleeping, zombie e stopped?
  14. Qual o processo que está a usar mais tempo de CPU?
  15. Quantos processos estão a correr no sistema e desses quantos estão swapped-out?
  16. Qual é o ID do pai de todos os processos do sistema?
  17. Quantos processos existem no sistema que não estão associados a terminais?