“Processus” est bien défini; “travail” et “tâche” est ambiguë.
Fondamentalement une tâche est ce travail est fait, tout un processus est comment c'est fait, généralement anthropomorphised comme qui t-il. Une tâche est un ensemble de unité de travail, et est composé de tâches. Dans la pratique, l'utilisation est très contradictoire, et souvent, la “tâche” == “processus”, bien que formellement un processus effectue une tâche.
Processus est bien définie de systèmes d'exploitation concept, tel qu'il est fil: un processus est une instance d'un programme en cours d'exécution, et est l'unité de base de ressources: un processus se compose d'ou le “propriétaire” de son image, le contexte d'exécution, mémoire, fichiers, etc.; étymologiquement un processus étapes effectuées par un processus deou. Un processus est composé d'un ou de plusieurs threads, qui sont l'unité de planification, et se composent de quelques sous-ensemble d'un processus (éventuellement partagé avec d'autres threads): contexte d'exécution et peut-être plus. Traditionnellement, un thread est l'unité de exécution sur un processeur (un thread est “ce qui est en cours d'exécution”), mais avec des processeurs multi-core et threads matériels, certains la planification est effectuée au niveau d'un seul cœur. Il existe différents types de processus et de threads, et la définition exacte varie entre plates-formes.
Travail et tâche sont aujourd'hui vague, ambiguë, notamment tâche. Un “emploi” signifie le plus souvent un ensemble de processus, tandis qu'un “tâche” peut signifier un processus, un fil, un processus ou un thread, ou, distinctement, une unité de travail fait par un processus ou thread.
Le terme “emploi” traditionnellement, les moyens d'une “feuille de travail” (par opposition à “l'occupation”), et est utilisé comme tel dans la fabrication, dans le membre de phrase “travail de production”, qui signifie “la coutume de la production”, où il est en contraste avec lot de production (de nombreux éléments à la fois, une étape à la fois) et flux de production (de nombreux éléments à la fois, toutes les étapes en même temps, par élément). Notez que ces distinctions sont devenues floues dans l'informatique, notamment dans l'oxymore terme “traitement par lots”.
En informatique, le “travail” est originaire de non-traitement interactif sur des mainframes, notamment dans d'IBM Le Contrôle Du Travail De Langue pour la DOS/360 et OS/360 au milieu des années 1960, et officiellement s'entend d'une “unité de travail pour un système d'exploitation”, qui se compose de étapes, dont chacun est un demande pour exécuter un programme spécifique. Les premiers ordinateurs principalement fait le traitement par lot (exécutant le même programme sur de nombreuses données d'entrée), à l'instar de recensement ou de facturation, et un écart-type de travail a été la compilation d'un programme à partir de la source, qui peut ensuite traiter lots de données. Plus tard lot est venu à être appliqué à tous les non-interactive de l'informatique, que ce soit l'un ou plusieurs des éléments.
Dans les shells Unix, un “emploi” est le shell de représentation pour un groupe de processus – un ensemble de processus qui peuvent tous être envoyé un signal concrètement d'un pipeline et de son descendant processus; à noter que l'exécution d'un script démarre un travail, exactement comme dans les mainframes. Le travail n'est pas terminé jusqu'à ce que le processus complet, et un travail peut être arrêté, repris, ou licencié, qui correspond à la suspension, la reprise ou de la terminaison du processus. Ainsi, tandis que les officiellement un travail est distinct du processus de groupe, cette distinction est subtile et donc les gens utilisent souvent le “travail” qui signifie “l'ensemble des processus”.
Emplois traditionnels (et les lots) ont finis de saisie de données et le traitement terminé, avec succès ou non. En revanche, lors de l'exécution d'un serveur, par exemple un serveur web, l'entrée, comme un flux de demandes, est illimité (officiellement codata). Ceci est analogue à l'écoulement de la production, et le processus (ou “travail”) ne se termine jamais, mais il peut être résilié ou “annulée”. Dans une boutade, “d'un serveur de travail n'est jamais terminé” (officiellement, statut de sortie sera ANNULÉE, non TERMINÉ/SUCCÈS).
Le terme “étape” a du sens pour séquentielle de l'informatique – une étape après l'autre – mais une fois que vous avez simultanées de l'informatique, vous avez une ensemble de tâches, qui ne sont pas nécessairement dans un ordre particulier, plutôt que d'un séquence de étapes. Le terme “tâche” a été popularisé par l'OS/360, qui présentait “Multiprogramming avec un nombre Fixe de Tâches (MFT)” et “Multiprogramming avec un nombre Variable de Tâches (MVT)”, bien que dans ce cas, la “tâche” est utilisé comme synonyme de “processus” ou “thread”, comme la tâche de base est “exécuter ce programme” (donc, résultant de processus/thread exécute la tâche), qui est probablement la source de l'ambiguïté.
Officiellement “le multitâche” signifie “travailler sur plusieurs tâches simultanément”, mais dans la pratique, signifie un système d'exploitation (ou de la machine virtuelle, ou l'exécution, ou de processus individuels) “l'exécution de plusieurs processus/threads simultanément”.
Une distinction claire entre les tâches que travail et de processus/threads comme la façon dont le travail est fait est donné dans un la tâche de la file d'attente, comme dans ce diagramme d'un le pool de thread: il y a un (gros, potentiellement illimité) de la file d'attente des tâches entrantes (en attente), qui sont exécutées par une (petite, souvent fixe) de l'ensemble des threads, chaque tâche exécutée par un seul fil, et chaque fil de l'exécution d'une seule tâche à la fois: les tâches actives correspondent aux threads actifs. Concrètement, envisager un serveur web multi-threadé, où les tâches sont “service de cette demande de page web”, et chaque thread extrait (à partir de la disquette ou de la mémoire) ou du rendu de la page web (disons un modèle ou PHP), puis renvoie le résultat.
Comme vous pouvez le voir à partir de ce dernier exemple, il est souvent utile de distinguer les tâches de threads ou processus, et en particulier les contextes de “travail” et “tâche” ont des significations spécifiques, si, en général, ils sont ambigus.
La plus claire est donc à éviter à l'aide de “travail” ou “tâche” et, au lieu de se référer à un “ensemble de processus”, “processus”, ou “thread”, et pour les serveurs à consulter demandes (ou requêtes) plutôt que de tâches.
Ils peuvent être tous considérés de la même chose, dépend vraiment du contexte. Un processus est généralement un groupe isolé qui est géré par le système d'exploitation. Un emploi est plus souvent d'un niveau d'application du terme ou tout simplement un script qui est exécuté à faire un ensemble spécifique de tâche(s). Une tâche est souvent une partie d'un travail, parfois la seule partie.
Bon point que ce sont ambigus, que "processus" est un système d'exploitation de l'entité, et que le "travail" est une entité qui est souvent composé de "tâches"; c'est un bon reflet de la compréhension commune! Cependant, cette réponse est assez vague et manque de détails, et me laisse voulant plus. (Donc plus de réponse ci-dessous.)
Une tâche est une unité de travail qui a été soumis par l'utilisateur. Il est généralement associé avec le lot des systèmes. Un lot de travail peut être une demande d'exécuter plusieurs programmes en une succession de [pg 144]. Toutefois, on peut présumer que l'emploi est une demande d'exécution d'un programme unique. Par conséquent, selon le contexte, un travail peut être un programme (nous avons l'habitude d'assumer ce), ou un ensemble de programmes (par exemple lot systèmes) [8].
Un processus est une entité active, ce qui nécessite un ensemble de ressources, y compris un processeur et registres spéciaux à exercer sa fonction. C'est une instance unique d'un programme exécutable. Donc, à partir d'ici, vous pouvez voir le lien entre un processus et un programme, donc, un emploi.
Le noyau Linux en interne représente le processus que les tâches [pg 742].
Source: les Systèmes d'Exploitation Modernes (3e édition) par Tanenbaum, publié par Pearson Education, Inc, 2009
Une tâche représente l'exécution d'un processus unique ou de plusieurs processus sur un nœud de calcul. Une collection de tâches qui est utilisé pour effectuer un calcul est connu comme un travail. Les emplois sont utilisées pour réserver les ressources requises par les tâches.
Bien...
Cela pourrait ne pas être aussi clair que décrit ici. Il peut très bien dépendre du système d'exploitation de certains on est dans la.
Par exemple lors de la compilation d'un Équipement NUMÉRIQUE OSF1 noyau (aussi connu comme TruUnix64) -- lorsque qu'Unix était encore existant à la fin des années quatre vingt dix, début du siècle, le terme TASK a été consacrée à la nombre de tâches en parallèle le noyau a été en mesure de gérer.
C'était un tableau fixe de tâches le noyau pourrait effectuer à un moment donné.
C'est donc la somme du processus, il pourrait spawn ainsi que des tâches qu'il a à faire, même si n'est pas vu comme le processus par ps. Ensuite, il a été d'un niveau très faible nombre de mesures a permis au noyau sur chaque NUMA nœud, pas quelque chose d'accessible à l'extérieur du noyau.
D'autre part, un système d'exploitation précédent comme DEC VMS a été connu pour avoir son OS de base de l'unité de travail (vous connecté de manière interactive en vertu d'un job) l'exécution éventuellement (en fonction du système et du compte des paramètres et des privilèges) nombre de processus à la fois. Un image (un exécutable) occupant alors un process et (la plupart du temps) plusieurs threads (l'OS a pris soin de multithreading par lui-même) à la fois.
Alors, le travail n'était pas d'application connexes, mais vraiment OS liés.
Un peu de la même façon Windows, qui ne supporte pas l' fork() comme un léger processus créateur, tend à créer processus (à l'aide d'un spawn - CreateProcess - primitive qui semble très semblable à celui qui existait sur VMS /OpenVMS il y a 40 ans) qui sont plus lourds que les systèmes Unix. Ici, nous avons le même mot (processus) pour décrire (en terme d'OS), deux réalités qui sont très différents: un processus de Windows a tendance à être plus proche d'un VMS travail que d'un véritable processus Unix.
Que je n'ai pas configurer/construire un Noyau Unix depuis TrueUnix64, je ne suis pas en mesure de discuter de la TÂCHE paramètre de noyau de Debian ou Linux OS le cas échéant. Il pourrait être intéressant que quelqu'un avec la connaissance intérieure de la tâches limite de ce type de système d'exploitation pourrait nous expliquer davantage sur ce concept dans ces systèmes.
De conclure: task, process, job, spawn, fork, thread... plus vous creusez dans les différents OS, le plus de variétés que vous obtenez et possible de définitions contradictoires vous visage.
Gilles
[non natifs de l'anglais le président, pardonnez mon anglais].
“Processus” est bien défini; “travail” et “tâche” est ambiguë.
Fondamentalement une tâche est ce travail est fait, tout un processus est comment c'est fait, généralement anthropomorphised comme qui t-il. Une tâche est un ensemble de unité de travail, et est composé de tâches. Dans la pratique, l'utilisation est très contradictoire, et souvent, la “tâche” == “processus”, bien que formellement un processus effectue une tâche.
Processus est bien définie de systèmes d'exploitation concept, tel qu'il est fil: un processus est une instance d'un programme en cours d'exécution, et est l'unité de base de ressources: un processus se compose d'ou le “propriétaire” de son image, le contexte d'exécution, mémoire, fichiers, etc.; étymologiquement un processus étapes effectuées par un processus deou. Un processus est composé d'un ou de plusieurs threads, qui sont l'unité de planification, et se composent de quelques sous-ensemble d'un processus (éventuellement partagé avec d'autres threads): contexte d'exécution et peut-être plus. Traditionnellement, un thread est l'unité de exécution sur un processeur (un thread est “ce qui est en cours d'exécution”), mais avec des processeurs multi-core et threads matériels, certains la planification est effectuée au niveau d'un seul cœur. Il existe différents types de processus et de threads, et la définition exacte varie entre plates-formes.
Travail et tâche sont aujourd'hui vague, ambiguë, notamment tâche. Un “emploi” signifie le plus souvent un ensemble de processus, tandis qu'un “tâche” peut signifier un processus, un fil, un processus ou un thread, ou, distinctement, une unité de travail fait par un processus ou thread.
Pour donner une idée de la façon de confondre les noms,
Gestionnaire Des Tâches De Windows gère (en cours) processus, tandis que
Planificateur De Tâches De Windows horaires programmes à exécuter à l'avenir, ce qui est traditionnellement connu comme un planificateur de tâches, et utilise le
.job
extension!Le terme “emploi” traditionnellement, les moyens d'une “feuille de travail” (par opposition à “l'occupation”), et est utilisé comme tel dans la fabrication, dans le membre de phrase “travail de production”, qui signifie “la coutume de la production”, où il est en contraste avec lot de production (de nombreux éléments à la fois, une étape à la fois) et flux de production (de nombreux éléments à la fois, toutes les étapes en même temps, par élément). Notez que ces distinctions sont devenues floues dans l'informatique, notamment dans l'oxymore terme “traitement par lots”.
En informatique, le “travail” est originaire de non-traitement interactif sur des mainframes, notamment dans d'IBM Le Contrôle Du Travail De Langue pour la DOS/360 et OS/360 au milieu des années 1960, et officiellement s'entend d'une “unité de travail pour un système d'exploitation”, qui se compose de étapes, dont chacun est un demande pour exécuter un programme spécifique. Les premiers ordinateurs principalement fait le traitement par lot (exécutant le même programme sur de nombreuses données d'entrée), à l'instar de recensement ou de facturation, et un écart-type de travail a été la compilation d'un programme à partir de la source, qui peut ensuite traiter lots de données. Plus tard lot est venu à être appliqué à tous les non-interactive de l'informatique, que ce soit l'un ou plusieurs des éléments.
Dans les shells Unix, un “emploi” est le shell de représentation pour un groupe de processus – un ensemble de processus qui peuvent tous être envoyé un signal concrètement d'un pipeline et de son descendant processus; à noter que l'exécution d'un script démarre un travail, exactement comme dans les mainframes. Le travail n'est pas terminé jusqu'à ce que le processus complet, et un travail peut être arrêté, repris, ou licencié, qui correspond à la suspension, la reprise ou de la terminaison du processus. Ainsi, tandis que les officiellement un travail est distinct du processus de groupe, cette distinction est subtile et donc les gens utilisent souvent le “travail” qui signifie “l'ensemble des processus”.
Emplois traditionnels (et les lots) ont finis de saisie de données et le traitement terminé, avec succès ou non. En revanche, lors de l'exécution d'un serveur, par exemple un serveur web, l'entrée, comme un flux de demandes, est illimité (officiellement codata). Ceci est analogue à l'écoulement de la production, et le processus (ou “travail”) ne se termine jamais, mais il peut être résilié ou “annulée”. Dans une boutade, “d'un serveur de travail n'est jamais terminé” (officiellement, statut de sortie sera ANNULÉE, non TERMINÉ/SUCCÈS).
Le terme “étape” a du sens pour séquentielle de l'informatique – une étape après l'autre – mais une fois que vous avez simultanées de l'informatique, vous avez une ensemble de tâches, qui ne sont pas nécessairement dans un ordre particulier, plutôt que d'un séquence de étapes. Le terme “tâche” a été popularisé par l'OS/360, qui présentait “Multiprogramming avec un nombre Fixe de Tâches (MFT)” et “Multiprogramming avec un nombre Variable de Tâches (MVT)”, bien que dans ce cas, la “tâche” est utilisé comme synonyme de “processus” ou “thread”, comme la tâche de base est “exécuter ce programme” (donc, résultant de processus/thread exécute la tâche), qui est probablement la source de l'ambiguïté.
Officiellement “le multitâche” signifie “travailler sur plusieurs tâches simultanément”, mais dans la pratique, signifie un système d'exploitation (ou de la machine virtuelle, ou l'exécution, ou de processus individuels) “l'exécution de plusieurs processus/threads simultanément”.
Une distinction claire entre les tâches que travail et de processus/threads comme la façon dont le travail est fait est donné dans un
la tâche de la file d'attente, comme dans ce diagramme d'un le pool de thread: il y a un (gros, potentiellement illimité) de la file d'attente des tâches entrantes (en attente), qui sont exécutées par une (petite, souvent fixe) de l'ensemble des threads, chaque tâche exécutée par un seul fil, et chaque fil de l'exécution d'une seule tâche à la fois: les tâches actives correspondent aux threads actifs. Concrètement, envisager un serveur web multi-threadé, où les tâches sont “service de cette demande de page web”, et chaque thread extrait (à partir de la disquette ou de la mémoire) ou du rendu de la page web (disons un modèle ou PHP), puis renvoie le résultat.
Comme vous pouvez le voir à partir de ce dernier exemple, il est souvent utile de distinguer les tâches de threads ou processus, et en particulier les contextes de “travail” et “tâche” ont des significations spécifiques, si, en général, ils sont ambigus.
La plus claire est donc à éviter à l'aide de “travail” ou “tâche” et, au lieu de se référer à un “ensemble de processus”, “processus”, ou “thread”, et pour les serveurs à consulter demandes (ou requêtes) plutôt que de tâches.
Ils peuvent être tous considérés de la même chose, dépend vraiment du contexte. Un processus est généralement un groupe isolé qui est géré par le système d'exploitation. Un emploi est plus souvent d'un niveau d'application du terme ou tout simplement un script qui est exécuté à faire un ensemble spécifique de tâche(s). Une tâche est souvent une partie d'un travail, parfois la seule partie.
Une tâche est une unité de travail qui a été soumis par l'utilisateur. Il est généralement associé avec le lot des systèmes. Un lot de travail peut être une demande d'exécuter plusieurs programmes en une succession de [pg 144]. Toutefois, on peut présumer que l'emploi est une demande d'exécution d'un programme unique. Par conséquent, selon le contexte, un travail peut être un programme (nous avons l'habitude d'assumer ce), ou un ensemble de programmes (par exemple lot systèmes) [8].
Un processus est une entité active, ce qui nécessite un ensemble de ressources, y compris un processeur et registres spéciaux à exercer sa fonction. C'est une instance unique d'un programme exécutable. Donc, à partir d'ici, vous pouvez voir le lien entre un processus et un programme, donc, un emploi.
Le noyau Linux en interne représente le processus que les tâches [pg 742].
Source: les Systèmes d'Exploitation Modernes (3e édition) par Tanenbaum, publié par Pearson Education, Inc, 2009
Une tâche représente l'exécution d'un processus unique ou de plusieurs processus sur un nœud de calcul. Une collection de tâches qui est utilisé pour effectuer un calcul est connu comme un travail. Les emplois sont utilisées pour réserver les ressources requises par les tâches.
source: les emplois et les tâches http://msdn.microsoft.com/en-us/library/bb525214%28v=vs.85%29.aspx
Bien...
Cela pourrait ne pas être aussi clair que décrit ici. Il peut très bien dépendre du système d'exploitation de certains on est dans la.
Par exemple lors de la compilation d'un Équipement NUMÉRIQUE OSF1 noyau (aussi connu comme TruUnix64) -- lorsque qu'Unix était encore existant à la fin des années quatre vingt dix, début du siècle, le terme
TASK
a été consacrée à la nombre de tâches en parallèle le noyau a été en mesure de gérer.C'était un tableau fixe de tâches le noyau pourrait effectuer à un moment donné.
C'est donc la somme du processus, il pourrait
spawn
ainsi que des tâches qu'il a à faire, même si n'est pas vu comme le processus parps
. Ensuite, il a été d'un niveau très faible nombre de mesures a permis au noyau sur chaque NUMA nœud, pas quelque chose d'accessible à l'extérieur du noyau.D'autre part, un système d'exploitation précédent comme DEC VMS a été connu pour avoir son OS de base de l'unité de travail (vous connecté de manière interactive en vertu d'un
job
) l'exécution éventuellement (en fonction du système et du compte des paramètres et des privilèges) nombre de processus à la fois. Unimage
(un exécutable) occupant alors unprocess
et (la plupart du temps) plusieurs threads (l'OS a pris soin de multithreading par lui-même) à la fois.Alors, le travail n'était pas d'application connexes, mais vraiment OS liés.
Un peu de la même façon Windows, qui ne supporte pas l'
fork()
comme un léger processus créateur, tend à créer processus (à l'aide d'unspawn - CreateProcess -
primitive qui semble très semblable à celui qui existait sur VMS /OpenVMS il y a 40 ans) qui sont plus lourds que les systèmes Unix. Ici, nous avons le même mot (processus) pour décrire (en terme d'OS), deux réalités qui sont très différents: un processus de Windows a tendance à être plus proche d'un VMS travail que d'un véritable processus Unix.Que je n'ai pas configurer/construire un Noyau Unix depuis TrueUnix64, je ne suis pas en mesure de discuter de la TÂCHE paramètre de noyau de Debian ou Linux OS le cas échéant. Il pourrait être intéressant que quelqu'un avec la connaissance intérieure de la tâches limite de ce type de système d'exploitation pourrait nous expliquer davantage sur ce concept dans ces systèmes.
De conclure:
task, process, job, spawn, fork, thread
... plus vous creusez dans les différents OS, le plus de variétés que vous obtenez et possible de définitions contradictoires vous visage.Gilles
[non natifs de l'anglais le président, pardonnez mon anglais].