Se um encadeamento for apenas outro processo, como ele reduz a carga de trabalho da CPU e manipula a espelhamento?

-1

O que significa quando eles dizem que um thread é um processo leve ? Se é apenas outro processo, como ele reduz a carga de trabalho da CPU?

    
por Vimugdh Lall 18.09.2017 / 11:21

1 resposta

2

Um encadeamento não é apenas outro processo. Depois de entender quais processos e segmentos sua pergunta deve ser respondida.

Um processo pode ser comparado a uma família humana e os segmentos são seus membros. O processo comprova o ambiente e gerencia os recursos usados pelos encadeamentos. Em si, um processo não pode fazer nada, tudo o que faz é feito pelos seus threads de membros. Um processo é apenas o lar em que os segmentos vivem e funcionam. Um processo não pode existir a menos que tenha pelo menos um thread. Quando o último encadeamento de um processo terminar, o sistema operacional destruirá o processo e liberará todos os recursos que estava usando. Não existe tal coisa como um segmento independente. Deve ser um membro de um processo.

Normalmente, um aplicativo consistiria em um processo que consistiria em um ou mais segmentos. Aplicativos grandes, por vezes, têm vários processos. O SO se esforça muito para isolar processos uns dos outros para evitar interferência acidental ou mal-intencionada. O sistema operacional dá a cada processo a ilusão de que está sendo executado sozinho no computador. Tem que fazer algum trabalho real para aprender sobre a existência dos outros. Os processos podem compartilhar recursos e trabalhar juntos, mas o desenvolvedor deve trabalhar para conseguir isso. Não é o estado natural.

Threads são projetados para compartilhar recursos e trabalhar juntos. Um processo com apenas um thread é mais fácil de gerenciar, mas vários threads oferecem maior flexibilidade e recursos. Aplicativos grandes quase sempre usam vários segmentos. Isso requer trabalho por parte do desenvolvedor para garantir que eles trabalhem em harmonia e não interfiram uns com os outros. Um exemplo disso seria um dado de leitura de thread enquanto outro o modificava. Os resultados disso seriam imprevisíveis.

Os segmentos são mais leves que os processos porque não têm a sobrecarga do processo. Esta sobrecarga é principalmente memória e faz pouca diferença para a CPU, exceto quando o processo é criado e isso só acontece uma vez. Geralmente, é mais eficiente criar um novo encadeamento em um processo do que criar um novo processo inteiro. Mas por razões práticas, o último é frequentemente necessário.

    
por 18.09.2017 / 16:53