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

SYSTEME D’EXPLOITATION

Présentations similaires


Présentation au sujet: "SYSTEME D’EXPLOITATION"— Transcription de la présentation:

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

2 Initiation SE processus et threads
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) Francis ROGARD 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 Francis ROGARD Initiation SE processus et threads

4 Initiation SE processus et threads
Le diagramme des états actif utilisateur actif noyau zombie nouveau prêt Endormi ou suspendu Francis ROGARD 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 Francis ROGARD 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 Francis ROGARD Initiation SE processus et threads

7 Initiation SE processus et threads
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 Francis ROGARD 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 Francis ROGARD 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 Francis ROGARD 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é Francis ROGARD 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) Francis ROGARD Initiation SE processus et threads

12 Initiation SE processus et threads
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 Francis ROGARD 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 Francis ROGARD Initiation SE processus et threads

14 Initiation SE processus et threads
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 */ Francis ROGARD Initiation SE processus et threads

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

16 Initiation SE processus et threads
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 Francis ROGARD Initiation SE processus et threads

17 L’interprète de commandes
Le_prompt > ls -l bash fork() wait() execl() ls -l bash Francis ROGARD 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*/ Francis ROGARD Initiation SE processus et threads

19 Initiation SE processus et threads
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 Francis ROGARD Initiation SE processus et threads

20 Initiation SE processus et threads
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> Francis ROGARD Initiation SE processus et threads

21 Initiation SE processus et threads
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 Francis ROGARD 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 Francis ROGARD 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 …) Francis ROGARD Initiation SE processus et threads

24 Initiation SE processus et threads
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 S90crond -> ../init.d/crond Francis ROGARD 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 Francis ROGARD Initiation SE processus et threads

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

27 Initiation SE processus et threads
Implantation NT et XP Francis ROGARD Initiation SE processus et threads

28 Initiation SE processus et threads
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 Francis ROGARD Initiation SE processus et threads Matériel

29 Initiation SE 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 Francis ROGARD Initiation SE processus et threads

30 Initiation SE processus et threads
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. Francis ROGARD 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 Francis ROGARD Initiation SE processus et threads

32 Initiation SE processus et threads
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 Francis ROGARD Initiation SE processus et threads

33 Initiation SE processus et threads
FIN Francis ROGARD Initiation SE processus et threads


Télécharger ppt "SYSTEME D’EXPLOITATION"

Présentations similaires


Annonces Google