Journal Windows Vista Internals

Posté par  .
Étiquettes : aucune
0
27
jan.
2007
Un article assez intéressant (traduit en français) de Mark Russinovich, coauteur de l'ouvrage intitulé Microsoft Windows Internals (Microsoft Press, 2004), sur les aspects du noyau de Windows Vista [1].

[1] http://www.microsoft.com/technet/technetmag/issues/2007/02/V(...)

Ce que j'adore dans cet article, ce sont les adjectifs :

Toutes les versions de Windows NT® jusqu'à, et y compris, Windows Vista programment une routine d'interruption du temporisateur d'intervalles qui s'exécute environ toutes les 10 à 15 ms (millisecondes), selon la plate-forme matérielle.

Alors que la gestion du temps basée sur horloge convient à des outils de diagnostic qui signalent l'utilisation du processeur de thread et de processus, l'utilisation de cette méthode par le planificateur de threads peut causer une allocation processeur injustifiée.

Cependant, les demandes adressées au processeur par d'autres applications s'exécutant simultanément, par exemple l'antivirus, l'indexation de contenu ou même le client de courrier, peuvent provoquer des accrocs déplaisants. Pour assurer une meilleure expérience de lecture, Windows Vista ...

La figure 3 affiche les contenus de l'une des clés de registre de tâche après une installation correcte de Windows Vista.

Le lecteur Windows Media l'utilise, ainsi que les augmentations de priorité de MMCSS, pour offrir une lecture pratiquement sans accroc des contenus locaux.

De plus, on peut modifier la valeur que MMCSS (Service Planificateur de classes multimédias) laisse en pourcentage de temps aux tâches non-multimédias :

Mais si MMCSS veut aider les threads multimédias à obtenir le temps processeur dont ils ont besoin, il veut également s'assurer que les autres threads obtiennent au moins une certaine quantité de temps processeur pour que le système et les autres applications restent réactives. MMCSS réserve donc un pourcentage de temps processeur, spécifié dans la valeur de registre suivante, aux autres activités :
HKLM\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\SystemResponsiveness
Par défaut, ce pourcentage est de 20 pourcent.

Enfin les liens symboliques, mais :

Cependant, toutes les applications n'étant pas en mesure de traiter correctement les liens symboliques, la création d'un lien symbolique requiert le nouveau privilège Créer des liens symboliques qui, par défaut, n'appartient qu'aux administrateurs.


