qu'est ce que le multitache préhemptif

qu'est ce que le multitache préhemptif - Windows & Software

Marsh Posté le 13-06-2002 à 13:39:03    

et comment ça fonctionne :/
et aussi scheduler
 
vs auriez pas 2-3 explication la dessus?
 
merci


Message édité par bistou le 13-06-2002 à 13:39:29

---------------
:sol:
Reply

Marsh Posté le 13-06-2002 à 13:39:03   

Reply

Marsh Posté le 13-06-2002 à 13:59:22    

Lorsqu'il y a plusieurs applis (ou des applis multi-threadées), le processeur doit exécuter tous les flux d'instructions (les threads) "en même temps". Bien sur c'est impossible, donc en fait, il s'exécutent les uns à la suite des autres. C'est l'OS qui va décider quel thread il doit mettre sur le/les processeur(s) (en fonction de leur priorité, des évènements.....). Ca, c'est le multi-tache.
 
A l'origine (windows 3.1 quoi :D ), c'était l'appli qui "rendait" le processeur pour que l'OS mette un autre thread (multitache coopératif). Pas génial.
Dorénavant, ce n'est plus le cas. Le principe du multitache préemptif, c'est que l'OS assigne un thread sur un proc pour une durée déterminée. Passé ce délai, le contrôle revient au scheduler (le programme qui gère l'assignation des threads) qui met un autre thread.
La coupure est transparente pour l'appli.


Message édité par mrbebert le 13-06-2002 à 14:00:29
Reply

Marsh Posté le 13-06-2002 à 14:03:29    

mrbebert a écrit a écrit :

Lorsqu'il y a plusieurs applis (ou des applis multi-threadées), le processeur doit exécuter tous les flux d'instructions (les threads) "en même temps". Bien sur c'est impossible, donc en fait, il s'exécutent les uns à la suite des autres. C'est l'OS qui va décider quel thread il doit mettre sur le/les processeur(s) (en fonction de leur priorité, des évènements.....). Ca, c'est le multi-tache.
 
A l'origine (windows 3.1 quoi :D ), c'était l'appli qui "rendait" le processeur pour que l'OS mette un autre thread (multitache coopératif). Pas génial.
Dorénavant, ce n'est plus le cas. Le principe du multitache préemptif, c'est que l'OS assigne un thread sur un proc pour une durée déterminée. Passé ce délai, le contrôle revient au scheduler (le programme qui gère l'assignation des threads) qui met un autre thread.
La coupure est transparente pour l'appli.  




 
k merci bcp
 
comme en cohop un thread pouvait rester une durée indet ... s'il plantait l'os plantait donc aussi je supp?


---------------
:sol:
Reply

Marsh Posté le 13-06-2002 à 14:04:31    

le sheduler permet de donner temps de temps a une tache pour etre executé et ensuite il donne le processeur a un autre process un certain temps ainsin de suite.

Reply

Marsh Posté le 13-06-2002 à 14:06:22    

multitache préemptif= plusieurs process partage la mémoire, mais pas le processeur. C'est le process qui a le focus qui travaille, il faut activer les autres pour qu'ils bossent à leur tour. De plus, si le process qui bosse plante, il faut rebooter car on ne peut pas tuer la tache.
 
Je crois que la première mouture de W95 était comme ça, peut être aussi celle de NT (?).
 
W95 est sorti aux temps de la gloire d'OS/2, mais ça faisait désordre en entreprise car OS/2 lui était full mutitache (car développé par les ingénieurs qui ont mis au point MVS (OS390 aujourd'hui) = OS gros système IBM supportant CICS, DB2 etc...)
 
Voilà pour la page d'histoire.


---------------
Il n'y a pas de bonne réponse à une mauvaise question.
Reply

Marsh Posté le 13-06-2002 à 14:06:40    

Copycat a écrit a écrit :

le sheduler permet de donner temps de temps a une tache pour etre executé et ensuite il donne le processeur a un autre process un certain temps ainsin de suite.  




 
k merci  :jap:


---------------
:sol:
Reply

Marsh Posté le 13-06-2002 à 14:09:30    

Hello !
 
Sur un système d'exploitation multitâche ( comme windows, linux, etc... ), plusieurs applications peuvent cohabiter : Tu peux en même temps écouter un mp3 et surfer sur le net.
 
Ce qui veut dire que ton système d'exploitation va donner la main à winamp, puis à internet, et ainsi de suite.
On va maintenant appeler chaque programme processus, ou tâche.
 
C'est l'ordonnanceur qui va donner le droit d'exécution à chaque tâche. L'ordonnanceur va allouer le processeur et les ressources systèmes aux tâches.
 
