Qual é a diferença entre thread, processo e programa?


Melhor resposta

Programa , Processo e Threads são três conceitos básicos dos sistemas operacionais com os quais todo engenheiro de ciência da computação deve estar familiarizado . Aqui, explicarei o que cada um deles representa e como eles diferem uns dos outros.

O que é um programa?

Programa é um arquivo executável que contém o conjunto de instruções escritas para realizar um trabalho específico em seu computador. Por exemplo, notepad.exe é um arquivo executável que contém o conjunto de instruções que nos ajudam a editar e imprimir os arquivos de texto.

Programas não são armazenados na memória principal do computador. Eles são armazenados em um disco ou em uma memória secundária do computador. Eles são lidos na memória primária e executados pelo kernel. Um programa às vezes é chamado de entidade passiva , pois reside em uma memória secundária.

O que é um processo?

Processo é uma instância em execução de um programa. Por exemplo, quando você clica duas vezes em um ícone de bloco de notas em seu computador, é iniciado um processo que executará o programa de bloco de notas.

Um processo às vezes é chamado de entidade ativa uma vez que reside na memória primária e deixa a memória se o sistema for reiniciado. Vários processos podem estar relacionados ao mesmo programa. Por exemplo, você pode executar várias instâncias de um programa de bloco de notas. Cada instância é referida como um processo.

O que é um tópico ?

Thread é a menor unidade executável de um processo. Por exemplo, quando você executa um programa de bloco de notas, o sistema operacional cria um processo e inicia a execução da thread principal desse processo.

Um processo pode ter várias threads. Cada thread terá sua própria tarefa e caminho de execução em um processo. Por exemplo, em um programa de bloco de notas, um thread receberá entradas do usuário e outro thread imprimirá um documento.

Todos os threads do mesmo processo compartilham a memória desse processo. Como threads do mesmo processo compartilham a mesma memória, a comunicação entre os threads é rápida.

Resumindo…

Espero que, a esta altura, você tenha entendido bem as diferenças entre o programa, processo e thread e também tenha descoberto a relação entre eles … Se não, descubra abaixo.

O programa é um superconjunto de processos, enquanto, processo é um superconjunto de discussão.

Aproveite a aprendizagem !!!

Imagem cortesia: www.google.com

Resposta

  1. Programa : O programa nada mais é do que o conjunto de todas as instruções que requerem a realização de algum trabalho específico. Antes de entrar em execução, eles devem ser convertidos em códigos binários que devem ser compreendidos pelo carregador do OS. como arquivo EXE que é armazenado em Portable Executable (PE) Formato na memória secundária, como o disco rígido. Um processo geralmente é definido como uma instância de um Programa em execução e consiste em dois componentes: 1) Um objeto kernel que o sistema operacional usa para gerenciar o processo. O objeto kernel também é onde o sistema mantém as informações estatísticas sobre o processo. 2) Um espaço de endereço que contém todo o código e dados executáveis ​​ou do módulo DLL. Ele também contém alocações de memória dinâmica, como pilhas de threads e alocações de heap. Os processos são inertes. Para um processo realizar qualquer coisa, ele deve ter uma thread que é executado em seu contexto; este thread é responsável por executar o código contido no espaço de endereço do processo. Na verdade, um único processo pode conter vários threads, todos eles executando código “simultaneamente” no espaço de endereço do processo. Para fazer isso, cada thread tem seu próprio conjunto de registros de CPU e sua própria pilha. Cada processo tem pelo menos um thread que executa código no espaço de endereço do processo. Se não houvesse threads executando código no espaço de endereço do processo, não haveria razão para o processo continuar existindo, e o sistema destruiria automaticamente o processo e seu espaço de endereço.
  2. Processo : Cada processo fornece os recursos necessários para executar um programa. Um processo tem um espaço de endereço virtual, código executável, identificadores abertos para objetos do sistema, um contexto de segurança, um exclusivo identificador de processo, variáveis ​​de ambiente, uma classe de prioridade, tamanhos de conjunto de trabalho mínimo e máximo e pelo menos um thread de execução. Cada processo é iniciado com um único thread, geralmente chamado de thread primário, mas pode criar threads adicionais a partir de qualquer um de seus threads .
  3. Thread : Um thread é uma entidade dentro de um processo que pode ser agendada para execução. Todos os threads de um processo compartilham seu espaço de endereço virtual e recursos do sistema. Além disso, cada thread mantém manipuladores de exceção, uma prioridade de agendamento, armazenamento local de thread, um identificador de thread exclusivo e um conjunto de estruturas que o sistema usará para salvar o contexto de thread até que seja planejado. O contexto de thread inclui o conjunto de registros de máquina do thread, a pilha do kernel, um bloco de ambiente de thread e uma pilha de usuário no espaço de endereço do processo do thread. Threads também podem ter seu próprio contexto de segurança, que pode ser usado para representar clientes.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *