Tarefa vs. processo, há realmente alguma diferença?

Estou a estudar para os meus exames finais na minha licenciatura em Ciências Sociais sobre sistemas de distribuição e sistemas operativos.

Estou na necessidade de uma boa definição para os Termos tarefa, processo e threads. Até agora estou confiante de que um processo é a representação de executar (ou suspenso, mas iniciado) programa com sua própria memória, contador de programa, registros, pilha, etc (bloco de controle de processo). Processos podem executar threads que compartilham memória, de modo que a comunicação através de memória compartilhada é possível em contraste com os processos que têm que se comunicar através de IPC.

Mas qual é a diferença entre tarefas e processo? Leio muitas vezes que são permutáveis e que o termo "tarefa" já não é usado. Isso é mesmo verdade?

Author: Jens Kohl, 2010-04-01

6 answers

Processos e threads são a mecânica, a tarefa é mais conceitual. Você pode colocar em fila um chuck de trabalho para executar assíncronamente, no windows com.NET, por exemplo, isso é executado em um thread da piscina de threads. Com o OpenMP, uma tarefa seria parte de seu loop for rodando em um núcleo. Notas menores relacionadas: nas janelas, há também trabalhos, filas e fibras para a mecânica. Além disso, um processo não é nada sem pelo menos um fio rodando.
 5
Author: Chris O, 2010-04-01 14:35:02

Prazo "tarefa" é usado principalmente no contexto de programação*, quando ele pode se referir tanto a um thread ou um *processo de***, que pode ser agendado para ser executado em um processador.
Do ponto de vista do scheduler pode haver pouca-a-nenhuma diferença entre um thread e um processo - ambos representam uma tarefa que deve ser agendada.

Recentemente, o termo "tarefa" está a ganhar um uso mais generalizado, especialmente entre os programadores do. NET, graças, por exemplo, à Biblioteca paralela de Tarefas . Dentro dele, as tarefas são unidades de trabalho que podem ser programadas para executar em threads a partir de um conjunto de threads de trabalhadores.

* p. ex. em programação de kernel, esp. no Linux
** teoricamente, pode criar as suas entidades agendáveis.

 13
Author: Andras Vass, 2010-04-01 20:22:29
Sou da velha guarda. Estritamente falando, "processamento" é um trabalho realizado na memória que não envolve operações de entrada/saída. Uma "tarefa"é um processo que inclui operações de E / S. Assim, um sistema multi-tasking pode executar fluxos de E/S simultâneos, enquanto um sistema multi-processamento deve alternar seus PCs de E/S tem apenas um mouse, teclado, etc, então eles não são sistemas multi-tasking para mim. Considero um mainframe um sistema multi-tasking.

A roscagem é uma técnica para mudar o contexto de processamento. Permite que um processador físico conduza vários processos. Sem relação directa com as tarefas.

 2
Author: RumbaGuy, 2015-01-20 04:15:31

Processo Processo é uma sequência natural ou projetada de operações ou eventos, possivelmente tomando tempo, espaço, experiência ou outro recurso, que produz algum resultado. Um processo pode ser identificado pelas mudanças que cria nas propriedades de um ou mais objetos sob sua influência

Tópico Threads são similares aos processos, na medida em que ambos representam uma única sequência de instruções executadas em paralelo com outras sequências, seja por corte de tempo ou multiprocessamento. Os tópicos são uma forma de um programa se dividir em duas ou mais tarefas em execução simultânea

Tarefa um conjunto de instruções do programa é carregado na memória

 1
Author: Riya, 2011-12-07 18:02:58
Depende do seu contexto.

Na Ada, uma tarefa é uma construção na linguagem de programação para permitir a concorrência.

Não está especificado qual a construção do sistema operacional deve ser usada para implementá-lo, mas permite memória compartilhada entre as tarefas, então um tópico seria uma implementação mais natural.

 0
Author: Oddthinking, 2010-04-01 14:15:33
Acho que depende do sistema operativo subjacente que o termo é usado.

Você também pode pensar na tarefa como um pedaço de código em execução. Então uma parte de um fio ou uma parte de um processo pode ser uma tarefa.

 0
Author: schaechtele, 2010-04-01 14:17:24