Tecnologia
Um sistema pode executar um conjunto de grade de processos simultâneos e concorrentes, uns dos principais eventos que levam à criação de processos são: Ao iniciar um sistema operacional; um processo principal cria um novo processo chamado fork, que o usuário executa comando, esse processo cria um segundo processo para tratar de uma requisição especifica. As condições que levam o termino de um processo pode ser causada por quatro fatores; Saída Normal (voluntária); Saída por erro (voluntária); Erro fatal (involuntária); Cancelamento por um outro processo(involuntário).
A hierarquia de processos funciona da seguinte maneira um processo principal cria outro processo e esse processo cria seu próprio processo etc. Com isso forma-se uma hierarquia de processos o Linux chama isso de “grupo de processos”, já o Windows não possui um conceito de hierarquia de processos, pois todos os processos criados no mesmo nível.
Threads é a linha de execução independente dentro de um mesmo processo. Múltiplos threads são necessários quando um pedido de entrada e saída devem ser tratados concorrentemente e que precisam compartilhar algumas estruturas de dados. Cada thread tem a sua pilha própria, mais compartilha o mesmo espaço de endereçamento do processo em que foi criada, se dois threads executam o mesmo procedimento cada uma terá a sua própria cópia das variáveis locais, os threads também podem acessar todos os dados globais do programa e o heap (memória alocada dinamicamente), nesse acesso de dados globais os threads precisam ter acesso em regime de exclusão mútua. Ao contrário de processos, threads compartilham a mesma região de memória. Cada thread possui sua própria pilha e contexto de CPU e um thread pode estar nos estados running, blocked e redy.
Processos e thread interagem para trabalhar conjuntamente em um sistema, eles trocam dados, utilizam os serviços