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

1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 3 Gestion des processus, gestion de la mémoire.

Présentations similaires


Présentation au sujet: "1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 3 Gestion des processus, gestion de la mémoire."— Transcription de la présentation:

1 1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 3 Gestion des processus, gestion de la mémoire et ordonnancement

2 2 Rôles fondamentaux Tous les S.E. on comme premier objectif: gestion efficace des processus.gestion efficace des processus. gestion de la mémoire.gestion de la mémoire. gestion des périphériques.gestion des périphériques. Processus, mémoire et ordonnancement Entités manipulées par le S.E. modélise un programme en exécution Ressource utilisée par les processus

3 3 Modèle pratique des processus Processus, mémoire et ordonnancement Déplacement dun processus vers/de la mémoire secondaire (swapping). Libère les ressources utilisées afin dadmettre de nouveaux processus dans le système.

4 4 Modèle UNIX Processus, mémoire et ordonnancement Modèle des processus de SVR4: Modèle des processus de SVR4: tenir compte des modes dexécution (mode utilisateur et mode noyau);tenir compte des modes dexécution (mode utilisateur et mode noyau); tenir compte de la possibilité de la préemption.tenir compte de la possibilité de la préemption. Préemption: la prise de contrôle du processeur par un autre processus de plus haute priorité. Un processus est « préemptible » lorsquil passe du mode d exécution noyau en mode d exécution utilisateur.

5 5 Modèle UNIX Processus, mémoire et ordonnancement Modèle des processus de SVR4: Modèle des processus de SVR4: avant SVR4 un processus dans le mode noyau nest jamais préemptible;avant SVR4 un processus dans le mode noyau nest jamais préemptible; avant SVR4 le S.E. UNIX ne convient pas aux traitements en temps réel;avant SVR4 le S.E. UNIX ne convient pas aux traitements en temps réel; modèle à neuf (9) états.modèle à neuf (9) états.

6 6 Modèle UNIX Processus, mémoire et ordonnancement

7 7 Modèle UNIX Mode dexécution utilisateur: Mode dexécution utilisateur: processus est en exécution dans le mode utilisateur. Il est préemptible.processus est en exécution dans le mode utilisateur. Il est préemptible. Mode dexécution noyau: Mode dexécution noyau: processus est en exécution dans le mode noyau.processus est en exécution dans le mode noyau. Préempté: Préempté: processus est en préemption. La préemption nest possible que lorsque le processus est sur le point de retourner dans létat « Mode dexécution utilisateur ».processus est en préemption. La préemption nest possible que lorsque le processus est sur le point de retourner dans létat « Mode dexécution utilisateur ». Processus, mémoire et ordonnancement

8 8 Modèle UNIX Processus, mémoire et ordonnancement Zombie: Zombie: processus sorti mais laisse dans le système des informations destinées au processus père qui nexiste plus.processus sorti mais laisse dans le système des informations destinées au processus père qui nexiste plus. Prêt (en mémoire): Prêt (en mémoire): processus prêt pour être exécuté et dont le code est en mémoire.processus prêt pour être exécuté et dont le code est en mémoire. Bloqué (en mémoire): Bloqué (en mémoire): processus bloqué en attendant un événement déclencheur (code en mémoire).processus bloqué en attendant un événement déclencheur (code en mémoire).

9 9 Modèle UNIX Processus, mémoire et ordonnancement Créé: Créé: nouveau processus qui nest pas encore prêt pour lexécution.nouveau processus qui nest pas encore prêt pour lexécution. Prêt (suspendu): Prêt (suspendu): processus prêt pour être exécuté et dont le code est en mémoire secondaire (disque).processus prêt pour être exécuté et dont le code est en mémoire secondaire (disque). Bloqué (suspendu): Bloqué (suspendu): processus bloqué en attendant un événement déclencheur (code en mémoire secondaire).processus bloqué en attendant un événement déclencheur (code en mémoire secondaire).

