Informatica
Sistemas Operativos ETI - IGE
2º Semestre 2005/2006
Aula 3
Processos
1. Quando estamos a "dar comandos ao Unix" estamos na realidade a trabalhar com um programa, designado shell, que lê, interpreta e executa os nossos comandos. Como em todos os casos, para executar esse programa o SO criou um processo; tipicamente este processo é criado quando fazemos login (ou criamos uma janela no ambiente gráfico) e termina quando fizermos logout (ou exit para fechar a janela). Para listar os processos em curso na máquina pode usar o comando ps. Este comando mostra várias propriedades do processo, como seja o utilizador, programa em execução etc. E mostra o número que identifica univocamente cada processo (pid - process id). Exemplo: experimente o comando ps Qual o pid do programa shell que tem em execução? 2. A maior parte dos comandos que damos à shell são na realidade programas. Por exemplo, o comando ls corresponde ao programa /bin/ls. Executar o comando é, na realidade, executar este programa. Assim, para executar o comando a shell lança um novo processo, processo esse que decorre enquanto o programa estiver em execução. Exemplo: a execução do comando ps faz aparecer pelo menos dois processos, a shell e o próprio ps que, enquanto está em execução, é ele próprio um processo. O comando ps tem inúmeras variantes (ver man ps). Por exemplo: ps -u User Permite ver todos os processos do utilizador em curso na máquina. Exemplo: abra outra janela para executar uma shell; veja nessa nova janela o número de processo de todas as shell em curso; Exemplo: execute o comando cat /etc/passwd | more quais os processos em curso enquanto este comando está em execução?
ISCTE – DCTI
Sistemas Operativos – Processos
Pág. 1
3. A shell é um programa conceptualmente simples: um ciclo, que aceita e executa comandos, até aparecer um comando que o manda terminar. #include <stdio.h> main() { char s[100]; while ( 1 ) { printf ("comando-> ");