Maintenant, tu connais le principe du multitâche. Contre-exemple : Sur un Palm, tu ne peux pas écouter un mp3 en même temps que consulter ton agenda, car PalmOS n'est pas multitâche.
 
Cependant, il ne semble pas logique que toutes les tâches aient le même droit tout le temps. Une tâche 'vitale' doit pouvoir s'éxécuter dès qu'elle le souhaite, même si une autre est en train de fonctionner.
Ainsi, tu peux ( sous certains OS ) fixer des priorités aux tâches. Lorsqu'une tâche de plus forte priorité que celle du moment souhaite s'éxécuter, elle prend la place de la précédente jusqu'a ce qu'elle ait fini son traitement, et ainsi de suite.
 
Très peu d'OS sont vraiment multitâches préemptif. Windows ne l'est pas ( du moins, il est préemptif, mais pas à priorité, et non déterministe ), linux non plus.
 
J'espere avoir été clair... Si ce n'est pas le cas, repost tes commentaires et j'y répondrais :)

Reply

Marsh Posté le 13-06-2002 à 14:13:28    

Tu parle d'assignement de priorité CPU ?

Eclipse a écrit a écrit :

Hello !
 
Sur un système d'exploitation multitâche ( comme windows, linux, etc... ), plusieurs applications peuvent cohabiter : Tu peux en même temps écouter un mp3 et surfer sur le net.
 
Ce qui veut dire que ton système d'exploitation va donner la main à winamp, puis à internet, et ainsi de suite.
On va maintenant appeler chaque programme processus, ou tâche.
 
C'est l'ordonnanceur qui va donner le droit d'exécution à chaque tâche. L'ordonnanceur va allouer le processeur et les ressources systèmes aux tâches.
 
Maintenant, tu connais le principe du multitâche. Contre-exemple : Sur un Palm, tu ne peux pas écouter un mp3 en même temps que consulter ton agenda, car PalmOS n'est pas multitâche.
 
Cependant, il ne semble pas logique que toutes les tâches aient le même droit tout le temps. Une tâche 'vitale' doit pouvoir s'éxécuter dès qu'elle le souhaite, même si une autre est en train de fonctionner.
Ainsi, tu peux ( sous certains OS ) fixer des priorités aux tâches. Lorsqu'une tâche de plus forte priorité que celle du moment souhaite s'éxécuter, elle prend la place de la précédente jusqu'a ce qu'elle ait fini son traitement, et ainsi de suite.
 
Très peu d'OS sont vraiment multitâches préemptif. Windows ne l'est pas ( du moins, il est préemptif, mais pas à priorité, et non déterministe ), linux non plus.
 
J'espere avoir été clair... Si ce n'est pas le cas, repost tes commentaires et j'y répondrais :)  



Reply

Marsh Posté le 13-06-2002 à 14:19:21    

Eclipse a écrit a écrit :

Hello !
.
 
Cependant, il ne semble pas logique que toutes les tâches aient le même droit tout le temps. Une tâche 'vitale' doit pouvoir s'éxécuter dès qu'elle le souhaite, même si une autre est en train de fonctionner.
Ainsi, tu peux ( sous certains OS ) fixer des priorités aux tâches. Lorsqu'une tâche de plus forte priorité que celle du moment souhaite s'éxécuter, elle prend la place de la précédente jusqu'a ce qu'elle ait fini son traitement, et ainsi de suite.
 
Très peu d'OS sont vraiment multitâches préemptif. Windows ne l'est pas ( du moins, il est préemptif, mais pas à priorité, et non déterministe ), linux non plus.




 
tu y va un peu fort je trouve... certes les process en cours d'execution ont tous un niveau de priorité (qui dépend du temps entre 2 executions, de la priorité donnée par le system ou le user,...), mais quand tu dis ". Lorsqu'une tâche de plus forte priorité que celle du moment souhaite s'éxécuter, elle prend la place de la précédente jusqu'a ce qu'elle ait fini son traitement, et ainsi de suite." je ne suis pas d'accord.... cette tache doit attendre que le dispatcher lui donne la main pour s'executer. Mais la différence entre un process de haute priorité et au de priorité basse est le temps cpu et les ressources attribués....c'est tout...
De plus OUI windows est préemptif, 2k et XP aussi tout comme le sont les system UNIX.
OUI le coopératif c'est win9x (la preuve, quand une appli plante tout le système se casse la gueule).
 
Par contre le problème de préemptif est justement la gestion des priorité...il ne faut surtout pas qu'un process se retrouve toujours en queue de priorité pour finalement n'être jamais exécuter.... c'est la tout le problème ...mais il y a pas mal d'astuces utilisées suivant les OS pour eviter ce genre de chose

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed