Quelle est la différence entre un thread/processus/tâche?

Quelle est la différence entre un thread/processus/tâche?

28
demandé sur Mateusz Piotrowski 2010-06-15 09:27:28

6 réponses

Processus:

un processus est une instance d'un programme informatique en cours d'exécution. Il contient le code de programme et son activité actuelle. Selon le système d'exploitation (OS), un processus peut être composé de plusieurs threads d'exécution qui exécutent des instructions simultanément. Le multitâche basé sur les processus vous permet d'exécuter le compilateur Java en même temps que vous utilisez un éditeur de texte. En employant des processus multiples avec un seul CPU, le changement de contexte entre différents mémoire de contexte est utilisé. Chaque processus comporte un ensemble complet de ses propres variables.

Thread:

Un thread est une unité de base de l'utilisation du PROCESSEUR, comprenant un compteur de programme, d'une pile et d'un ensemble de registres. Un thread d'exécution résulte d'une fourche d'un programme informatique en deux ou plusieurs tâches exécutées simultanément. La mise en œuvre des threads et des processus diffère d'un système d'exploitation à l'autre, mais dans la plupart des cas, un thread est contenu à l'intérieur d'un processus. Plusieurs fils peuvent exister au sein d'un même processus et partager des ressources comme la mémoire, alors que différents processus ne partagent pas ces ressources. Un exemple de threads dans le même processus est la vérification automatique de l'orthographe et l'enregistrement automatique d'un fichier pendant l'écriture. Les Threads sont essentiellement des processus qui fonctionnent dans le même contexte de mémoire. Les Threads peuvent partager les mêmes données pendant l'exécution. diagramme du fil, c. à d. fil simple vs fil multiple

tâche:

Une tâche est un ensemble de les instructions de programme qui sont chargées en mémoire.

36
répondu billu 2018-05-31 12:51:47

brève réponse:

un thread est un concept d'ordonnancement, c'est ce que le CPU "exécute" (vous n'exécutez pas un processus). Un processus nécessite au moins un thread que le CPU/OS exécute.

un processus est un concept d'organisation des données. Les ressources (par exemple la mémoire pour l'état de conservation, l'espace d'adresse autorisé, etc.) sont affectées à un processus.

6
répondu Rodrick Chapman 2010-06-15 05:41:29

expliquer sur des termes plus simples

Processus: process est l'ensemble d'instruction en tant que code qui opère sur des données connexes et process a son propre état, sommeil, course, arrêt, etc. quand le programme est chargé dans la mémoire il devient processus. Chaque processus a au moins un thread lorsque le CPU est attribué appelé programme fileté siglé.

Thread: thread est une partie du processus. plus d'un fil peut exister dans le processus. Thread a sa propre zone de programme et de mémoire. Plusieurs threads à l'intérieur d'un processus ne peut pas accéder aux autres données. Processus doit gérer la sycnhronisation des fils pour atteindre le comportement souhaitable.

tâche: le concept de tâche n'est pas largement utilisé dans le monde entier. quand l'instruction de programme est chargée dans la mémoire les gens appellent comme processus ou tâche. Tâche et processus sont synonymes de nos jours.

6
répondu mack.t 2014-05-20 07:29:58

process invoque ou initie un programme. C'est un exemple d'un programme qui peut être multiple et exécuter la même application. thread est la plus petite unité d'exécution qui se trouve dans le processus. Un processus peut avoir plusieurs threads en cours d'exécution. Une exécution de thread se traduit par une tâche. Par conséquent, dans un environnement multithreading, le multithreading.

program dans l'exécution est connu comme process. Un programme peut avoir n'importe quel nombre de processus. Chaque processus a son propre espace d'adressage.

Threads utilise les espaces d'adresse du processus. La différence entre un thread et un processus est que, lorsque le CPU passe d'un processus à un autre, l'information courante doit être sauvegardée dans le descripteur de processus et charger l'information d'un nouveau processus. De commutation à partir d'un thread à l'autre est simple.