10 10 Modèle UNIX Pour le SVR4, deux processus fondamentaux toujours en exécution: Pour le SVR4, deux processus fondamentaux toujours en exécution: processus qui réalise le déplacement des autres processus de/vers la mémoire centrale (swapper);processus qui réalise le déplacement des autres processus de/vers la mémoire centrale (swapper); swapper porte le numéro didentification de processus PID = 0;swapper porte le numéro didentification de processus PID = 0; ce dernier est responsable de la création du processus « init » (PID = 1);ce dernier est responsable de la création du processus « init » (PID = 1); tous les autres processus sont descendants de ce processus init.tous les autres processus sont descendants de ce processus init. Processus, mémoire et ordonnancement

11 11 Espace dadresses des processus Dans le SVR4: Dans le SVR4: Processus, mémoire et ordonnancement Il sagit dun espace virtuel à 32bits Il sagit dun espace virtuel à 32bits L arrangement basé sur le schème ELF. L arrangement basé sur le schème ELF. La pile utilisateur « grossit » vers les adresses basses. La pile utilisateur « grossit » vers les adresses basses. Le heap « grossit » vers les adresses hautes. Le heap « grossit » vers les adresses hautes. Les adresses supérieures à 0xE sont associées au code du noyau. Les adresses supérieures à 0xE sont associées au code du noyau.

12 12 Espace dadresses des processus Espace virtuel est divisé en segments. Espace virtuel est divisé en segments. Segment « Texte »: Segment « Texte »: code exécutable du programme;code exécutable du programme; entreposé dans le fichier exécutable;entreposé dans le fichier exécutable; à lecture seulement;à lecture seulement; ce segment est partageable.ce segment est partageable. Processus, mémoire et ordonnancement Plusieurs processus utilisant le même code exécutable. Les processus partagent alors le même segment « Texte ».

13 13 Espace dadresses des processus Segment « Données »: Segment « Données »: entreposage des symboles constants ou globaux.entreposage des symboles constants ou globaux. deux types de données données initialisées et données non initialisées.deux types de données données initialisées et données non initialisées. Processus, mémoire et ordonnancement Variables globales qui ont une valeur assignées dans le code source du programme. Elles ne sont pas partageables. Même que les données initialisées mais leur contenu est toujours mise à zéro.

14 14 Espace dadresses des processus Processus, mémoire et ordonnancement Segment « Heap »: Segment « Heap »: zone de mémoire pour lentreposage des données du processus;zone de mémoire pour lentreposage des données du processus; allocation dynamique de la mémoire;allocation dynamique de la mémoire; taille du segment varie en fonction des besoins du processus;taille du segment varie en fonction des besoins du processus; segment grossit vers les adresses croissantes (schème ELF).segment grossit vers les adresses croissantes (schème ELF).

15 15 Espace dadresses des processus Processus, mémoire et ordonnancement Segment « Fichier associé à la mémoire » (Mapped File): Segment « Fichier associé à la mémoire » (Mapped File): facilite laccès des fichiers par le processus;facilite laccès des fichiers par le processus; au lieu de faire appel aux services systèmes;au lieu de faire appel aux services systèmes; on associe un fichier à la mémoire;on associe un fichier à la mémoire; accès du fichier est plus rapide;accès du fichier est plus rapide; (concept existe également sous Windows NT).(concept existe également sous Windows NT).

16 16 Espace dadresses des processus Processus, mémoire et ordonnancement Segment « Bibliothèque partagée » (shared Library): Segment « Bibliothèque partagée » (shared Library): Bibliothèque partagée code objets utilisables par plus dun processus à la fois;Bibliothèque partagée code objets utilisables par plus dun processus à la fois; codes objets chargés dans lespace virtuel du processus par un appel de système;codes objets chargés dans lespace virtuel du processus par un appel de système; espace virtuel réservé pour ces codes objets est le segment « Bibliothèque partagée »;espace virtuel réservé pour ces codes objets est le segment « Bibliothèque partagée »; par convention, les bibliothèques partagées portent lextension.sopar convention, les bibliothèques partagées portent lextension.so

