Processo (Process)
Definição
Processo (Process) é uma instância de um programa em execução.
Ele representa a execução isolada de um conjunto de instruções, com seu próprio espaço de memória, recursos e contexto de execução.
Cada processo é independente: não compartilha variáveis, pilha ou heap com outros processos — o que garante isolamento e segurança, mas também maior custo de comunicação quando comparado a threads.
Objetivos do conceito de Processo
- Isolar aplicações para garantir que falhas em uma não afetem outra.
- Permitir execução simultânea de programas independentes no sistema operacional.
- Facilitar a distribuição de recursos (memória, CPU) de maneira controlada.
- Executar programas em paralelo utilizando múltiplos núcleos.
Exemplo prático (Python com multiprocessing
)
from multiprocessing import Process
def diga_ola():
print("Olá de um processo separado!")
if __name__ == "__main__":
p = Process(target=diga_ola)
p.start()
p.join()
Esse código cria um novo processo separado do principal. Ambos rodam em paralelo, com seus próprios contextos de execução.
Saída esperada
Olá de um processo separado!
Visualização: Processo Principal e Processo Filho
[Processo Principal]
|
|-- define a função diga_ola()
|-- cria p = Process(target=diga_ola)
|-- chama p.start() ─────────────┐
| |
| [Processo Filho]
| └── executa diga_ola()
|
└-- chama p.join() para aguardar o fim do processo filho
p = Process(...)
apenas define o que o processo fará. O novo processo só é criado de fato emp.start()
, quando o sistema operacional aloca um segundo processo independente.
O ciclo do processo
[Programa] --> [Processo iniciado] --> [Executa código isoladamente] --> [Finaliza ou comunica com outro processo]
Cada processo tem seu próprio espaço de memória.
A comunicação entre processos é feita por mecanismos específicos (como pipes ou filas).
Criar processos é mais custoso que criar threads, mas garante isolamento forte.