task est simplement un ensemble d'instructions chargé dans la mémoire. Les fils peuvent eux-mêmes se diviser en deux ou plus fonctionnant simultanément tâche.

pour plus de Compréhension consulter le lien: http://www.careerride.com/os-thread-process-and-task.aspx

4
répondu raj mishra 2018-02-11 19:49:24

à partir de wiki explication claire

1:1 (threading au niveau du noyau)

les Threads créés par l'utilisateur sont en correspondance 1-1 avec les entités programmables du noyau.[3] Il s'agit de la mise en œuvre de threading la plus simple possible. Win32 utilisé cette approche dès le début. Sous Linux, la bibliothèque C habituelle implémente cette approche (via le NPTL ou les anciennes LinuxThreads). La même approche est utilisée par Solaris, NetBSD et FreeBSD.

N:1 (Niveau de L'utilisateur threading)

un modèle N:1 implique que tous les threads au niveau de l'application sont reliés à une entité programmée au niveau du noyau;[3] le noyau n'a aucune connaissance des threads de l'application. Avec cette approche, le changement de contexte peut être fait très rapidement et, en outre, il peut être mis en œuvre même sur des noyaux simples qui ne supportent pas le filetage. L'un des principaux inconvénients, cependant, est qu'il ne peut pas bénéficier de l'accélération matérielle sur multi-threaded les processeurs ou les ordinateurs multiprocesseurs: il n'y a jamais plus d'un fil programmé en même temps.[3] par exemple: si l'un des threads doit exécuter une requête E/S, l'ensemble du processus est bloqué et l'avantage du threading ne peut pas être utilisé. Les Threads portatifs GNU utilisent des threads au niveau de L'utilisateur, tout comme les Threads D'État.

M:N (Hybride threading)

M: N établit une correspondance entre un certain nombre de threads d'application et un certain nombre D'entités du noyau,[3] ou "processeurs virtuels."C'est un compromis entre au niveau du noyau ("1:1") et au niveau de l'utilisateur ("N:1") filetage. En général, les systèmes de threading "M:N" sont plus complexes à implémenter que les threads du noyau ou de l'utilisateur, parce que des modifications au Code du noyau et de l'espace utilisateur sont nécessaires. Dans l'implémentation M:N, la bibliothèque threading est responsable de programmer les threads utilisateurs sur les entités disponibles programmables; cela rend la commutation de contexte des threads très rapide, car elle évite les appels système. Toutefois, cela augmente la complexité et la probabilité de priorité l'inversion, ainsi que l'ordonnancement sous-optimal sans coordination étendue (et coûteuse) entre l'ordonnanceur userland et l'ordonnanceur du noyau.

1
répondu sukumar 2013-11-20 05:16:59

Wikipédia résume assez bien:

Threads par rapport à des processus

les Threads diffèrent des processus traditionnels du système d'exploitation multitâche en ce que:

  • les processus sont typiquement indépendants, tandis que les threads existent comme des sous-ensembles d'un processus
  • processus d'importantes informations d'état, alors que plusieurs les fils dans un État de partage de processus ainsi que de la mémoire et d'autres ressources
  • processus ont des espaces d'adresse séparés, tandis que les threads partagent leurs adresse de l'espace
  • les processus interagissent seulement par le biais de l'interfonctionnement fourni par le système. les mécanismes de communication.
  • la commutation de contexte entre les threads dans le même processus est généralement plus rapide que le contexte la commutation entre les processus.

on dit que les systèmes comme Windows NT et OS/2 ont des fils "bon marché" et des processus "coûteux"; dans d'autres systèmes d'exploitation, il n'y a pas de grande différence, sauf le coût d'un commutateur d'adresse qui implique un rinçage TLB.

tâche et processus sont utilisés comme synonymes.

0
répondu Loxley 2010-06-15 05:32:37