17 17 Espace dadresses des processus Segment « Pile utilisateur »: Segment « Pile utilisateur »: entreposage des variables locales;entreposage des variables locales; adresse de retour des routines;adresse de retour des routines; paramètres dentrée des fonctions;paramètres dentrée des fonctions; contenu des registres du processeur;contenu des registres du processeur; valeur de retour des fonctions appels systèmes;valeur de retour des fonctions appels systèmes; segment grossit vers les adresses décroissantes (schème ELF).segment grossit vers les adresses décroissantes (schème ELF). Processus, mémoire et ordonnancement

18 18 Espace dadresses des processus Processus, mémoire et ordonnancement Adresses supérieures à 0xE : Adresses supérieures à 0xE : image du code noyau;image du code noyau; image du code noyau partagée par tous les processus du système;image du code noyau partagée par tous les processus du système; un pont reliant tous les processus du système;un pont reliant tous les processus du système; permet la réalisation de la communication inter-processus.permet la réalisation de la communication inter-processus.

19 19 Organisation du noyau Deux aspects: Deux aspects: répondre dune manière synchrone les demandes des processus appels de système;répondre dune manière synchrone les demandes des processus appels de système; demandes asynchrones interruption des périphériques;demandes asynchrones interruption des périphériques; tous les processus sont assignés une priorité;tous les processus sont assignés une priorité; celui qui possède la plus haute priorité contrôle le processeur.celui qui possède la plus haute priorité contrôle le processeur. Processus, mémoire et ordonnancement

20 20 Organisation du noyau Processus, mémoire et ordonnancement Système Solaris: Système Solaris: programme du noyau /kernel/genunix ;programme du noyau /kernel/genunix ; taille du fichier 1,2 Mo;taille du fichier 1,2 Mo; chargement des serveurs sur par le noyau;chargement des serveurs sur par le noyau; chargement des serveurs utilisés seulement;chargement des serveurs utilisés seulement; démarrage du système plus rapide;démarrage du système plus rapide; architecture du noyau nest pas monolithique.architecture du noyau nest pas monolithique.

21 21 Organisation du noyau Processus, mémoire et ordonnancement Système Solaris: Système Solaris: comprendre lorganisation du noyau inspecter les sous-répertoires de /kernel ;comprendre lorganisation du noyau inspecter les sous-répertoires de /kernel ; Modules serveurs

22 22 Organisation du noyau Processus, mémoire et ordonnancement Système Solaris: Système Solaris: fondamentalement composé de deux composants ordonnancement ( /kernel/sched ) et communication IPC ( /kernel/sys/semsys et /kernel/sys/shmsys );fondamentalement composé de deux composants ordonnancement ( /kernel/sched ) et communication IPC ( /kernel/sys/semsys et /kernel/sys/shmsys ); serveur du système de fichier est également responsable de la gestion de la mémoire virtuelle.serveur du système de fichier est également responsable de la gestion de la mémoire virtuelle.

23 23 Appels de système Processus, mémoire et ordonnancement Appel de système fonction spéciale denveloppe (wrapper): Appel de système fonction spéciale denveloppe (wrapper): encodage des paramètres;encodage des paramètres; bascule le processus entre le mode utilisateur et le mode noyau;bascule le processus entre le mode utilisateur et le mode noyau; processus effectuant un appel de système est placé en mode dexécution noyau momentanément par le système.processus effectuant un appel de système est placé en mode dexécution noyau momentanément par le système.

24 24 Appels de système Processus, mémoire et ordonnancement Exemple: fonction open() Exemple: fonction open() open() est une fonction enveloppe;open() est une fonction enveloppe; open() place le numéro de service et les paramètres de l appel dans des registres globaux du processeur;open() place le numéro de service et les paramètres de l appel dans des registres globaux du processeur; open() exécute l instruction trap et change létat du processeur en mode noyau et démarre une routine de gestion dans le noyau;open() exécute l instruction trap et change létat du processeur en mode noyau et démarre une routine de gestion dans le noyau; routine de gestion invoque syscall() pour gérer lappel de système;routine de gestion invoque syscall() pour gérer lappel de système;

