Processus, Threads et Services 35
Constituants d'un Processus NT 36 Un programme exécutable contenant le code et les données initiales Un espace d'adresse privé ou espace d'adresse virtuel utilisé par le processus Des ressources systèmes allouées au processus au fur et à mesure de l'exécution du programme Au moins un thread
Image d'un Processus NT 37 Access Token Processus Handle 1 Handle 2 Handle 3 Description de l'espace d'adresses Virtuelles Table d'objets Thread X Fichier Y Section Z....... Un thread pourra accéder à son Access Token en ouvrant un handle dessus
Gestionnaire de Tâches 38
Classe de Priorité d'un Processus Win32 A la création d'un processus, il est possible de spécifier une priorité Basse (IDLE_PRIORITY_CLASS) 4» (un mécanisme d'alerte périodique, un screen saver) Inférieure à la normale (BELOW_NORMAL_PRIORITY_CLASS) 6 Normale (NORMAL_PRIORITY_CLASS) 8 Supérieure à la normale (ABOVE_NORMAL_PRIORITY_CLASS) 10 Haute (HIGH_PRIORITY_CLASS) 13» (explorer.exe serait un candidat éventuel) Temps réel (REALTIME_PRIORITY_CLASS) 24 start /prio prog.exe prio peut valoir /low, /belownormal, /normal, /abovenormal, /high, ou /realtime Si aucune priorité n'est spécifiée : si la priorité du créateur est idle, celle du créé aussi sinon le processus est créé avec une priorité normale Dans la limite des droits, il est possible de modifier la classe de priorité d'un processus ou de la déterminer 39
Gestionnaire de Tâches (Suite) 40
Affinité Processeur 41 Windows XP Professionnel peut être bi-processeur
Mode Multi-sessions 42 Un onglet de plus apparaît permettant de gérer les sessions en cours
Exercices 43 Quelles sont les priorités des processus que vous pouvez manipuler en tant que simple utilisateur? Que se passe-t-il si vous tentez de définir la priorité à Temps réel? A quoi servent les processus svchost? En tant que simple utilisateur, pouvez vous les terminer?
Exercice (suite) 44 Dans le gestionnaire de tâches afficher et expliquer les colonnes Utilisation du processeur (qui devient processeur) : Temps processeur : Utilisation de la mémoire : Ecart d utilisation de la mémoire : Utilisation maximale de la mémoire : Erreurs de page : Ecarte d erreur de pagination :
Thread 45 Concept général Une unité d'exécution Un pointeur d'instruction indépendant Une entité ordonnançable dans un processus Une sous-tâche susceptible d'accomplir un travail Composants d'un thread NT Un identifiant unique dit identifiant client Un vecteur de registres représentant l'état d'un processeur Une pile utilisateur et une pile noyau Un espace privé utilisé par les sous-systèmes, les bibliothèques et les DLLs Les 3 derniers composants constituent le contexte d'un thread
Pourquoi des Threads Le multi-tâches unithread optimise le partage d'un CPU (pseudo parallélisme) Commutation de contexte en mode préemptif Un processus relâche explicitement le CPU Epuisement des quotas Processus plus prioritaire éligible Le multi-tâches coopératif bénéficie d'un contexte multiprocesseurs Un SE est multi-processeurs symétrique (SMP) si le code noyau et le code utilisateur peuvent s'exécuter sur n'importe quel CPU Multi-threading : plusieurs threads possibles dans un processus Elimine le coût de la duplication d'un processus Simplifie les mécanismes de communication Complique la programmation 46
Exercices 47 Quels sont les informations du gestionnaire de tâches relatives aux threads? Bien suivre les étapes suivantes : Lancer le Gestionnaire de tâches de Windows Dans démarrer Exécuter, taper mmc puis faire OK Dans le fenêtre qui s ouvre, aller dans Fichier Ajouter/supprimer un composant logiciel enfichable puis Ajouter Choisir Contrôle ActiveX puis faire Ajouter Suivant puis choisir System Monitor Control puis faire Suivant Terminer et Fermer et OK Cliquer sur System Monitor Control Cliquer sur + et utiliser la fenêtre qui apparaît pour» Quel est le nombre de threads du Gestionnaire de tâches:» Trouver 5 propriétés des threads et résumer leurs significations
Services Quelques Définitions Un service est une tâche de fond qui continue (en principe) à tourner même si aucun utilisateur n est connecté Un service est analogue à un démon UNIX Windows NT utilise de très nombreux services en particulier pour la gestion réseau Un service s exécute dans le cadre d un compte qui doit avoir reçu le droit d exécuter un service L icône Services et applications dans Gestion de l ordnateur sert à administrer les services Configuration Démarrage/arrêt, etc. Il n existe pas de procédure unifiée pour installer/désinstaller un service (modifier directement les registres) 48
Gestion des Services 49
Gestion des Services (suite) 50 Ne rien faire Redémarrer le service Exécuter un fichier Redémarrer l ordinateur
Exercice 51 Que devons nous faire pour relancer automatiquement un service qui tombe dans tous les cas de figure? Etudier les possibilités de tasklist, en particulier : Que fait tasklist (sans option) Que fait tasklist /v Que fait tasklist /m Que fait tasklist /svc Arrivez-vous à voir les tâches de la machine voisine de la votre
Gestion des Services Remarques 52 La spécification de paramètres est surtout possible pour des services lancés à la main Attention : une barre oblique inverse est interprétée comme un caractère d échappement ; la spécification d une telle barre doit être redoublée Exemple non c:\winnt35\rep mais c:\\winnt35\\rep Différence entre le compte système (session nulle) et un compte spécifique Le compte système (aussi connu sous LocalSystem)» ne suppose pas de mdp (pas d authentification)» accès sans limite à toute les ressources locales» permet d autoriser le service à interagir avec l écran et le clavier de l ordinateur Par contre, il est purement local et le service ne peut pas faire d accès réseaux Suppression de cette limitation sur une machine distante en éditant des valeurs de la clé...\current\ ControlSet\Services\LanmanServer\Parameters» pour un partage : son nom dans NullSessionShares» pour un tube nommé : son nom dans NullSessionPipes» pour autoriser l accès à tout partages ou tube nommé, ajouter RestrictNullSessAccess avec le type DWORD et la valeur 0
Installation d un Exécutable en tant que Service dans R.K. 53 Cela se fait au moyen d instsrv ; l exécutable a une structure de service Il y a deux utilisations instsrv NomService CheminDu.exe [-a NomCompte] [-p MotDePasse]» Exemple : instsrv MonService c:\rep\prog.exe» Il est très important de mettre le nom complet de l exécutable» Le service doit ensuite être proprement configuré et démarré instsrv NomService REMOVE
Lancement d Exécutables en tant que Services par le Biais de srvany.exe du R.K. L idéal serait d installer srvany.exe par instsrv Installation manuelle en créant une clé adéquate dans...\services Nom arbitraire de la clé : MyService Liste des Valeurs; ici srvany est lancé en mode manuel (valeur de 0x3 pour Start) et donc le module exécuté sous forme de service peut être passé en argument au lancement (notepad par exemple) 54 Si on ne veut pas renseigner de paramètre ou en mode automatique (Start vaut 0x2), dans MyService, il faut créer une clé Parameters contenant l application, le nom des éventuels paramètres et du répertoire de travail Exemple : Application (REG_SZ, d:\winnt35\system32\notepad.exe) AppParameters (REG_SZ, c:\temp\toto.txt) AppDirectory (REG_SZ, c:\temp) Pour configurer plusieurs services : répéter toute la procédure avec MyService1, MyService2,...
Activation Automatique de Tâches Il s agit du composant Tâches planifiées du Panneau de configuration Il existe un Assistant qui permet d aider à la création d une nouvelle occurrence de tâche» Choix de la tâche à exécuter» Détermination du moment : 1 fois seulement (aussi clé de Registre RunOnce) Tous les jours/semaines/mois (aussi AT) Au démarrage de l ordinateur (aussi Clé de registre Run) A l ouverture de la session (aussi Logique de Démarrage du profile All Users et de l Utilisateur)» Contexte d identité dans lequel la tâche va tourner (tout se passera comme si elle est lancée par ce compte)» On peut accéder ensuite au propriétés détaillées ou terminer 55
Propriétés Détaillées 56
Utilisation de la Planification 57
Exercice 58 Générer une tâche planifiée qui provoque l ouverture de la Calculatrice dès l ouverture de la session Indiquer les paramètres principaux utilisés Générer une tâche planifiée qui lance une nouvelle occurrence de notepad toutes les deux minutes Indiquer les paramètres principaux utilisés Arrivez-vous à faire la même chose en utilisant la commande en ligne AT Après avoir réussi vos expériences, merci de détruire les tâches planifiées