1 / 33

SYSTEME D’EXPLOITATION

SYSTEME D’EXPLOITATION. Gestion des processus et threads Ordonnancement. Une définition. Un processus est l’image dynamique de l’exécution en mémoire centrale d’un programme exécutable dans une zone protégée. A chaque processus est associé le contexte : CO, les registres, pointeur de pile

clovis
Download Presentation

SYSTEME D’EXPLOITATION

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement Initiation SE processus et threads

  2. Une définition • Un processus est l’image dynamique de l’exécution en mémoire centrale d’un programme exécutable dans une zone protégée. • A chaque processus est associé le contexte : CO, les registres, pointeur de pile et une zone mémoire (code, pile, données) Initiation SE processus et threads

  3. Les états d’un processus Fin En exécution création Élection Prêt Blocage Préemption Déblocage Bloqué Attente ressources Attente processeur Initiation SE processus et threads

  4. Le diagramme des états actif utilisateur actif noyau zombie nouveau prêt Endormi ou suspendu Initiation SE processus et threads

  5. Le bloc de contrôle (PCB) • En plus des données et du code, le chargeur associe au processus le PCB : un identificateur (PID) l’état (élu, bloqué ou prêt) le contexte processeur et mémoire les statistiques les informations sur l’ordonnancement les informations sur ses ressources  ce bloc permet de gérer le contexte Initiation SE processus et threads

  6. Les threads (processus légers) File exécution Ressources Espace d’adressage Processus monothread Thread 1 Ressources Espace d’adressage Thread 2 Thread 3 Processus multithreads Initiation SE processus et threads

  7. L’ordonnancement La fonction d’ordonnancement va permettre de choisir le processeur élu. Si l’ordonnancement est préemptif, il sera possible de retirer un processus élu en particulier pour assurer un temps de réponse « acceptable » pour chaque processus Initiation SE processus et threads

  8. Les dispositifs d’ordonnancement Préemption µP Liste des PCB prêts µP Répartiteur Ordonnanceur µP Liste des PCB bloqués µP Blocage Déblocage Initiation SE processus et threads

  9. Les algorithmes de choix • Premier arrivé, Premier servi (FIFO)  temps d’attente sur les processus longs • Par priorité • Problème de famine • Politique du tourniquet (quantum de temps) • Adapter le quantum de temps Initiation SE processus et threads

  10. Les politiques d’ordonnancement • Unix/Linux : Sur la base des priorités décroissant (1-99) temps réel : fixe (FIFO et priorité) classiques : calcul dynamique (priorité) • Windows Sur la base des priorités croissantes (1-32) thread temps réel : fixe (16-32) thread système : dynamique (1-15) Une file d’attente par niveau de priorité Initiation SE processus et threads

  11. L’implantation Unix/Linux Le principe de base est d’organiser les processus hiérarchiquement, à chaque nœud est associé un fils (arbre binaire) Initiation SE processus et threads

  12. Les caractéristiques • Le pid, le ppid • L’uid et le gid, l’euid et l’egid • Les trois fichiers input, output et error • Le niveau de priorité • Les temps processeur, mémoire et total utilisateur • La quantité de mémoire utilisée • Le nom de la primitive en attente de sa mort Initiation SE processus et threads

  13. Les mécanismes de création • Création par duplication La primitive C fork() crée un processus fils avec duplication du contexte au fils Le père et le fils ont le même nom • Création par recouvrement Il n’existe pas un nouveau processus, mais un exécutable récupère le contexte d’un processus existant via le pid La commande exec permet ce type de recouvrement Initiation SE processus et threads

  14. La primitive fork () Le schéma de création du processus dans un programme en langage C : switch ( fork()) { case – 1 : /* erreur */ ; break ; case 0 : /* chez le fils */ ; break ; default : /* chez le père */ } /* code exécuté par les deux processus */ Initiation SE processus et threads

  15. La synchronisation • On dispose de trois mécanismes pour synchroniser les processus : L’attente de mort du fils (wait) Les signaux Les sémaphores Initiation SE processus et threads

  16. L’échange de données • On dispose de mécanismes pour transférer des données entre deux processus sans utiliser un fichier du disque dur : Les tubes systèmes ou nommés La mémoire partagée Les files de messages Initiation SE processus et threads

  17. L’interprète de commandes Le_prompt > ls -l bash fork() wait() execl() ls -l bash Initiation SE processus et threads

  18. La programmation de l’interprétation Le schéma d’interprétation : switch ( fork()) { case – 1 : /* erreur */ ; break ; case 0 : execl(« /bin/ls », « ls » ,« -l », NULL); break ; default : wait(0) ; } /* code exécuté par le bash qui affiche le prompt*/ Initiation SE processus et threads

  19. La mort d’un processus • La fin de l’exécution de la fonction main() entraîne la mort du processus et la valeur du return est retournée à l’interprète de commandes • L’exécution de la primitive exit() ou la commande exit entraîne la fin du processus avec l’envoi de la valeur associée à l’interprète • La réception d’un signal entraîne aussi sa mort si le signal n’est pas associé à un traitement spécifique Initiation SE processus et threads

  20. Les commandes • ps visualisation • top visualisation en temps réel • nice gestion de la priorité • time temps d’exécution • kill suppression d’un processus • wait attente de la fin du fils • exec <commande> recouvrement par la <commande> Initiation SE processus et threads

  21. Démarrage du système • Le premier processus après l’initialisation est int de pid 1 Les tâches d’int sont : Montage des systèmes de fichiers ( /proc et ceux de /etc/fstab) Mise à l’heure L’activation du swap Le lancement des services (démons) syslog, crond, lpd … Le chargement des modules L’affectation des variables d’environnement Initiation SE processus et threads

  22. Le fichier /etc/inittab (1) • Ce fichier, lu par init, indique les services à démarrer à l’initialisation. Les services sont regroupés suivant 7 niveaux d’exécution successifs • En général : 0 arrêt du système 1,s et S mode mono-utilisateur 2 mode multi-utilisateurs 6 redémarrage Le niveau 3 est utilisé pour les services et 5 pour l’environnement graphique Initiation SE processus et threads

  23. Le fichier /etc/inittab (2) • Une ligne du fichier comporte les informations suivantes <identifiant> <liste des runlevels> <action> <commande> Les actions sont : Respawn, Once, Wait, Powerfail … • Les scripts exécutés suivant les runlevels sont dans le répertoire /etc/rc.d (rc.sysinit, init.d avec les sous répertoires rc0.d, rc1.d …) Initiation SE processus et threads

  24. Le script rc • Le script rc exécute les fichiers du répertoire correspondant au numéro de runlevel passé en argument (rc 2  rc2.d) • Dans le répertoire rc2.d, on trouve les liens symboliques vers des fichiers de /etc/init.d : lrwxrwxrwx 1 root root 15 dec 16 2004 K50xinetd -> ../init.d/xinetd lrwxrwxrwx 1 root root 15 dec 16 2004 S90crond -> ../init.d/crond Initiation SE processus et threads

  25. La hiérarchie des processus /etc/inittab init (pid 1) /etc/passwd /etc/profile /etc/bashrc ~/.bashrc Les démons initialisés par la commande rc suivant les niveaux de priorité crond, lpd, xinetd … login getty bash Le processus de login Initiation SE processus et threads

  26. L’arrêt du système • La commande shutdown • La commande halt • <ctrl> <alt> et <suppr> Initiation SE processus et threads

  27. Implantation NT et XP Initiation SE processus et threads

  28. Rappel Mode utilisateur Application client Message Sous système protégé (Win32) Appel système Mode noyau Service système Gestionnaire Processus et threads Noyau Matériel Initiation SE processus et threads

  29. Processus et threads • Chaque processus comporte un ou plusieurs threads • Le système gère des objets processus et threads • Pas de relation père-fils, le gestionnaire de processus crée des instances d’objet pour les sous-systèmes d’environnement qui les gèrent Initiation SE processus et threads

  30. Les éléments du thread • Le contexte : CO, une pile utilisateur et une noyau, les valeurs des registres, une zone privée pour des données • L’espace commun : ce sont les objets du processus via les handles, l’espace d’adressage et toute autre ressource. Initiation SE processus et threads

  31. Ressources d’un processus Jeton d’accès Liste des descripteurs espace virtuel Processus thread Table des objets handle 1 handle 2 fichier handle 3 section Objets Initiation SE processus et threads

  32. Les services du noyau • Ordonnancement • Gestion des interruptions et exceptions interruption  asynchrone exception  synchrone • La synchronisation des processeurs • La procédure de reprise du défaut d’alimentation Initiation SE processus et threads

  33. FIN Initiation SE processus et threads

More Related