La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement.

Présentations similaires


Présentation au sujet: "Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement."— Transcription de la présentation:

1 Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement

2 Francis ROGARDInitiation SE processus et threads2 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)

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

4 Francis ROGARDInitiation SE processus et threads4 Le diagramme des états actif utilisateur actif noyau zombie nouveau prêt Endormi ou suspendu

5 Francis ROGARDInitiation SE processus et threads5 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

6 Francis ROGARDInitiation SE processus et threads6 Les threads (processus légers) File exécutionRessourcesEspace d’adressage Thread 3 Thread 2 Thread 1 Processus monothread Processus multithreads RessourcesEspace d’adressage

7 Francis ROGARDInitiation SE processus et threads7 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

8 Francis ROGARDInitiation SE processus et threads8 Les dispositifs d’ordonnancement µP RépartiteurOrdonnanceur Préemption BlocageDéblocage Liste des PCB bloqués Liste des PCB prêts

9 Francis ROGARDInitiation SE processus et threads9 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

10 Francis ROGARDInitiation SE processus et threads10 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é

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

12 Francis ROGARDInitiation SE processus et threads12 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

13 Francis ROGARDInitiation SE processus et threads13 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

14 Francis ROGARDInitiation SE processus et threads14 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 */

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

16 Francis ROGARDInitiation SE processus et threads16 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

17 Francis ROGARDInitiation SE processus et threads17 L’interprète de commandes Le_prompt > ls -l bash wait() ls -l fork() execl() bash

18 Francis ROGARDInitiation SE processus et threads18 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*/

19 Francis ROGARDInitiation SE processus et threads19 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

20 Francis ROGARDInitiation SE processus et threads20 Les commandes •ps visualisation •topvisualisation en temps réel •nicegestion de la priorité •timetemps d’exécution •kill suppression d’un processus •waitattente de la fin du fils •exec recouvrement par la

21 Francis ROGARDInitiation SE processus et threads21 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

22 Francis ROGARDInitiation SE processus et threads22 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 Smode mono-utilisateur 2mode multi-utilisateurs 6redémarrage Le niveau 3 est utilisé pour les services et 5 pour l’environnement graphique

23 Francis ROGARDInitiation SE processus et threads23 Le fichier /etc/inittab (2) •Une ligne du fichier comporte les informations suivantes 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 …)

24 Francis ROGARDInitiation SE processus et threads24 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 K50xinetd ->../init.d/xinetd lrwxrwxrwx 1 root root 15 dec S90crond ->../init.d/crond

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

26 Francis ROGARDInitiation SE processus et threads26 L’arrêt du système •La commande shutdown •La commande halt • et

27 Francis ROGARDInitiation SE processus et threads27 Implantation NT et XP

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

29 Francis ROGARDInitiation SE processus et threads29 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

30 Francis ROGARDInitiation SE processus et threads30 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.

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

32 Francis ROGARDInitiation SE processus et threads32 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

33 Francis ROGARDInitiation SE processus et threads33 FIN


Télécharger ppt "Francis ROGARDInitiation SE processus et threads1 SYSTEME D’EXPLOITATION Gestion des processus et threads Ordonnancement."

Présentations similaires


Annonces Google