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

GPA435 Systèmes d’exploitation et programmation de système

Présentations similaires


Présentation au sujet: "GPA435 Systèmes d’exploitation et programmation de système"— Transcription de la présentation:

1 GPA435 Systèmes d’exploitation et programmation de système
Chapitre 3 Gestion des processus, gestion de la mémoire et ordonnancement Copyright, 2000 © Tony Wong, Ph.D., ing. ETS - GPA, (c) Tony Wong, Ph.D., ing.

2 GPA435 Systèmes d'exploitation et programmation de système
Processus, mémoire et ordonnancement Rôles fondamentaux Tous les S.E. on comme premier objectif: gestion efficace des processus. gestion de la mémoire. gestion des périphériques. Entités manipulées par le S.E. modélise un programme en exécution Ressource utilisée par les processus Ressource utilisée par les processus ETS - GPA, (c) Tony Wong, Ph.D., ing.

3 Modèle pratique des processus
GPA435 Systèmes d'exploitation et programmation de système Processus, mémoire et ordonnancement Modèle pratique des processus Déplacement d’un processus vers/de la mémoire secondaire (swapping). Libère les ressources utilisées afin d’admettre de nouveaux processus dans le système. ETS - GPA, (c) Tony Wong, Ph.D., ing.

4 Modèle UNIX Modèle des processus de SVR4:
Processus, mémoire et ordonnancement Modèle UNIX Modèle des processus de SVR4: tenir compte des modes d’exécution (mode utilisateur et mode noyau); 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 » lorsqu’il passe du mode d ’exécution noyau en mode d ’exécution utilisateur.

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

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

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

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

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

10 Processus, mémoire et ordonnancement
Modèle UNIX 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); swapper  porte le numéro d’identification de processus PID = 0; ce dernier est responsable de la création du processus « init » (PID = 1); tous les autres processus sont descendants de ce processus init.

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

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

13 Espace d’adresses des processus
Processus, mémoire et ordonnancement Espace d’adresses des processus Segment « Données »: entreposage des symboles constants ou globaux. deux types de données  données initialisées et données non initialisées. 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 Espace d’adresses des processus
Processus, mémoire et ordonnancement Espace d’adresses des processus Segment « Heap »: zone de mémoire pour l’entreposage des données du processus; allocation dynamique de la mémoire; taille du segment varie en fonction des besoins du processus; segment grossit vers les adresses croissantes (schème ELF).

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

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

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

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

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

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

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

22 Organisation du noyau Système Solaris:
Processus, mémoire et ordonnancement Organisation du noyau Système Solaris: 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.

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

24 Appels de système Exemple: fonction open()
Processus, mémoire et ordonnancement Appels de système Exemple: fonction open() 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() 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 l’appel de système;

25 Appels de système Exemple: fonction open()
Processus, mémoire et ordonnancement Appels de système Exemple: fonction open() noyau réalise l’action 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; fonction enveloppe open() retire le résultat des registres et retourne le tout au processus appelant.

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

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

28 Exécution multifilière
Processus, mémoire et ordonnancement Exécution multifilière 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); pour économiser les ressources du noyau  créer des fils détachés (unbounded); fils détaché peut s ’associer à n’importe quel LWP disponible. la famine

29 Gestion de la mémoire Quantité de la mémoire physique est limitée:
Processus, mémoire et ordonnancement Gestion de la mémoire 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 d’une carte de mémoire contiguë pour le programmeur; gestionnaire de mémoire travaille d ’une manière transparente au service des processus.

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

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

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

33 Gestion de la mémoire Déroulement d’un accès de mémoire:
Processus, mémoire et ordonnancement Gestion de la mémoire Déroulement d’un accès de mémoire: requête initiée par le processeur en utilisant l’adresse virtuelle d’un processus; 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; MMU  conversion valide  le contenu de l’adresse virtuelle est en mémoire;

34 Gestion de la mémoire Déroulement d’un accès de mémoire (suite):
Processus, mémoire et ordonnancement Gestion de la mémoire Déroulement d’un accès de mémoire (suite): 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  charger la page manquante à partir du système de fichier (swap area);

35 Gestion de la mémoire Déroulement d’un accès de mémoire (suite):
Processus, mémoire et ordonnancement Gestion de la mémoire Déroulement d’un accès de mémoire (suite): chargement du contenu de l’adresse 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: il peut exister deux copies d’une même donnée;

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

