cours se - src 1 - 2002 mémoire & processus. la gestion de la mémoire
TRANSCRIPT
Cours SE - SRC 1 - 2002Cours SE - SRC 1 - 2002
Mémoire & ProcessusMémoire & Processus
La Gestion de la La Gestion de la MémoireMémoire
IntroductionIntroduction
La mémoire physique d’un système se La mémoire physique d’un système se divise en deux catégories :divise en deux catégories :
La mémoire viveLa mémoire vive La mémoire de masseLa mémoire de masse
Le rôle du système d’exploitation est Le rôle du système d’exploitation est d’organisée ces mémoires pour en tirer le d’organisée ces mémoires pour en tirer le maximum.maximum.
CaractéristiquesCaractéristiques
Supports Physiques :Supports Physiques : Semi-conducteurSemi-conducteur MagnétiqueMagnétique OptiqueOptique
Caractéristiques :Caractéristiques : Volatile / Non volatileVolatile / Non volatile Effaçable / Non effaçableEffaçable / Non effaçable
CaractéristiquesCaractéristiques
Capacité :Capacité : Nombre de mots.Nombre de mots. Taille du mot ( Octet )Taille du mot ( Octet )
Unité de transfert :Unité de transfert : Mot, Bloc, Page, FichierMot, Bloc, Page, Fichier
Performances :Performances : Temps d’accèsTemps d’accès Temps de cycle ( Entre 2 accès)Temps de cycle ( Entre 2 accès) Débit de transfert (1/Temps Cycle)Débit de transfert (1/Temps Cycle)
Accès à la mémoireAccès à la mémoire
Séquentiel : Temps d’accès linéaireSéquentiel : Temps d’accès linéaire
Direct : Temps d’accès constantDirect : Temps d’accès constant
Mixte : Accès direct au voisinage de la Mixte : Accès direct au voisinage de la donnée + Parcours séquentieldonnée + Parcours séquentiel
Associatif : Accès à la donnée en Associatif : Accès à la donnée en recherchant une clé dans une table, recherchant une clé dans une table, Temps constant.Temps constant.
ExemplesExemples
RAM ( Random Access Memory)RAM ( Random Access Memory) Accès Direct (Temps d’accès 10 à 70 ns)Accès Direct (Temps d’accès 10 à 70 ns) VolatileVolatile Accès Mode Normal / Mode PageAccès Mode Normal / Mode Page
ROM ( Read Only Memory)ROM ( Read Only Memory) Accès directAccès direct Non volatileNon volatile Utilisation : Microprogrammes ( BIOS)Utilisation : Microprogrammes ( BIOS)
PROM, EPROM, EEPROM, FLASH EEPROMPROM, EPROM, EEPROM, FLASH EEPROM
Hiérarchie MémoireHiérarchie Mémoire
Rôle du Système d’exploitationRôle du Système d’exploitation
La gestion est un compromis entre La gestion est un compromis entre performances et quantité.performances et quantité.
Elle doit remplir les fonctions suivantes :Elle doit remplir les fonctions suivantes :
Permettre le partage de la mémoire en allouant des Permettre le partage de la mémoire en allouant des blocs aux différentes tâches.blocs aux différentes tâches.
Protéger les espaces mémoires utilisés.Protéger les espaces mémoires utilisés. Optimiser la quantité de mémoire disponibleOptimiser la quantité de mémoire disponible Traiter les échanges entre mémoire vive et mémoire Traiter les échanges entre mémoire vive et mémoire
de masse.de masse.
MéthodesMéthodes
Un seul processus en mémoire .Un seul processus en mémoire . Ex : MS-DOSEx : MS-DOS
Plusieurs processus en mémoire :Plusieurs processus en mémoire : Besoin de stocker momentanément des Besoin de stocker momentanément des
processus sur le disque : swappingprocessus sur le disque : swapping Mémoire adressable < mémoire réelle Mémoire adressable < mémoire réelle
nécessaire : mémoire virtuellenécessaire : mémoire virtuelle Ex : UNIXEx : UNIX
SWAPPINGSWAPPING
Mouvement des processus entre la mémoire Mouvement des processus entre la mémoire principale et le disque.principale et le disque.
Chaque processus actif occupe une partie Chaque processus actif occupe une partie variable de la mémoire :variable de la mémoire : Lorsqu’un processus n’est plus actif, il faut le sauver Lorsqu’un processus n’est plus actif, il faut le sauver
sur le disque.sur le disque. La zone de Swap peut-être prévue à l’avance par le La zone de Swap peut-être prévue à l’avance par le
SE ou allouée à la création du processus.SE ou allouée à la création du processus. Lorsque le processus se réveille, il faut lui trouver une Lorsque le processus se réveille, il faut lui trouver une
place en mémoire vive : Table d’occupation par blocs.place en mémoire vive : Table d’occupation par blocs.
Mémoire VirtuelleMémoire Virtuelle
Chaque programme considère :Chaque programme considère : Qu’il s’exécute tout seul à partir de l’adresse 0Qu’il s’exécute tout seul à partir de l’adresse 0 Qu’il a toute la mémoire Qu’il a toute la mémoire
En réalité, plusieurs programmes s’exécutent à En réalité, plusieurs programmes s’exécutent à la fois :la fois : Chacun possède une partie de la mémoire physique.Chacun possède une partie de la mémoire physique. L’accès aux pages mémoires est protégé par le SE.L’accès aux pages mémoires est protégé par le SE.
Le SE traduit les adresses virtuelles utilisées par Le SE traduit les adresses virtuelles utilisées par les programmes en adresses physiques :les programmes en adresses physiques : Utilise une table de pages située en mémoire Utilise une table de pages située en mémoire
physique.physique.
Mémoire VirtuelleMémoire Virtuelle
Utilité : Exécution de programmes plus Utilité : Exécution de programmes plus grands que la mémoire principalegrands que la mémoire principale
Protection : Les différents programmes Protection : Les différents programmes n’interfèrent pas.n’interfèrent pas.
Flexibilité : Les programmes peuvent se Flexibilité : Les programmes peuvent se placer n’importe où en mémoire.placer n’importe où en mémoire.
LES PROCESSUSLES PROCESSUS
Qu’est-ce qu’un Processus ?Qu’est-ce qu’un Processus ?
Processus = Unité d’exécutionProcessus = Unité d’exécution(Unité de partage du temps et de la (Unité de partage du temps et de la mémoire)mémoire)Processus # programmeProcessus # programme Un programme peut être exécuté plusieurs Un programme peut être exécuté plusieurs
fois et se trouver dans plusieurs unités fois et se trouver dans plusieurs unités d’exécution en même temps.d’exécution en même temps.
Le SE doit ordonnancer les processusLe SE doit ordonnancer les processus(Scheduler)(Scheduler)
Eléments de processusEléments de processus
Un processus comporte :Un processus comporte :
Du code machine exécutableDu code machine exécutable Une zone mémoire (données allouées par le Une zone mémoire (données allouées par le
processus)processus) Une pile ( pour les variables locales des Une pile ( pour les variables locales des
fonctions)fonctions) Un utilisateur propriétaire ( qui détermine les Un utilisateur propriétaire ( qui détermine les
permissions d’accès aux fichiers)permissions d’accès aux fichiers)
Etats d’un ProcessusEtats d’un Processus
Un processus peut être dans 3 états Un processus peut être dans 3 états possibles :possibles :
Elu (Actif) – Processus OK, Processeur OKElu (Actif) – Processus OK, Processeur OK Prêt (Suspendu) – processus OK, processeur Prêt (Suspendu) – processus OK, processeur
occupé par un autre processusoccupé par un autre processus Bloqué (En attente d’un évènement extérieur)Bloqué (En attente d’un évènement extérieur)
Processus non OK, même si le processeur Processus non OK, même si le processeur est disponible.est disponible.
Etats d’un processusEtats d’un processus
OrdonnancementOrdonnancement
Le système doit faire un choix :Le système doit faire un choix :
Equité : Chaque processus doit avoir du temps processeur.Equité : Chaque processus doit avoir du temps processeur. Efficacité : Le processeur doit être utilisé à 100 %Efficacité : Le processeur doit être utilisé à 100 % Temps de réponse : L’utilisateur devant sa machine ne doit pas Temps de réponse : L’utilisateur devant sa machine ne doit pas
attendre.attendre. Temps d’exécution : Une séquence d’instructions ne doit pas Temps d’exécution : Une séquence d’instructions ne doit pas
trop durer.trop durer. Rendement : Il faut faire le plus de choses possibles dans le Rendement : Il faut faire le plus de choses possibles dans le
temps le plus court possible.temps le plus court possible.
OrdonnancementOrdonnancement
Ordonnancement sans réquisition :Ordonnancement sans réquisition : Un processus est exécuté jusqu’à la fin.Un processus est exécuté jusqu’à la fin.
Ordonnancement avec réquisition :Ordonnancement avec réquisition : A chaque signal d’horloge, le SE reprend la A chaque signal d’horloge, le SE reprend la
main, décide si le processus en cours a main, décide si le processus en cours a consommé son quota de temps et alloue consommé son quota de temps et alloue éventuellement le processeur à un autre éventuellement le processeur à un autre processus.processus.
Il existe de nombreux algorithmes Il existe de nombreux algorithmes d’ordonnancement.d’ordonnancement.
Ordonnancement CirculaireOrdonnancement Circulaire
Chaque processus possède un quantum Chaque processus possède un quantum d’exécutiond’exécution
Si le processus a fini dans cet intervalle, on Si le processus a fini dans cet intervalle, on passe au suivant.passe au suivant.
S’il n’a pas fini, il passe en fin de liste et l’on S’il n’a pas fini, il passe en fin de liste et l’on exécute le suivant.exécute le suivant.
Ordonnancement CirculaireOrdonnancement Circulaire
Ordonnancement CirculaireOrdonnancement Circulaire
Problème : Réglage du Quantum :Problème : Réglage du Quantum :
Quantum trop petit / Commutation :Quantum trop petit / Commutation :Le processeur passe son temps à commuter.Le processeur passe son temps à commuter.
Quantum trop grandQuantum trop grandAugmentation du temps de réponse d’une Augmentation du temps de réponse d’une commandecommande
Ordonnancement avec prioritéOrdonnancement avec priorité
Plusieurs files d’attentes avec un niveau Plusieurs files d’attentes avec un niveau de priorité différentde priorité différent
La priorité d’un processus décroît au cours La priorité d’un processus décroît au cours du temps pour ne pas bloquer les autres du temps pour ne pas bloquer les autres files d’attentesfiles d’attentes
Ordonnancement avec prioritéOrdonnancement avec priorité
OrdonnancementOrdonnancementAutres algorithmesAutres algorithmes
Ordonnancement « plus court d’abord » :Ordonnancement « plus court d’abord » : Estimation de la durée de chaque processus Estimation de la durée de chaque processus
en attenteen attente Exécuter le processus le plus courtExécuter le processus le plus court
Ordonnancement garanti :Ordonnancement garanti : Si n utilisateurs connectés, chacun reçoit 1/n Si n utilisateurs connectés, chacun reçoit 1/n
du temps processeur.du temps processeur.
Unix et les processusUnix et les processus
Processus fils / père :Processus fils / père : Ex : le shell est un processus comme les Ex : le shell est un processus comme les
autres. Chaque commande exécutée autres. Chaque commande exécutée correspond à la création d’un processus correspond à la création d’un processus « fils » par rapport au shell (« père »).« fils » par rapport au shell (« père »).
Chaque processus est identifié par :Chaque processus est identifié par : PID ( Processus Identifier)PID ( Processus Identifier) PPID (Parent Processus Identifier)PPID (Parent Processus Identifier)
Unix et les processusUnix et les processus
2 Types de processus :2 Types de processus :
Processus systèmes ( daemons)Processus systèmes ( daemons)Exécution de tâches générales, souventExécution de tâches générales, souventcontrôlées par rootcontrôlées par root
Processus utilisateursProcessus utilisateurs
Modes d’exécutionModes d’exécution
Interactif (foreground) :Interactif (foreground) : Le plus fréquent (on tape une commande, on Le plus fréquent (on tape une commande, on
attend un résultatattend un résultat Interruption de la commande par CTRL CInterruption de la commande par CTRL C Suspension de la commande par CTRL ZSuspension de la commande par CTRL Z
Arrière-plan (background) :Arrière-plan (background) : La commande est lancée, mais on rend le La commande est lancée, mais on rend le
contrôle à l’utilisateur. Pas d’interaction avec contrôle à l’utilisateur. Pas d’interaction avec celui-ci.celui-ci.
Modes d’exécutionModes d’exécution
Différé (AT) :Différé (AT) : Le fichier de commandes est exécuté à une date Le fichier de commandes est exécuté à une date
fixée.fixée. Pas d’interaction avec l’utilisateurPas d’interaction avec l’utilisateur
File d’attente (batch)File d’attente (batch) La commande est placée dans une file d’attente. La La commande est placée dans une file d’attente. La
file d’attente est vidée en fonction de la charge du file d’attente est vidée en fonction de la charge du processeurprocesseur
Cyclique (Crontab) :Cyclique (Crontab) : Un fichier spécial contient les tâches à exécuter Un fichier spécial contient les tâches à exécuter
régulièrement.régulièrement. Un daemon scrute sans arrêt ce fichier.Un daemon scrute sans arrêt ce fichier.
Les ThreadsLes Threads
Processus légers :Processus légers :
Plusieurs Threads à l’intérieur d’un Plusieurs Threads à l’intérieur d’un processus.processus.
Chaque Thread accède au même segment de Chaque Thread accède au même segment de mémoire ( donc aux mêmes données)mémoire ( donc aux mêmes données)