Descrição: Usa a biblioteca psutil
para listar processos ativos com PID, nome e usuário.
Requer: pip install psutil
import psutil for proc in psutil.process_iter(['pid', 'name', 'username']): print(proc.info)
Descrição: Demonstra a criação de um processo filho com os.fork()
. Funciona apenas em sistemas UNIX/Linux.
import os print("Pai:", os.getpid()) pid = os.fork() if pid == 0: print("Filho:", os.getpid()) else: print("Pai criou o filho:", pid)
Descrição: Executa um comando externo (como ls -l
) usando o módulo subprocess
.
import subprocess print("Executando 'ls -l'") subprocess.run(["ls", "-l"])
Descrição: Executa várias tarefas em paralelo, com processos isolados usando o módulo multiprocessing
.
from multiprocessing import Process import os def tarefa(): print(f"PID={os.getpid()}, PPID={os.getppid()}") processos = [] for i in range(3): p = Process(target=tarefa) p.start() processos.append(p) for p in processos: p.join()
Descrição: Simula um processo em estado de espera (bloqueado) por 5 segundos.
import os, time print("Executando", os.getpid()) time.sleep(5) print("Finalizado!")
Descrição: Monitora o uso da CPU em tempo real usando psutil
.
Requer: pip install psutil
import psutil, time while True: print(f"Uso de CPU: {psutil.cpu_percent()}%") time.sleep(1)
1. Qual função cria um novo processo em sistemas Unix?
2. Qual módulo permite a execução de outro programa?
3. Qual comando simula bloqueio em processos?
4. O que o método join()
faz?
5. Qual biblioteca fornece informações do sistema e processos?
1. Explique o que diferencia multiprocessing
de threading
no Python.
2. O que acontece se um processo pai não esperar o filho?
3. Como fork()
e subprocess
se diferenciam?
4. Por que monitorar uso de CPU pode ser útil em SO?
5. Como saber quais processos estão ativos no sistema?