37 Processus, mémoire et ordonnancement
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 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 Processus, mémoire et ordonnancement
Gestion de la mémoire Structures de données pour la gestion de la mémoire:

39 Processus, mémoire et ordonnancement
Gestion de la mémoire 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); 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;

40 Processus, mémoire et ordonnancement
Gestion de la mémoire 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. 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.

41 Gestion de la mémoire Techniques de gestion:
Processus, mémoire et ordonnancement Gestion de la mémoire Techniques de gestion: durant la vie d’un processus, des pages sont réclamées et d’autres sont libérées; pages réclamées  enlevées de 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.

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

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

44 Gestion de la mémoire Gestion globale de la mémoire.
Processus, mémoire et ordonnancement Gestion de la mémoire Gestion globale 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 l’adresse virtuelle demandée; S.E. vérifie dans le MMU pour savoir s’il dispose d ’une table de conversion valide pour le processus; ET/OU

45 Gestion de la mémoire Lors de la lecture ou l’écriture (suite):
Processus, mémoire et ordonnancement Gestion de la mémoire Lors de la lecture ou l’écriture (suite): si la page n’est 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é); s’il 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 Gestion de la mémoire Lors de la lecture ou l’écriture (suite):
Processus, mémoire et ordonnancement Gestion de la mémoire Lors de la lecture ou l’écriture (suite): S.E. copie alors le contenu adressé dans la page allouée. Déplacement des pages pour faire de la place: swapper (PID = 0) responsable des déplacements; déplacement des pages vers le swap space; page daemon (PID = 2) réalise la procédure de déplacement.

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

48 Gestion de la mémoire Algorithme THC:
Processus, mémoire et ordonnancement Gestion de la mémoire Algorithme THC: but  conserver toujours la mémoire disponible à l’intérieur des limites min et max; quatre (4) par seconde (250 ms)  algorithme THC est enclenché; si Mr + Md < 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 L’Algorithme THC S’opère sur des listes de pages
Processus, mémoire et ordonnancement Gestion de la mémoire Principe de l’algorithme THC: L’Algorithme THC S’opère sur des listes de pages

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

51 Processus, mémoire et ordonnancement
Gestion de la mémoire Si le déplacement des pages n’est pas suffisant … Il faut déplacer les processus au complet. C ’est le swapper qui en est le responsable. nswapped, nombre de fils déplacés; runout, nombre de fils à remettre en mémoire; 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.

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

53 Processus, mémoire et ordonnancement
Étapes d’un swapout:

54 Processus, mémoire et ordonnancement
Étapes d’un swapin:

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

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

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

58 Ordonnancement Stratégie d’ordonnancement:
Processus, mémoire et ordonnancement Ordonnancement Stratégie d’ordonnancement: priorité assignée initialement par le S.E. selon la classe du fil d’exécution; priorité peut varier au cous de l’existence du fil d’exécution; 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.

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

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

61 Ordonnancement Stratégie d’ordonnancement sans préemption:
Processus, mémoire et ordonnancement Ordonnancement Stratégie d’ordonnancement sans préemption: les fils d’interruption ont toujours une priorité plus haute que toutes les autres fils d’exécution; système au repos, le fil d’exécution vide (idle thread) est ordonnancé; le fil d’exé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 Ordonnancement Stratégie d’ordonnancement sans préemption:
Processus, mémoire et ordonnancement Ordonnancement Stratégie d’ordonnancement sans préemption: le fils d’exécution est bloqué en attente d’une ressource ou la fin d ’une opération d’E/S; le fil d’exécution a utilisé tout son temps alloué (traitement en temps partagé); le fil d’exécution subi une préemption; le fil d’exé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 d’ordonnancement du processus.

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

64 Ordonnancement Stratégie d’ordonnancement sans préemption:
Processus, mémoire et ordonnancement Ordonnancement Stratégie d’ordonnancement sans préemption: si le processeur est déjà occupé: une nouvelle valeur de priorité est assigné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 perdent le contrôle du processeur.

65 Ordonnancement Stratégie d’ordonnancement avec préemption:
Processus, mémoire et ordonnancement Ordonnancement Stratégie d’ordonnancement avec 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).


Télécharger ppt "GPA435 Systèmes d’exploitation et programmation de système"

Présentations similaires


Annonces Google