25 25 Appels de système Processus, mémoire et ordonnancement Exemple: fonction open() Exemple: fonction open() noyau réalise laction demandée (selon le numéro de service);noyau réalise laction demandée (selon le numéro de service); noyau place le résultat de l action dans des registres prédéterminés du processeur;noyau place le résultat de l action dans des registres prédéterminés du processeur; fonction enveloppe open() retire le résultat des registres et retourne le tout au processus appelant.fonction enveloppe open() retire le résultat des registres et retourne le tout au processus appelant.

26 26 Exécution multifilière Création dun fil dexécution: Création dun fil dexécution: par un appel de bibliothèque et non un appel de système;par un appel de bibliothèque et non un appel de système; Rendre le fil exécutable: Rendre le fil exécutable: noyau associe uns structure appelée LWP (Light Weight Process) au fil;noyau associe uns structure appelée LWP (Light Weight Process) au fil; chaque LWP correspond à un fil dexécution du noyau.chaque LWP correspond à un fil dexécution du noyau. Processus, mémoire et ordonnancement

27 27 Exécution multifilière Ainsi, la création dun fil nimplique pas le noyau mais leur exécution passe nécessairement par lassociation d un LWP du noyau. Ainsi, la création dun fil nimplique pas le noyau mais leur exécution passe nécessairement par lassociation d un LWP du noyau. Processus, mémoire et ordonnancement

28 28 Exécution multifilière Association fil d exécuition LWP réalisée par la bibliothèque multifilière /usr/lib/libthread.so ; Association fil d exécuition LWP réalisée par la bibliothèque multifilière /usr/lib/libthread.so ; chaque LWP est toujours associé à un fil particulier (bounded); chaque LWP est toujours associé à un fil particulier (bounded); pour économiser les ressources du noyau créer des fils détachés (unbounded); pour économiser les ressources du noyau créer des fils détachés (unbounded); fils détaché peut s associer à nimporte quel LWP disponible. fils détaché peut s associer à nimporte quel LWP disponible. la faminela famine Processus, mémoire et ordonnancement

29 29 Gestion de la mémoire Quantité de la mémoire physique est limitée: Quantité de la mémoire physique est limitée: mémoire virtuelle illusion de disposer toute la mémoire de la machine pour chacun des processus;mémoire virtuelle illusion de disposer toute la mémoire de la machine pour chacun des processus; mémoire virtuelle illusion dune carte de mémoire contiguë pour le programmeur;mémoire virtuelle illusion dune carte de mémoire contiguë pour le programmeur; gestionnaire de mémoire travaille d une manière transparente au service des processus.gestionnaire de mémoire travaille d une manière transparente au service des processus. Processus, mémoire et ordonnancement

30 30 Gestion de la mémoire Processus, mémoire et ordonnancement Gestionnaire de la mémoire: Gestionnaire de la mémoire: intimement lié à larchitecture de lordinateur;intimement lié à larchitecture de lordinateur; Organisation de la mémoire: Organisation de la mémoire: pages de taille fixe (8 Ko);pages de taille fixe (8 Ko); adresse physique {page, décalage};adresse physique {page, décalage}; MMU (Memory Management Unit) sert à convertir les adresses physiques en adresses virtuelles et vice versa.MMU (Memory Management Unit) sert à convertir les adresses physiques en adresses virtuelles et vice versa.

31 31 Gestion de la mémoire Processus, mémoire et ordonnancement Conversion adresse physique adresse virtuelle: Conversion adresse physique adresse virtuelle: simple opération LUT (Look Up Table);simple opération LUT (Look Up Table); gestionnaire de mémoire est responsable de placer la bonne table dans le MMU.gestionnaire de mémoire est responsable de placer la bonne table dans le MMU.

32 32 Gestion de la mémoire Processus, mémoire et ordonnancement Augmenter la vitesse des conversions: Augmenter la vitesse des conversions: mettre le contenu des adresses converties dans le VAC (Virtual Address Cache);mettre le contenu des adresses converties dans le VAC (Virtual Address Cache); fouiller d abord dans le VAC avant de passer à MMU.fouiller d abord dans le VAC avant de passer à MMU.

