bonjour,
c'est quoi la principale difference entre un processus et un job, car pour moi l'execution revien toujour à l'execution de plusieurs processus.
bonne journee.
bonjour,
c'est quoi la principale difference entre un processus et un job, car pour moi l'execution revien toujour à l'execution de plusieurs processus.
bonne journee.
Salut,
Je suis intéressé par la réponse..
Les Thread en plus ?
Merci![]()
C'est le genre de vocabulaire qui a une signification precise mais propre a celui qui fait la difference. J'aurais tendance a associer job avec ce qu'unix appelle session, mais pas toujours (p.e. dans un environnement batch, ca ne peut pas avoir ce sens alors que c'est utilise).
Bonjour,
Dans la terminologie Windows, un job est un objet servant à gérer un ou plusieurs processus.
On peut alors manipuler les processus comme un groupe unique et appliquer diverses propriétés à ce dernier qui sont répercutées sur chacun des processus composant le groupe (par ex. : Niveau de priorité, nombre de pages mémoire (working set size), etc.).
Voir ce lien MSDN pour plus d'infos :
http://msdn2.microsoft.com/en-us/library/ms684161.aspx
Pour ce qui est des termes Processus, Threads, etc. , cf. :
http://www.developpez.net/forums/sho...02&postcount=2
N.B : Ces termes sont uniquement applicables à Windows dans les acceptions données ci-avant.
et dans les autres terminologies que Windows, en gros un job et un processus c'est pareil.
En gros, job remonte aux années 70..
En fait, sur les TRES GROS systèmes (superpcalculateurs), un job était (et est toujours) l'équivalent de ce qui aujourdhui s'appelle un script : une série de programmes lancés les uns derrière les autres, éventuellement avec des sorties intermédiaires, la successions des appels et instructions étant un fichier texte partant dans la queue de traitement. En effet, vu le petit nombre de supercalculateurs, et le nombre de gens dans le monde demandant du temps de calcul dessus, personne d'extérieur n'avait accès au calculateur lui-même. Les gens soumettaient un "job" (donc ce fichier texte), qui entrait dans une queue de traitement (le passage pouvant se faire 10 ou 24h plus tard)
Parallèlement, les banques et les assurances avaient (et ont toujours pour un certain nombre), des progammes en COBOL, qui s'appelaient "jobs".
Quant aux processus, en général c'est l'INSTANCE MEMOIRE d'un programme, script, etc...
Un programme est un fichier binaire. Lorsqu'on le lance, le loader le charge, en partie ou en totalité, en mémoire. Là cela devient un processus.
Si donc on lance 4 fois le même progamme, on aura 4 processus distincts...
Par extension, dans le langage courant des unixiens par exemple, un job ou un processus est devenu équivalent... Pour signifier la signification de processus telle que mentionnée ci-dessus..
Il faut être un peu plus précis, je pense.
Un job est, de façon simple et schématique, un programme en cours d'exécution, par exemple le fait de lancer un programme en ligne de commande.
Un processus est, comme dit plus haut, l'instance d'un programme en cours d'exécution.
Par contre, pour s'exécuter, un job peut se servir de plusieurs processus.
Un exemple est le super-serveur Unix inetd : le fait de lancer inetd et son exécution est un job, mais le job en question utilise plusieurs processus a priori pour s'exécuter.
Quand j'entre la commande Unix...
... l'ensemble de la commande est un job, même si elle utilise deux programmes. Comme le dit Jean-Marc, la notion de job est proche de celle de session, pouvant être interrompue ou suspendue de façon interactive.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cat *.[ch] | wc -l
La notion de processus est de plus bas niveau.
Les thread (traduction littérale : fil) sont des fils d'exécution : ils permettent de faire du parallelisme au sein du même processus. Un processus peut créer plusieurs thread : l'environnement d'exécution de chaque thread sera celui du processus, ce qui n'est pas le cas avec une gestion Unixienne du parallelisme via l'appel historique fork() qui duplique un processus, donc un contexte d'exécution.
Sur le mainframe ( IBM principalement ) le mot " JOB " a un sens très précis.
Il s'agit d'un ensemble d'activités ( STEP ) consécutives ( utilitaires ou programmes applicatifs ) définies et controlées au moyen d'un langage particulier qu'on appelle JCL ( Job Control Language ).
Le système d'exploitation ( z/OS ici ) connaît et contrôle l'exécution des Jobs présents en machine.
ce qui correspond au concept que je soulignais pour les super-calculateurs, la jonction avec JCL en moins...![]()
Donc nous sommes d'accord...
Partager