J'attends avec impatience les articles suivants.
  • # Bench XP vs Vista

    Posté par  . Évalué à 4.

    http://techgage.com/article/windows_vista_system_performance(...)

    C'est avec du matos adapté pour Vista (entre autre avec 2 Go de mémoire vive). Ben XP gagne.
    • [^] # Re: Bench XP vs Vista

      Posté par  (site web personnel) . Évalué à 5.

      Je me souviens qu'il y avait le même genre de résultat entre 98 et XP. 98 gagnait.
      • [^] # Re: Bench XP vs Vista

        Posté par  (site web personnel) . Évalué à 6.

        c'est normal, non ?

        Mets 98SE sur un core 2 Duo équipé de 2 Giga de RAM... ca va être réactif.

        C'est comme mettre IceWm sur un dual core équipé de 2 Go de ram avec un FSB de 1 Ghz... tu vas pas en croire tes yeux.

        Les nouveaux OS ne sont pas faits pour aller plus vite... cela se saurait.
      • [^] # Re: Bench XP vs Vista

        Posté par  . Évalué à 6.

        Dans des bench de jeux vidéos, XP écrasait 98 et ME, sur une même machine (à la puissance adaptée à XP).
  • # Pour les ignorants.

    Posté par  . Évalué à 7.

    C'est bien joli tout ça, mais certains comme moi (et je suis sûr de ne pas être le seul) sont totalement ignorants des capacités de Linux en la matière, s'il a plus ou moins de défauts. J'ai l'impression que Linux fait mieux, mais rien pour confirmer ou infirmer la thèse.

    Quelques pontes voudraient-ils éclairer nos lanternes ;¬) ?
    • [^] # Re: Pour les ignorants.

      Posté par  . Évalué à 1.

      On va dire pour rester poli que le scheduler de windows est inutilement complexe et bien peu performant en terme de critères classiques de mesure de performance de scheduler :p

      Alors si en plus maintenant MS le modifie... Enfin nan je suis mauvaise langue, il est tellement obscure qu'ils osent plus le modifier ; ils rajoutent du code pour modifier dynamiquement les priorités selon une politique X ou Y pour qu'on obtienne un comportement pas trop pourrav étant donné leur schéduler existant...
      • [^] # Re: Pour les ignorants.

        Posté par  . Évalué à 6.

        C'est quoi un "critere classique de mesure de performance de scheduler" ?

        Quand a

        Enfin nan je suis mauvaise langue, il est tellement obscure qu'ils osent plus le modifier ; ils rajoutent du code pour modifier dynamiquement les priorités selon une politique X ou Y pour qu'on obtienne un comportement pas trop pourrav étant donné leur schéduler existant...

        C'est que visiblement tu n'as pas compris quel etait le probleme aborde
        • [^] # Re: Pour les ignorants.

          Posté par  . Évalué à 10.

          Un chevalier qui surgie hors de la nuit .... :)

          Allez tous vous faire spéculer.

          • [^] # Re: Pour les ignorants.

            Posté par  . Évalué à 8.

            En même temps sortir quelques phrases d'un article, mettre en gras quelques mots pour faire comprendre "ah ah que c'est pourri", et ne rien argumenter ensuite, ca me laisse froid aussi.

            "installation correcte"est la traduction discutable de "clean install" dans l'article en VO. La signification est donc plutôt "installation propre", c'est à dire un O.S sans application supplémentaire.

            "injustifié", "déplaisant" et "meilleure" se refèrent à des implémentations autres, pour donner des éléments de comparaison. Pas de quoi gloser sur Vista.

            Enfin il n'y a rien de choquant à ce que la création d'un lien symbolique nécessite un privilège particulier par défaut (ce comportement peut être modifié et la raison est clairement précisée).
        • [^] # Re: Pour les ignorants.

          Posté par  . Évalué à 0.

          c'était quoi le probleme aborde ?
          • [^] # Re: Pour les ignorants.

            Posté par  . Évalué à 7.

            Le probleme aborde c'est savoir quelles I/Os traiter en priorite, ce n'est pas savoir quel thread scheduler.

            Aujourd'hui un thread charge d'afficher un film a 50 image/sec verra ses I/Os traitees de la meme maniere qu'un thread qui s'amuse a lire un repertoire de 20'000 fichiers pour les copier ou autre, alors que le premier a une "obligation" de traiter 50 image/sec, n'est pas forcement interesse a en afficher 200 la 10eme seconde et 5 la 11eme, ... et l'autre se fout un peu du nombre de fichiers a chaque seconde tant que le temps final est a peu pres le meme.

            Resultat, sur la plupart des OS aujourd'hui, quand tu regardes un film et que tu lances un processus derriere qui fait des I/Os, ton film il va commencer a sauter.

            Bref, ce probleme la demande un scheduling specifique sur les I/O, avoir un moyen de dire "je suis un thread qui a besoin d'une certaine quantite d'I/O regulierement, donne moi la priorite la dessus"

            Ce scheduling la n'a pas grand chose a voir avec le scheduler des threads.
            • [^] # Re: Pour les ignorants.

              Posté par  (site web personnel) . Évalué à 3.

              Ce scheduling la n'a pas grand chose a voir avec le scheduler des threads.

              Si j'étais d'accord avec toi pour ta définition implicite du temps réel, là je ne suis pas d'accord.

              Le problème est le même que tu schedules l'utilisation d'un cpu ou de l'acces aux disques dures. C'est toujours de la gestion de ressource unique dans le temps en espérant garder de la réactivité et des performances.

              "La première sécurité est la liberté"

              • [^] # Re: Pour les ignorants.

                Posté par  . Évalué à 1.

                Ca oui, un scheduler est un scheduler, mais moi je parlais du code lui-meme, c'est pas le meme scheduler qui s'occupe de ca, et il fonctionne pas forcement de la meme maniere meme si le but final est similaire.
                • [^] # Re: Pour les ignorants.

                  Posté par  (site web personnel) . Évalué à 2.

                  Je ne crois pas que dans linux il y a une notion de multimédia (et donc de flux avec échance) dans le scheduler disques. J'imagine que si le scheduler cpu donne le cpu au process multimedia, il pourra générer les acces disque en question donc, c'est lié, et pas besoin forcément de gonfler l'ordonnanceur disque.

                  "La première sécurité est la liberté"

                  • [^] # Re: Pour les ignorants.

                    Posté par  . Évalué à 2.

                    Ben justement le probleme (c'est ce que W2k/XP/WS03 font aussi) est que cela ne resoud pas la chose completement, typiquement si tu as plusieurs processus de meme priorite, mais un a besoin de temps reponse a peu pres garantis, il n'aura pas ce qu'il demande car les autres processus, qui font peut-etre des I/Os aussi, ne vont pas forcement lui laisser assez de place vu qu'ils seront tous traites de maniere equivalente bien que leurs patterns d'acces soient differents.

                    Vista inclus qqe chose d'assez sympa qui permet de reserver une bande passante pour les I/Os sur un stream specifique : http://msdn2.microsoft.com/en-us/library/aa365537.aspx

                    Ca permet a une app(genre MediaPlayer, ...) de dire : "sur ce handle la, j'ai besoin de 1 Mo/s, sur celui-la, 500 Ko/s , ..." ce qui permet d'avoir la quasi-certitude que ton soft aura les donnees requises en temps voulu.
                    • [^] # Re: Pour les ignorants.

                      Posté par  (site web personnel) . Évalué à 3.

                      Cela revient juste à donner une plus grande priorité à certain thread. Mais quel est le coût pour les autres threads. C'est souvent le problème dans toutes les gestions "temps réel", les threads non temps réel peuvent être massacré en terme de performance.

                      Linux donne priorité aux "processus interactifs", en gros qui font des IOs. Et pour l'instant, cela marche bien. (genre un make -j 6 bzImage ne fait pas saccader une lecture mp3).

                      Si je me souviens bien, il y a un nouvel appel système qui donne un nombre de latence max pour un process donné.

                      "La première sécurité est la liberté"

                      • [^] # Re: Pour les ignorants.

                        Posté par  . Évalué à 1.

                        Ben le probleme du boost de processus interactifs(XP / WS03 font ca eux aussi) c'est que c'est absolument pas suffisant pour garantir l'acces aux donnees en temps voulu.

                        Ta machine ne fera pas saccader une lecture mp3 tant que ta machine/disque dur est assez baleze pour avoir une bande passante permettant aux deux de coexister, mais si par contre tu te retrouves dans un cas ou la bande passante n'est pas suffisante pour les 2, alors l'OS doit faire des choix, et avec la technique "boost les processus interactifs", ca aide, mais ca ne resoud pas le probleme, l'OS continuera de temps a temps a filer un tas d'I/O a d'autresp processus sans assurer la bande passante necessaire au processus interactif.

                        Le probleme de massacrer les perfs des autres softs c'est une possibilite, mais c'est pourquoi Vista limite la bande passante dispo que ces softs peuvent reserver(limite changeable). Ca permet a ces softs d'avoir la bande passante necessaire quand ils en ont besoin, et ca n'empeche pas les auters processus de faire des I/O
              • [^] # Re: Pour les ignorants.

                Posté par  . Évalué à 2.

                sans compter qu'avoir l'io mais pas avoir le temps cpu pour pouvoir traiter les données sert un peu à rien...

                Et qu'on peut constater que ce systeme est parsemé de cache (ne serait ce qu'au niveau du cache disque), par conséquent, utiliser ces caches à bon escient/ en rajouter de petit, et scheduler en tps reel juste sur le tps cpu peut etre tout autant utile amha (enfin à bencher pour avoir une idée)
      • [^] # Re: Pour les ignorants.

        Posté par  . Évalué à 5.

        C'est peut être simplifier que de dire ce genre de chose mais j'ai constaté des comportements étranges sous windows XP, il y a 2 ans environ, lorsque j'avais encore une partition à jeu.
        Pour info, j'avais une machine puissante, cet à dire avec 1Go de mémoire vive et un processeur 64 bits performant.
        J'utilisais un logiciel nommé WinTV pour me servir de mon tuner TNT usb et j'avais remarqué quelque chose de très étonnant, quand j'utilisais l'explorateur de fichier et que je cliquais sur un dossier par exemple, ça occasionnait une pause dans l'image d'une demi seconde. J'ai ensuite testé avec d'autre logiciels non Microsoft tels que VLC , firefox, etc. Même constat, l'explorateur s'octroyait un temps pour assurer ses tâches de façon "réactive" au détriment des logiciels non genuine Microsoft tiers.
        Que penser de ça ? Microsoft créé t-il de la performance artificielle ?
      • [^] # Re: Pour les ignorants.

        Posté par  (site web personnel) . Évalué à 0.

        C'est ce que j'avais donc compris empiriquement quand on lance une application wine => 100% de cpu

        Ou pareil avec un XP dans un qemu.
        (a noter que si on le met en mode performance en désactivant tous les effets, la charge cpu redevient négligeable...)
  • # Et sur la Formule 1 c'est pour quand ?

    Posté par  (site web personnel) . Évalué à 1.

    Je crois que je vais commencer à m'intéresser à la Formule 1 moi.

    Avec des adjectifs pareils les championnats prendraient de nouvelles dimensions de suspens insoutenable.
  • # Et ?

    Posté par  (site web personnel) . Évalué à 2.

    C'est censé montrer quoi ?

    Ne pas oublier qu'il s'agit d'une traduction qui par essence déforme le propos originel.
    • [^] # Re: Et ?

      Posté par  . Évalué à 6.

      Que Microsoft n'a décidément pas le monopole du FUD.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.