|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 569 ![]() |
Dans le cadre de ce type de système d’exploitation , le système d’exploitation alloue pendant une courte durée de temps( quelques millisecondes) le processeur aux différents programmes d’exécution( time sharing).
Le temps alloué à chaque processus s’appelle le quantum. Je ne comprends pas pourquoi il est dit que le système d’exploitation alloue seulement pendant une courte durée de quelques millisecondes le processeur aux différents programmes d’exécution : pourquoi ne lui alloue t- il pas le temps necessaire à chaque programme d’execution ? La définition de quantum n’est elle pas le temps alloué à chaque programme actif ?Celui ci ne peut il pas être par exemple d’un quart d’heure ou plus ?? A propos de système d’exploitation multitâches préemptif il est dit qu’il possède un programme, le scheduleur, qui se charge de partager de façon equilibrée mais autoritaire le temps d’occupation du processeur entre les différents programmes, en gérant parfois des règles de priorité. Mais comment prévoir combien de temps un programme va être actif ? Cela signifie t-il qu’il force un programme à passer la main à un autre alors que l’utilisateur en a encore besoin ?. J’avoue avoir besoin d’éclaircissements sur ces deux points Merci beaucoup encore de votre aide. cordialement. Nathalie
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS] |
|
|
00
|
|
|
#2 | |||||
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 899 ![]() |
Citation:
Citation:
Ce que tu décris, c'est peu ou prou le "multitâche coopératif", c'est à dire que les processus donnent gentiment la main aux autres quand ils ont fini... Sauf s'ils plantent ! ![]() Citation:
Ensuite, si ton processus est le seul à bosser réellement, il récupèrera la main extrêmement vite, et aura au final presque 100% du processeur pour lui tout seul... Par tranches de 20 ms ! Citation:
A noter qu'une unité d'exécution peut ne pas terminer son quantum de temps : c'est notamment le cas dès que l'on utilise des fonctions comme "Sleep" ou des attentes bloquantes de mutex, sémaphores, etc. C'est aussi le cas lors de la plupart des appels système (et ce sont des appels quasi-constants dans un programme, il faut en être conscient !). Dans le cas d'un appel bloquant, le scheduler passe immédiatement la main à une autre unité d'exécution, si possible dans le même processus si le quantum de temps n'était pas terminé. Dans le cas d'un appel qui n'est pas intrinsèquement bloquant (demande d'ouverture de fichier par exemple), l'OS lance les commandes nécessaires, mais le matériel est parfois lent... Un disque dur, par exemple, va mettre entre 5 et 25 ms pour répondre à la première demande !! Et là, le scheduler entre en jeu, et va permettre à un autre processus de s'exécuter pendant ce temps mort. Les règles suivies par le scheduler peuvent être complexes ou extrêmement simples, tout dépend de sa nature. Classiquement, c'est du Round-Robin avec ou sans gestion des inversions de priorités (Priority Boost / Priority Inversion). On ne le prévoit pas, parce que l'on s'en contrefiche à ce stade et que c'est invisible pour l'utilisateur. Un processus actif, c'est un processus qui existe dans la table des processus de l'OS, c'est tout. Quand l'utilisateur quitte le programme, il se termine par des commandes particulières pour informer l'OS qu'il faut le détruire (en ce sens, on peut dire que le processus se "suicide"). L'OS peut aussi détruire abruptement tout processus, simplement en retirant son entrée du scheduler et en déclarant la mémoire qu'il utilisait comme libre. Le système d'exploitation est LE seul vrai programme du PC : c'est lui qui lance les autres, et c'est le seul à réellement contrôler totalement l'ordinateur. Dans un OS préemptif, considère que les autres "programmes" ne font qu'évoluer dans le bac à sable que l'OS a bien voulu leur laisser ou pas. Quoi qu'il arrive, les drivers (notamment clavier, souris, etc.) fonctionnent de façon indépendante des autres programmes, notamment parce qu'ils fonctionnent via des interruptions matérielles. En pratique, le scheduler aussi fonctionne grâce aux interruptions, c'est grâce à ça qu'il reprend la main sur le reste. Donc, les caractères tapés, les déplacements de la souris, les trames réseau, les données en cours de transfert depuis le disque dur, etc. ne sont jamais perdus lors de ces commutations de contexte : c'est l'OS qui les gère, et non pas le programme au premier plan du point de vue utilisateur. C'est l'OS qui distribue tout ce qu'il faut à tout le monde, et l'OS est actif systématiquement, et est prioritaire sur tout le monde. Citation:
Quand tu dis "l'utilisateur a besoin du programme", comprends bien qu'il est en train de l'utiliser sans arrêt, c'est juste que l'ordinateur est bien plus rapide que toi. Par exemple, là, en tapant ce texte, l'ordinateur ne fait qu'attendre mes touches... Quel problème s'il vérifie les mails en même temps derrière, affiche des images et joue de la musique ? Il a le temps de tout faire en même temps, et passe même 60% de son temps à ne rien faire du tout. Simplement, il fait ça par petits bouts de maximum 20 ms... Tu n'as pas conscience de tout ce que peut faire un ordinateur moderne en "seulement" 20 ms ! C'est exactement le même principe qu'au cinéma : tu ne vois pas un film comme un diaporama, n'est-ce pas ? Pourtant, c'est bien ce que c'est : 24 images fixes projetées toutes les secondes... Pour le scheduling, c'est pareil : la "finesse" de découpe du temps est en dessous du seuil de perception humaine, et tu as l'impression que tout s'exécute exactement en même temps. Le fait d'utiliser un système préemptif plutôt que coopératif permet surtout de mieux répartir la charge CPU, et de s'assurer qu'un processus planté ne mettra pas en péril l'intégralité du système, c'est tout. Est-ce un peu plus clair ? |
|||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mai 2002 Messages : 569 ![]() |
Bonjour et merci beaucoup de ta réponse; c'est beaucoup plus clair à présent.
Je vais reprendre tout cela en détail et eventuellement revenir vers toi si j'ai une question. Merci encore beaucoup. Cordialement. Nathalie
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS] |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Inscription : février 2009 Messages : 800 ![]() |
oui, il faut cependant ne pas oublier que l'arriver des dual et quad core surtout dans leur versions futur modifieront surement tout ce bel ensemble
|
|
|
00
|
|
|
#5 | |
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 899 ![]() |
Citation:
Mais bon : autant comprendre d'abord le scheduling "mono-CPU" avant d'attaquer le multi-CPU, ça aide ! |
|
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 071 ![]() |
Citation:
Sur le "mainframe", dernier survivant des ces temps anciens, le processeur est beaucoup mieux utilisé, puisque partagés entre des centaines voire des milliers de processus et des centaines voire des milliers d'utilisateurs ... |
|
|
|
00
|
|
|
#7 | ||
|
Inactif
![]() Inscription : octobre 2004 Messages : 3 899 ![]() |
Citation:
Et là, la réponse est "oui et non"... Sûr qu'en répondant sur un forum (même avec la musique en fond), ton PC se tourne les pouces. Au moment où je rédige ce message, malgré un client mail ouvert, un Winamp et mon navigateur (plus quelques processus en tâche de fond), mon PC affiche fièrement (roulement de tambour...) DEUX pourcents d'utilisation ! Effectivement, on peut dire qu'il n'en fout pas une rame, malgré les 61 processus et 640 threads actifs... Cependant, quand je lance des programmes nettement plus lourds, mon PC monte à 60-80% de charge en moyenne, et 100% "bloqués" lors des compilations... Les PC modernes sont surtout faits pour faire un peu tout, donc ils ont une "réserve" de puissance sous le coude (suffit de lancer un jeu, un encodage vidéo ou un calcul lourd pour s'en convaincre). Reste que pour les gens qui n'utilisent un PC que pour surfer sur le net et faire des mails, le PC de base est déjà nettement trop puissant... D'où l'intérêt d'un netbook ou même d'un smartphone comme l'iPhone ! ![]() Le problème que tu décris est, à mon avis, plus proche du citadin à 2 km de son travail, et qui ne va jamais à la campagne, mais qui s'achète quand même un gros 4x4 limite Hummer là où une petite voiture citadine sans aucune option aurait été amplement suffisante... Les gens surestiment souvent leurs besoins réels en informatique, je connais pas mal de familles où il aurait été plus profitable d'acheter trois PC moyens (voire bas de gamme) plutôt qu'un seul "gros" : ça aurait été moins cher et plus confortable pour tous. Le problème est que beaucoup de gens trouvent insultant (ou déshonorant) d'acheter du matériel "premier prix", alors ils gonflent leur ego en achetant une machine qui n'arrivera à 100% d'utilisation que le jour où le fiston lancera un benchmark dessus... Citation:
Il faut voir aussi qu'un mainframe n'a pas la même puissance de calcul brute qu'un PC, ni le même prix; ni le même but... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com