Propriedades de um processo
Last updated
Last updated
O sistema operacional enxerga tudo como uma unidade de concorrência. Ou seja, o teu programa, que está encapsulado em um processo, é uma unidade de concorrência. Vamos relembrar as propriedades básicas de um processo UNIX-like:
processos têm estado privado e não compartilham memória
processos se comunicam uns com os outros por envio de mensagens - IPC, ou Inter-Process Communication -, que podem ser pipes, arquivos, FIFO, sockets etc (veja este meu artigo sobre UNIX pipes para entender mais sobre IPC)
processos têm um identificador único no sistema (PID)
Há situações em que nosso programa precisa escalar para atender uma determinada demanda, como por exemplo requisições que chegam no sistema.
Se pararmos pra refletir um pouco, uma forma de escalar seria aumentar o "número de programas" do nosso sistema, correto? Essa técnica baseia-se em replicar o mesmo processo N vezes, como se fossem clones.
Pois é, o sistema operacional fornece uma syscall chamada clone.