33 33 Gestion de la mémoire Processus, mémoire et ordonnancement Déroulement dun accès de mémoire: Déroulement dun accès de mémoire: requête initiée par le processeur en utilisant ladresse virtuelle dun processus;requête initiée par le processeur en utilisant ladresse virtuelle dun processus; requête captée par le VAC. Si possible, retourner le contenu de l adresse au processeur;requête captée par le VAC. Si possible, retourner le contenu de l adresse au processeur; si non, l adresse virtuelle est passée à MMU;si non, l adresse virtuelle est passée à MMU; MMU conversion valide le contenu de ladresse virtuelle est en mémoire;MMU conversion valide le contenu de ladresse virtuelle est en mémoire;

34 34 Gestion de la mémoire Processus, mémoire et ordonnancement Déroulement dun accès de mémoire (suite): Déroulement dun accès de mémoire (suite): MMU conversion invalide faute de page (page fault);MMU conversion invalide faute de page (page fault); faute de page le contenu de l adresse virtuelle est en mémoire secondaire (disque);faute de page le contenu de l adresse virtuelle est en mémoire secondaire (disque); faute de page charger la page manquante à partir du système de fichier (swap area);faute de page charger la page manquante à partir du système de fichier (swap area);

35 35 Gestion de la mémoire Processus, mémoire et ordonnancement Déroulement dun accès de mémoire (suite): Déroulement dun accès de mémoire (suite): chargement du contenu de ladresse virtuelle de la mémoire secondaire transfert immédiat dans le VAC puis dans le processeur;chargement du contenu de ladresse virtuelle de la mémoire secondaire transfert immédiat dans le VAC puis dans le processeur; Transfert des données de/vers le VAC pose un problème: Transfert des données de/vers le VAC pose un problème: il peut exister deux copies dune même donnée;il peut exister deux copies dune même donnée;

36 36 Gestion de la mémoire Processus, mémoire et ordonnancement Transfert des données de/vers le VAC pose un problème (suite): Transfert des données de/vers le VAC pose un problème (suite): une copie dans le VAC et lautre dans la mémoire;une copie dans le VAC et lautre dans la mémoire; Pour protéger lintégrité des données: Pour protéger lintégrité des données: VAC à écriture immédiate (write- through);VAC à écriture immédiate (write- through); VAC à écriture déférée (write-back).VAC à écriture déférée (write-back).

37 37 Gestion de la mémoire Processus, mémoire et ordonnancement Structures de données pour la gestion de la mémoire: Structures de données pour la gestion de la mémoire: objets nommés objets visibles dans le système de fichiers;objets nommés objets visibles dans le système de fichiers; objets anonymes objets invisibles dans le système de fichier;objets anonymes objets invisibles dans le système de fichier; Fichiers, répertoires, tuyaux nommés, les sockets, les périphériques, etc. Sémaphores, verrous, mémoire partagée, segments « Pile », « Données non initialisées », etc.

38 38 Gestion de la mémoire Processus, mémoire et ordonnancement Structures de données pour la gestion de la mémoire: Structures de données pour la gestion de la mémoire:

39 39 Gestion de la mémoire Processus, mémoire et ordonnancement Structures de données pour la gestion de la mémoire (suite): Structures de données pour la gestion de la mémoire (suite): vnode structure de données associée à une page de mémoire (objets nommés);vnode structure de données associée à une page de mémoire (objets nommés); anon structure de données associée à une page de mémoire (objets anonymes);anon structure de données associée à une page de mémoire (objets anonymes); a_hat structure contenant les paramètres matériels de MMU pour le processus;a_hat structure contenant les paramètres matériels de MMU pour le processus;

