| |||||
| Dernière réponse | ||
|---|---|---|
| Sujet : multitache, kesako? | ||
| kroll33 |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| kroll33 |
|
| Jar Jar | Bah bien sûr, ce que j'ai expliqué, c'est ce qui se passe quand ça marche bien (mais ça m'est arrivé plusieurs fois, si si !). Mais un BSOD, c'est complètement différent, c'est un plantage du noyau. Il suffit que l'appli ait réussi à écrire dans la mémoire du noyau, ou que le système ne soit pas capable de la tuer dans certaines conditions, et c'est le BSOD. Bref, le problème de Win9x, c'est bien que le noyau n'est pas assez protégé. |
| Dark_Schneider | c'est pkoi je me tape un BSOD des fois quand il me dit que le sys est occupé et CTRL+ALT+SUPPR pour continuer ? et quand je fais CTRL+ALT+SUPPR j'ai ... le même BSOD ? justement l'appli ne rend pas la main et win9x n'arrive pas à la tuer !
solution ? reset hard ki n'ayant pas utilisé win9x n'a pas été confronté à ce pb. C'est justement une des choses qui m'ont fait préférer Unix ! ( kill -9 -1 me fait trop tripper ) |
| Jar Jar | Non et non, Windows 9x est un multitâche préemptif. Buggé, mais préemptif.
La preuve, quand on fait Control-Alt-Suppr, on peut envoyer un signal de fermeture à une tâche, et si elle ne répond pas au bout de 5 secondes, il propose de la tuer purement et simplement ; impossible avec un multitâche coopératif, car l'application ne rendrait jamais la main ! Pour ce qui est du bug qui permet à une appli d'obtenir une priorité supérieure au système, il est toujours présent dans Windows 2000 et XP (Microsoft appelle ça une fonctionnalité). |
| AlphaT | Sous Linux et NT, la gestion des processeurs est symétrique (ce qui veut dire processeurs non spécialisés)
Novell 4 et 5 : processeurs asymétriques = 1 proco pour gérer les droits d'accès, 1 proco pour gérer les disques durs. IBM AIX : Gestion plus complexe, jusqu'à 8000 processeurs montés en parallèle (ex.: Deep Blue avec 256). Il ne s'agit plus de multitâche mais de multitraitement : Plusieurs procos pour un seul programme. Il se peut que je me trompe je manque d'info sur AIX. [jfdsdjhfuetppo]--Message édité par AlphaT--[/jfdsdjhfuetppo] |
| Dark_Schneider | lecture intéressante :
http://casteyde.christian.free.fr/system/win/ moi je stick sur le coopératif. |
| kadreg |
|
| trictrac | windows est multi tache coop!!
Dark a donné les bons exemples, rien a redire! |
| Dark_Schneider | MacOS X basé sur *NSD -> *BSD = Unix -> Unix = préemptif |
| fabriceMerc | et macOS X c'est du multitache comment ?
Il parait que les programmeur qui ont fait macOSX ont bien fait leur boulot en ce qui concerne le multitache. |
| Jar Jar |
|
| matafan | En fait si j'ai bien compris, linux c'est préemptif en espace utilisateurs, et coopératif en espace noyau : si du code en espace noyau boucle sans passer la main, ça bloque le sytème ; le même code en espace utilisateur ne pose aucun problèmes. En tout cas pour les noyaux 2.4 et précédents, puisque le « patch preempt », qui sera intégré aux 2.5, offre du mutlitache préemptif en espace noyau.
Sinon la bonne explication est celle de Dark_Schneider. Un système multitache donne l'impression d'une exécution simultanées des différents processus ou threads (il y a des threads sous linux aussi) en découpant le temps en « quantum » : il accorde un quantum de temps à un processus, puis l'endort et accord un nouveau quantum de temps à un autre processus. L'ordre dans lequels les processus obtiennent les quantums de temps est déterminé par un « scheduler », selon une politique qui dépend de l'OS. Mais en aucun cas on ne peut dire que l'OS découpe les taches en threads... Un thread, c'est quelque chose qui est défini explicitement à la programmations. [jfdsdjhfuetppo]--Message édité par matafan--[/jfdsdjhfuetppo] |
| zerod | d'accord avec dark sauf sur les taches qui s'arretent a t1/2, c'est un peu plus compliqué, il y a divers ordonnancements (EDF,round robin... ) certains favorisent les taches à echeances courtes (qui doivent se terminer au + tot) d'autres allouent un quotas de temps processeur à chaque taches en fonctionnant en fifo, ceci pour eviter les famines (taches qui n'a jamais acces au processeur). ouala :D pour plus d'informations faire des recherches sur OS temps réels dans ton amis (google) [jfdsdjhfuetppo]--Message édité par zerod--[/jfdsdjhfuetppo] |
| djoh |
|
| Dark_Schneider | et pourtant au début je ne m'étais pas trompé. hum je dois changer l'OS de mon cerveau. ;) |
| Dark_Schneider | ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
me suis trompé. Linux c'est du préemptif sorry je corrige frapper moi ! Mea Culpa, Mea Maxima Culpa [jfdsdjhfuetppo]--Message édité par Dark_Schneider--[/jfdsdjhfuetppo] |
| kenses | dark, tu dis que linux fonctionne en mode coopératif donc comme windows 98.
Ca crain pas un peux cette fçon de fonctionner????? PS: tu as trop bien expliquer on dirais le cour que j'ai eu sur Windows. Bravo. |
| davidbator | merci, je pense que je pense que je commence a comprendre le principe. |
| VinKill | ton programme en lui meme est un processus. Le fait de faire du multithreading c'est de decomposé ton processus en plusieurs autres processus qui peuvent etre geres par un ou plusieurs processeurs. En ce qui concerne linux, c bien un multitaches. |
| Dark_Schneider | multi = plusieurs
tache = acte multitache = faire plusieurs acte en même temps. Par example j'imprime et en même temps je peux continuer à bosser. sous DOS tu lances une command et tant quelle n'est pas finie tu ne peux rien faire ( = monotache ou encore DOS est une grosse tache ). Linux = multitache préemptif ( i.e c'est le kernel qui décide quand il arrête une application pour donner la main à une autre ). explication : soit 2 applis lancées a1 et a2. On ne peut matériellement les exécuter en même temps sur un systême UP ( Uniprocesseur ) car un processeur ( à moins d'être parallélisé ) ne fait qu'une chose à la fois. si les 2 applis prennent un temp t1 et t2 respectivement ( t1 = t2 = t ) pour s'éxécuter à la suite, tu auras ceci : + sous DOS ( monotache ) le temps sera 2*t ( grosso ) avec une appli exécuté à la suite. d'abord a1 et quand a1 est fini on lance a2 + multitache : a1 lancé puis suspendu à t1/2 a2 lancé puis suspendu lui aussi à t2/2, on remet a1 qui se fini et ensuite on fini a2. Conséquence tu as l'impression que les 2 applis fonctionnent en même temps. Bien sûr les applis souvent ne sont suspendue que quelques millisecondes. C'est à peine perceptible ( enfin cela dépend de d'autres facteurs ). Linux et win9x/NT sont multitache. linux = multitache préemptif : c'est le noyau qui décide quand suspendre une appli pour poursuivre l'exécution d'une autre. C'est grosso modo le rôle de ce qui est appelé le schedule ( vient de l'anglais to schedule = plannfier ). les emplacements de mémoires sont protégées ( cf explication plus loin ). win9x = multitaches coopératif : les applis décident entre elles quand elles rendent la main. Si une ne veut pas elle peux bloquer le système. Exemple quand tu imprimes ( lors de l'envoie de donnée au port parralèle ) ou accèdes à une disuquette, le système se fige pdt un moment, tu ne peux pas vraiment faire qualquelchose en même temps. tu remarques très bien que les autres applis sont "suspendues". Autre pb, un applie plante, entre dans uen boucle sans fin, ne rend pas la main, et bien tu es dans la merde. le noyau n'a aucun pouvoir ( Windows ne peut arréter se programme car le sys est occupé blablabla ). De plus les emplacements de mémoires ne sont pas protégés, i.e a1 écrie dans zone1 et a2 écrit dans zone2. a1 n'est pas censé toucher à zone2 et a2 pas censé toucher à zone1. a1 plante et fait n'importe koi. Comme les emplacements mémoires ne sont pas protégées, a1 peut corrompre zone2 entrainant alors le plantage de a2. C'est tout le système qui s'écroule ( BSOD = Blue Screen Of Death ou Ecran Bleu ). Ainsi par example un bête lecteur de Cd si il était buggé pouvait faire planter tous le sys.* winNT ( Nt4, 2k, XP ) = multitache préemptif et emplacements mémoire protéges. Pour avoir du full multitache il faut plusieurs processeurs exploités de façon symmétrique (en mêm temps/en parralèle ). C'est le SMP ( symetric Multi Processing ). win9x ne gère pas le SMP winNT le gère linux le gère http://www.freenix.fr/unix/linux/H [...] WTO-6.html http://www.linux-france.org/prj/ja [...] rcche.html http://www.linux-france.org/prj/ja [...] hread.html http://www.linux-france.org/prj/jargonf/S/SMP.html http://www.linux-france.org/prj/ja [...] moire.html http://www.linux-france.org/prj/ja [...] acute.html http://www.linux-france.org/prj/ja [...] acute.html http://www.linux-france.org/prj/ja [...] ation.html http://www.linux-france.org/prj/ja [...] duler.html http://www.jackperr.com/perso/linus/linux_dompub.php3 http://glinux.tuxfamily.org/?page=glossaire#man google c'est vraiment de la balle traçante : http://www.google.com/linux?hl=fr&q=multitache&lr= PS : désolé pour les fautes et autres imprécisions. Je me suis emmélé à un moment et ai fait un truc BCP plus compliqué que je ne le voulais [jfdsdjhfuetppo]--Message édité par Dark_Schneider--[/jfdsdjhfuetppo] |
| kenses | ba enfaite je pense qu'il voulait dire que windows (separe les taches en plusieur parties donc cela donne des threads)==>ca j'en suis pas sur.Et ensuite ,il traite une threads de chaque programme l'une apres l'autre.
Donc voila mais je sais pas si mon explication est exact.. |
| davidbator | merci VinKill,
kest ce que t veux dire par " multithreads qui consiste en fait a separer un programme en plusieurs processus " et a propos de ma premiere kesion? |
| VinKill | un systeme multitache est un systeme qui permet de faire tourner plusieurs applications en même temps. Seule les Unix, Linux, OS/2, Solaris &co sont capables de faire cela. Windows n'est pas un systeme multitaches mais un systeme multithreads qui consiste en fait a separer un programme en plusieurs processus afin de tenter de se rapprocher d'un system multitaches a proprement parlé.
Voila mr :) |
| davidbator | Est ce que kelk1 pourrai expliquer (simplement) a un debutant et pas informaticien kom moi le principe du multitache et repondre a C 2 kestions:
Est ce que Linux marche en multitache avec tous les processeurs (un pote ma affirme le contraire)? kelle est la difference avec windoz (SVP evite les Windoz C de la merde et Linux C top, je veux un truc constrictif avec pour et contre de chaque)? Merci |




