2010-04-01 9 views
13

Estoy estudiando para mis exámenes finales en mi especialización en CS sobre los sistemas distribuidos y los sistemas operativos.Tarea frente a proceso, ¿realmente hay alguna diferencia?

Estoy en la necesidad de una buena definición para los términos tarea, proceso y subprocesos. Hasta ahora estoy seguro de que un proceso es la representación del programa en ejecución (o suspendido, pero iniciado) con su propia memoria, contador de programa, registros, pila, etc. (bloque de control de proceso). Los procesos pueden ejecutar subprocesos que comparten memoria, de modo que la comunicación a través de la memoria compartida es posible en contraste con los procesos que tienen que comunicarse a través de IPC.

Pero, ¿cuál es la diferencia entre las tareas y el proceso. A menudo leo que son intercambiables y que el término tarea ya no se usa. ¿Es eso realmente cierto?

Respuesta

5

Los procesos y los hilos son los mecanismos, la tarea es más conceptual. Puede poner en cola un montón de trabajo para ejecutar de forma asíncrona, en Windows con .NET, por ejemplo, esto se ejecuta en un subproceso del grupo de subprocesos. Con OpenMP, una tarea sería parte de su bucle for ejecutado en un núcleo.

Notas relacionadas menores: en Windows, también hay trabajos, grupos de hilos y fibras para mecánica. Además, un proceso no es nada sin al menos un hilo ejecutándose.

0

Depende de su contexto.

En Ada, una tarea es una construcción en el lenguaje de programación para permitir la concurrencia.

No se especifica qué constructo de sistema operativo se debe utilizar para implementarlo, pero permite memoria compartida entre tareas, por lo que un subproceso sería una implementación más natural.

0

Creo que depende del sistema operativo subyacente que término se utiliza.

También podría pensar en la tarea como una pieza de código en ejecución. Entonces, una parte de un hilo o una parte de un proceso podría ser una tarea.

12

El término "tarea" se utiliza sobre todo en el contexto de scheduling *, cuando se puede hacer referencia a un hilo o un proceso * ***, que puede ser programado para ejecutarse en un procesador.
Desde el punto de vista del planificador puede haber poca o ninguna diferencia entre un subproceso y un proceso; ambos representan una tarea que debe programarse.

Recientemente, el término "tarea" está ganando un uso más generalizado, especialmente entre los desarrolladores de .NET, gracias a, p. el Task Parallel Library. Dentro de él, las tareas son unidades de trabajo que pueden ser programadas para ejecutarse en subprocesos desde pool of worker threads.

* por ejemplo, en kernel programming, esp. on Linux
** teóricamente, se podría compensar sus entidades programables

+0

He encontrado esta respuesta mucho más útil que la aceptada – martriay

1

Proceso de procesos es una secuencia que se produce de forma natural o diseñados de operaciones o eventos, posiblemente tomando tiempo, espacio, experiencia u otro recurso, que produce algún resultado.Un proceso puede identificarse por los cambios que crea en las propiedades de uno o más objetos bajo su influencia

Subproceso Los subprocesos son similares a los procesos, ya que ambos representan una secuencia única de instrucciones ejecutadas en paralelo con otras secuencias, ya sea por división en el tiempo o multiprocesamiento. Los hilos son una manera para que un programa para dividirse en dos o más simultáneamente las tareas en ejecución

Tarea un conjunto de instrucciones de programa se carga en memoria

2

soy de la vieja escuela. Estrictamente hablando, "procesamiento" es un trabajo realizado en la memoria que no involucra operaciones de entrada/salida. Una "tarea" es un proceso que incluye operaciones de E/S. En consecuencia, un sistema multitarea puede ejecutar flujos de E/S concurrentes, mientras que un sistema de multiprocesamiento debe realizar tareas para conmutar su E/S. Las PC solo tienen un mouse, teclado, etc., así que no son sistemas multitarea para mí. Considero que un mainframe es un sistema multitarea.

Enhebrar es una técnica para cambiar el contexto de procesamiento. Permite que un procesador físico controle múltiples procesos. Sin relación directa a las tareas.

Cuestiones relacionadas