40 40 Gestion de la mémoire Processus, mémoire et ordonnancement Structures de données pour la gestion de la mémoire (suite): Structures de données pour la gestion de la mémoire (suite): Quatre listes de pages: 1) liste des pages libres; 2) liste des pages vnode ; 3) liste de hachage; 4) liste des pages anon.Quatre listes de pages: 1) liste des pages libres; 2) liste des pages vnode ; 3) liste de hachage; 4) liste des pages anon. pages anon espace déchange (swap space) paginé de la même façon que la mémoire physique;pages anon espace déchange (swap space) paginé de la même façon que la mémoire physique; pages anon occupe une partition distincte du disque rigide.pages anon occupe une partition distincte du disque rigide.

41 41 Gestion de la mémoire Processus, mémoire et ordonnancement Techniques de gestion: Techniques de gestion: durant la vie dun processus, des pages sont réclamées et dautres sont libérées;durant la vie dun processus, des pages sont réclamées et dautres sont libérées; pages réclamées enlevées de la liste des pages libres;pages réclamées enlevées de la liste des pages libres; pages libérées retournées dans la liste des pages libres;pages libérées retournées dans la liste des pages libres; Protocole LRU (Least Recently Used) pour la réclamation et la libération des pages mémoire.Protocole LRU (Least Recently Used) pour la réclamation et la libération des pages mémoire.

42 42 Gestion de la mémoire Processus, mémoire et ordonnancement Techniques de gestion (suite): Techniques de gestion (suite): Protocole LRU.Protocole LRU. Prendre les pages libres à la tête de la liste Remettre les pages libérées à la fin de la liste des pages libres Les pages réclamées seront celles qui ont été délaissées depuis longtemps.

43 43 Gestion de la mémoire Processus, mémoire et ordonnancement Résumé: Résumé:

44 44 Gestion de la mémoire Processus, mémoire et ordonnancement Gestion globale de la mémoire. Gestion globale de la mémoire. Processus effectue un adressage (lecture ou écriture de la mémoire). Processus effectue un adressage (lecture ou écriture de la mémoire). S.E. vérifie dans le VAC afin de trouver le contenu de ladresse virtuelle demandée;S.E. vérifie dans le VAC afin de trouver le contenu de ladresse virtuelle demandée; S.E. vérifie dans le MMU pour savoir sil dispose d une table de conversion valide pour le processus;S.E. vérifie dans le MMU pour savoir sil dispose d une table de conversion valide pour le processus; ET/OU

45 45 Gestion de la mémoire Processus, mémoire et ordonnancement Lors de la lecture ou lécriture (suite): Lors de la lecture ou lécriture (suite): si la page nest pas en mémoire, le S.E. vérifie la liste des pages libres;si la page nest pas en mémoire, le S.E. vérifie la liste des pages libres; si le nombre de pages libres est suffisant à la demande, le S.E. va associer une page libre dans l espace virtuel (via le vnode approprié);si le nombre de pages libres est suffisant à la demande, le S.E. va associer une page libre dans l espace virtuel (via le vnode approprié); sil est insuffisant, le S.E. doit déplacer certaines pages utilisées hors de la mémoire puis les récupérer pour le processus demandeur.sil est insuffisant, le S.E. doit déplacer certaines pages utilisées hors de la mémoire puis les récupérer pour le processus demandeur.

46 46 Gestion de la mémoire Processus, mémoire et ordonnancement Lors de la lecture ou lécriture (suite): Lors de la lecture ou lécriture (suite): S.E. copie alors le contenu adressé dans la page allouée.S.E. copie alors le contenu adressé dans la page allouée. Déplacement des pages pour faire de la place: Déplacement des pages pour faire de la place: swapper (PID = 0) responsable des déplacements;swapper (PID = 0) responsable des déplacements; déplacement des pages vers le swap space;déplacement des pages vers le swap space; page daemon (PID = 2) réalise la procédure de déplacement.page daemon (PID = 2) réalise la procédure de déplacement.

