Diferença entre um processo e um encadeamento

Por favor, encontre abaixo a diferença entre processo e thread.

PROCESSO

  • O processo é uma abstração do programa em execução.
  • Cada processo possui um thread por padrão e pode criar mais threads.
  • O processo é um contexto no qual os threads são executados.
  • Não fornece utilização completa do hardware disponível e verdadeiro paralelismo.
  • O processo é mais exigente em relação aos recursos.
  • Cada processo possui seu próprio segmento de código, segmento de dados, segmento de pilha e contexto do kernel (estruturas de VM, a tabela de descritores, etc.).
  • O processo é pesado, porque quando o processo é criado, o sistema operacional cria um PCB (bloco de controle do processo) que inclui itens como identificação do processo, registros de estado, contador, lista de recursos, lista de arquivos abertos, informações sobre gerenciamento de memória e tudo. Essas informações são necessárias para o agendamento de processos pelo SO (para cada processo obter tempo adequado na CPU).
  • Processo executado em espaço de endereço separado.
  • Os processos devem usar a comunicação entre processos para se comunicar com os processos irmãos.
  • A troca de contexto no processo é cara e lenta para o kernel do sistema operacional, porque há muito mais estado para alterar.
  • Os processos geralmente formam uma hierarquia em árvore.
  • Alterações no processo pai não afetam os processos filho ou de mesmo nível.

TÓPICOS

  • O encadeamento é a unidade de execução em um processo que pode ser agendado pelo agendador do SO.
  • Utilização completa do hardware disponível e fornece verdadeiro paralelismo.
  • Threads são menos exigentes em relação aos recursos.
  • Os threads compartilham o segmento de código, o segmento de dados e o contexto do kernel, mas ele possui seu próprio segmento de pilha.
  • O encadeamento é leve, pois carrega menos informações de estado que o processo.
  • Threads de um processo compartilham espaço de endereço.
  • Os threads podem se comunicar diretamente com outros threads desse processo.
  • A troca de contexto no thread é fácil e rápida.
  • Todos os threads de um processo são pares.
  • Alterações no encadeamento principal [cancelamento, alteração de prioridade] podem afetar o comportamento de outros encadeamentos desse processo;

Para mais detalhes, consulte o meu blog:

Diferença entre processo e threads - EmbHack