|
Sujet : qu'est ce que le multitache préhemptif |
| papangue |
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 |
| papangue |
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 |
| hardcoregamer |
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 :)
|
|
| Eclipse |
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 :) |