47 47 Gestion de la mémoire Processus, mémoire et ordonnancement Pour découvrir les pages à déplacer: Pour découvrir les pages à déplacer: algorithme THC (Two-handed Clock).algorithme THC (Two-handed Clock). Algorithme THC: Algorithme THC: deux variables;deux variables; min = QMPD / 64, max = QMPD / 16;min = QMPD / 64, max = QMPD / 16; QMPD Quantité de Mémoire Physique disponible. Comptabilisée lors du démarrage de la machine.QMPD Quantité de Mémoire Physique disponible. Comptabilisée lors du démarrage de la machine.

48 48 Gestion de la mémoire Processus, mémoire et ordonnancement Algorithme THC: Algorithme THC: but conserver toujours la mémoire disponible à lintérieur des limites min et max ;but conserver toujours la mémoire disponible à lintérieur des limites min et max ; quatre (4) par seconde (250 ms) algorithme THC est enclenché;quatre (4) par seconde (250 ms) algorithme THC est enclenché; si M r + M d < max alors un signal est envoyé au page daemon par le S.E. pour déplacer des pages hors de la mémoire.si M r + M d < max alors un signal est envoyé au page daemon par le S.E. pour déplacer des pages hors de la mémoire. Quantité de mémoire réclamée Quantité de mémoire disponible

49 49 Gestion de la mémoire Processus, mémoire et ordonnancement Principe de lalgorithme THC: Principe de lalgorithme THC: LAlgorithme THC Sopère sur des listes de pages

50 50 Gestion de la mémoire Processus, mémoire et ordonnancement Paramètres de lalgorithme THC: Paramètres de lalgorithme THC:

51 51 Gestion de la mémoire Processus, mémoire et ordonnancement Si le déplacement des pages nest pas suffisant … Si le déplacement des pages nest pas suffisant … Il faut déplacer les processus au complet. Il faut déplacer les processus au complet. C est le swapper qui en est le responsable. C est le swapper qui en est le responsable. nswapped, nombre de fils déplacés;nswapped, nombre de fils déplacés; runout, nombre de fils à remettre en mémoire;runout, nombre de fils à remettre en mémoire; runin, besoin de remettre en mémoire un fil mais la mémoire physique est insuffisante;runin, besoin de remettre en mémoire un fil mais la mémoire physique est insuffisante; tune_t_gpgslo, le niveau de mémoire disponible qui déclenchera le déplacement des processus.tune_t_gpgslo, le niveau de mémoire disponible qui déclenchera le déplacement des processus.

52 52 Gestion de la mémoire Processus, mémoire et ordonnancement Conditions pour le démarrage du swapper: Conditions pour le démarrage du swapper:

53 53 Processus, mémoire et ordonnancement Étapes dun swapout: Étapes dun swapout:

54 54 Processus, mémoire et ordonnancement Étapes dun swapin: Étapes dun swapin:

55 55 Gestion de la mémoire Processus, mémoire et ordonnancement Cas où le manque de mémoire physique empêche le swapper de remettre le processus en mémoire: Cas où le manque de mémoire physique empêche le swapper de remettre le processus en mémoire:

56 56 Ordonnancement Processus, mémoire et ordonnancement Classes dordonnancement: Classes dordonnancement: permet aux programmeurs de déterminer le type dordonnancement de leurs applications;permet aux programmeurs de déterminer le type dordonnancement de leurs applications; mieux répondre aux applications nouvelles;mieux répondre aux applications nouvelles; chaque classe possède des caractéristiques différentes;chaque classe possède des caractéristiques différentes; chaque classe priorité, durée dexécution;chaque classe priorité, durée dexécution; processus peut changer de classe par appels système.processus peut changer de classe par appels système.

57 57 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement: Stratégie dordonnancement:

58 58 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement: Stratégie dordonnancement: priorité assignée initialement par le S.E. selon la classe du fil dexécution;priorité assignée initialement par le S.E. selon la classe du fil dexécution; priorité peut varier au cous de lexistence du fil dexécution;priorité peut varier au cous de lexistence du fil dexécution; ordonnanceur choisit le premier fil le plus prioritaire pour passer le contrôle du processeur;ordonnanceur choisit le premier fil le plus prioritaire pour passer le contrôle du processeur; ordonnanceur remet le fil exécuté à la fin de la queue de priorité appropriée.ordonnanceur remet le fil exécuté à la fin de la queue de priorité appropriée.

59 59 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement: Stratégie dordonnancement: classe TS par défaut pour tous les processus en mode utilisateur;classe TS par défaut pour tous les processus en mode utilisateur; classe SYS les fils dexécution du noyau, priorité fixe, n est pas en temps partagé mais son préemptibles.classe SYS les fils dexécution du noyau, priorité fixe, n est pas en temps partagé mais son préemptibles.

60 60 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement: Stratégie dordonnancement: classe RT priorité fixe, en temps partagé, durée dexécution en fonction de leur priorité;classe RT priorité fixe, en temps partagé, durée dexécution en fonction de leur priorité; interruption toujours plus prioritaire que les autres classes, préempte les autres fils dexécution, pas en temps partagé.interruption toujours plus prioritaire que les autres classes, préempte les autres fils dexécution, pas en temps partagé.

61 61 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement sans préemption: Stratégie dordonnancement sans préemption: les fils dinterruption ont toujours une priorité plus haute que toutes les autres fils dexécution;les fils dinterruption ont toujours une priorité plus haute que toutes les autres fils dexécution; système au repos, le fil dexécution vide (idle thread) est ordonnancé;système au repos, le fil dexécution vide (idle thread) est ordonnancé; le fil dexécution ordonnancé est celui qui possède la plus haute priorité. Les fils de même priorité sont ordonnancés selon la technique « chacun son tour ».le fil dexécution ordonnancé est celui qui possède la plus haute priorité. Les fils de même priorité sont ordonnancés selon la technique « chacun son tour ».

62 62 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement sans préemption: Stratégie dordonnancement sans préemption: le fils dexécution est bloqué en attente dune ressource ou la fin d une opération dE/S;le fils dexécution est bloqué en attente dune ressource ou la fin d une opération dE/S; le fil dexécution a utilisé tout son temps alloué (traitement en temps partagé);le fil dexécution a utilisé tout son temps alloué (traitement en temps partagé); le fil dexécution subi une préemption;le fil dexécution subi une préemption; le fil dexécution a terminé son travail.le fil dexécution a terminé son travail. Engendre un changement d état du processus. Une nouvelle valeur de priorité est assignée. Cette valeur est calculée à partir d une table associée à la classe dordonnancement du processus.

63 63 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement sans préemption: Stratégie dordonnancement sans préemption: 100 fois par seconde, lordonnanceur vérifie sil existe des fils à exécuter dans la queue d exécution;100 fois par seconde, lordonnanceur vérifie sil existe des fils à exécuter dans la queue d exécution; dans le cas positif lordonnanceur choisit celui qui possède la plus haute priorité et lui passer le contrôle du processeur;dans le cas positif lordonnanceur choisit celui qui possède la plus haute priorité et lui passer le contrôle du processeur;

64 64 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement sans préemption: Stratégie dordonnancement sans préemption: si le processeur est déjà occupé:si le processeur est déjà occupé: une nouvelle valeur de priorité est assignée;une nouvelle valeur de priorité est assignée; une nouvelle durée d exécution est donnée;une nouvelle durée d exécution est donnée; les fils sont déplacés à la fin de leurs listes de priorité respectives;les fils sont déplacés à la fin de leurs listes de priorité respectives; les fils perdent le contrôle du processeur.les fils perdent le contrôle du processeur.

65 65 Ordonnancement Processus, mémoire et ordonnancement Stratégie dordonnancement avec préemption: Stratégie dordonnancement avec préemption: même stratégie que l ordonnancement sans préemption;même stratégie que l ordonnancement sans préemption; placer le fil préempté à la tête de sa liste de priorité (sa priorité inchangée).placer le fil préempté à la tête de sa liste de priorité (sa priorité inchangée).


Télécharger ppt "1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 3 Gestion des processus, gestion de la mémoire."

Présentations similaires


Annonces Google