Fiche de révision : Introduction aux architectures et gestion mémoire

Plan du Cours

  1. Typologies et architectures système
  2. Processeur et hiérarchie mémoire
  3. Stockage, C et cycle d'exécution
  4. Registres, anneaux et événements
  5. Interruptions, reprise et abandon
  6. Récurrence et préemption
  7. Adressage et protection mémoire
  8. Segmentation et pagination
  9. Remplacement de page et allocation
  10. Processus et appels système
  11. Descripteur et ordonnancement des processus

1. Typologies et architectures système

Notions clés & Définitions

  • Mainframe : Un type d’ordinateur orienté vers de gros volumes de traitement et d’entrées/sorties.
  • Serveur : Un type d’ordinateur exposant un service à de nombreux utilisateurs.
  • Microkernel : Une architecture où la frontière entre mode utilisateur et mode système est placée le plus tôt possible, et où le noyau relance des composantes après crash.
  • Monolithique : Une architecture où l’OS tient dans un exécutable unique regroupant l’intégralité des composantes.

Points essentiels

  • Dans un serveur, la contrainte de batterie est mentionnée comme limitation.
  • Le microkernel vise la réduction du risque d’erreur en limitant le code en mode système.
  • Une architecture modulaire peut charger des modules en mémoire seulement quand le besoin apparaît.
  • Le exokernel gère les ressources en mode utilisateur et garde un mécanisme bas niveau en mode système.

Astuce mémo

Monolithique = “tout dans un seul bloc”, microkernel = “petit noyau qui relance”.

2. Processeur et hiérarchie mémoire

Notions clés & Définitions

  • Cache (L1 L2 L3) : Une mémoire extrêmement rapide utilisée pour accélérer l’accès aux données et instructions.
  • RAM : La mémoire principale rapide où un programme stocke ses données.
  • Mémoire secondaire : Une mémoire plus lente (comme HDD ou SSD) servant de stockage de repli.
  • Hiérarchie mémoire : L’organisation des mémoires d’un système du plus rapide au plus lent pour optimiser les performances.

Points essentiels

  • Le processeur doit réagir à des comportements anormaux comme division par zéro, accès mémoire invalide et exécution d’instructions privilégiées.
  • Le processeur distribue des cycles d’exécution entre les programmes.
  • Une exécution a besoin d’accès mémoire et peut inclure I/O comme lecture de fichier, envoi réseau et saisie clavier.
  • Le passage du plus rapide au plus lent est : cache, RAM, puis mémoire secondaire (HDD/SSD).

Astuce mémo

Cache → RAM → disque : plus on descend, plus c’est lent.

3. Stockage, C et cycle d'exécution

Notions clés & Définitions

  • Langage C : Un langage compilé proche du matériel, adapté à l’implémentation de code performant.
  • Fetch : L’étape de récupération de l’instruction suivante à exécuter par le processeur.
  • Decode : L’étape où le processeur interprète les détails de l’instruction.
  • Exécution : L’étape où le processeur réalise l’action demandée par l’instruction (registres, pile, données, mise à jour du pointeur d’instruction).

Points essentiels

  • Le stockage a pour rôle la protection des données, l’adressation, la cohérence et la pérennité.
  • L’exécution d’un programme suit : Fetch, Decode, puis Exécution en modifiant registres et pile et en mettant à jour le pointeur d’instruction.
  • Le C est présenté comme haut niveau pour structurer correctement un programme et bas niveau pour coller au matériel.

4. Registres, anneaux et événements

Notions clés & Définitions

  • Ring 0 : Le niveau de privilège où s’exécute le noyau du système d’exploitation.
  • Ring 1 et Ring 2 : Les niveaux de privilège où s’exécutent des services du système d’exploitation.
  • Ring 3 : Le niveau de privilège où s’exécutent les programmes utilisateurs.
  • Exception : Un événement issu du comportement interne de l’exécution courante, lié à une instruction problématique.
  • Interruption : Un événement envoyé par un périphérique, c’est-à-dire une source externe comme une frappe clavier ou un fichier prêt.

Points essentiels

  • lgdt charge la Global Descriptor Table, lldt charge la Local Descriptor Table, et lidt charge l’Interrupt Descriptor Table.
  • Les exceptions incluent par exemple instruction non chargée en mémoire, code opératoire invalide, division par zéro et accès mémoire invalide.
  • Une interruption peut provenir d’un périphérique comme une frappe clavier ou l’état “fichier prêt à la lecture”.
  • Les événements sont traités avec une logique de frontière : les interruptions et les appels système donnent lieu à un tel changement de contexte.

Astuce mémo

Anneaux : Ring 0 noyau, puis services, puis Ring 3 programmes.

5. Interruptions, reprise et abandon

Notions clés & Définitions

  • Reprise : Traitement d’un événement récupérable permettant de continuer à l’exécution à partir d’une adresse corrélée.
  • Événement récupérable : Un événement dont le traitement sauvegarde le contexte, le traite, restaure le contexte, puis continue le programme.
  • Événement irrécupérable : Une exception qui impose la sauvegarde du contexte, la libération des ressources, la notification, puis l’abandon du programme.
  • Déroutement : Mécanisme de branchement vers le code de gestion après sauvegarde de l’adresse de l’instruction courante.

Points essentiels

  • Pour une reprise, l’OS identifie le morceau dont la première adresse correspond à celle corrélée à l’événement, puis le charge à cette adresse avant de continuer.
  • Les interruptions ont lieu à une frontière et la continuation se fait à l’adresse suivante après traitement comme une notification de fin (exemple “End of Interrupt”).
  • En cas d’événement irrécupérable, le système libère les ressources allouées avant d’abandonner le programme.
  • Le déroutement peut être fait par registre de cause (saut vers du code de gestion si un événement est encodé) ou par vectorisation (ISR associée à chaque type d’événement).

Astuce mémo

Récupérable = on recharge et on reprend ; irrécupérable = on notifie et on abandonne.

6. Récurrence et préemption

Notions clés & Définitions

  • Récurrence (re-entrant) : Propriété où un gestionnaire d’événements peut être interrompu ou relancer une nouvelle exécution, nécessitant une sauvegarde via stack.
  • Préemption : Mécanisme garantissant qu’une interruption de priorité élevée est traitée avant une interruption de priorité plus basse en cours ou en attente.
  • Stack : Structure utilisée pour empiler et dépiler des contextes complets lors d’événements.
  • Phases critiques : Périodes protégées en désactivant les interruptions pour éviter des interférences pendant la sauvegarde/restauration.

Points essentiels

  • Le gestionnaire d’événements peut mettre en suspens n’importe quel code, y compris lui-même.
  • Les gestionnaires réentrants permettent de provoquer un déroulement ; les gestionnaires préemptifs garantissent l’ordre selon les priorités.
  • Pour traiter une occurrence pendant une phase critique, le système désactive les interruptions, empile adresse et contexte, puis les réactive avant de reprendre.
  • Lors du traitement d’une interruption, l’exécution bloque toutes celles de priorité inférieure.

Astuce mémo

Préemption = priorité gagnante, récursivité = empile/dépile via stack.

7. Adressage et protection mémoire

Notions clés & Définitions

  • Adressage absolu : Mode où les branchements utilisent des adresses fixées, et où la protection à l’exécution est absente selon le texte.
  • Adressage relatif statique : Mode où l’adresse d’accès se calcule par rapport à une adresse de chargement, mais déplacer le programme ensuite devient difficile.
  • Adressage relatif dynamique : Mode où deux registres spéciaux base et limite déterminent si l’adresse demandée est dans l’intervalle autorisé.
  • Protection mémoire : Ensemble de mécanismes qui préviennent l’accès mémoire invalide en vérifiant les adresses consultées.

Points essentiels

  • Avec adressage absolu, le programme est compilé puis chargé en respectant les adresses choisies, avec protection limitée à la compilation et aucune à l’exécution.
  • Avec adressage relatif statique, le calcul se fait en ajoutant l’adresse de chargement, et déplacer ensuite impose de modifier toutes les références.
  • Avec adressage relatif dynamique, si l’adresse est inférieure à la limite alors l’accès devient base + adresse, sinon une exception est déclenchée.
  • L’adressage relatif dynamique permet la protection car toutes les adresses accédées peuvent être vérifiées.

Astuce mémo

Absolu = “aucune barrière à l’exécution”, dynamique = “base + limite vérifie tout”.

8. Segmentation et pagination

Notions clés & Définitions

  • Segmentation : Découpage du programme en plusieurs espaces d’adressage appelés segments, chacun décrit par une base, une limite et des attributs d’accès.
  • Pagination : Découpage de l’espace virtuel en pages et de la mémoire physique en cadres pour autoriser un chargement partiel.
  • Bit présence : Attribut (notamment dans segmentation/pagination) indiquant si l’élément est présent en mémoire physique.
  • TLB : Cache associatif qui mémorise la traduction des entrées de table des pages en s’appuyant sur la localité.

Points essentiels

  • Un segment décrit le type (code ou données), base physique, limite pour les décalages, privilège requis et présence chargée ou non.
  • En segmentation, un accès à un segment dont la présence vaut 0 provoque une instruction non chargée.
  • En pagination, l’espace virtuel peut exister partiellement en mémoire et un accès avec présence=0 conduit à charger la page en identifiant ou libérant un cadre.
  • La TLB sert d’accélérateur basé sur la localité : on accède souvent à des adresses voisines et on évite des traductions coûteuses.

Astuce mémo

Segmentation = “morceaux logiques” (code/données), pagination = “morceaux fixes” (pages/cadres).

9. Remplacement de page et allocation

Notions clés & Définitions

  • Page miss : Situation où l’accès vise une page dont la présence vaut 0, déclenchant le mécanisme de remplacement.
  • Éviction de page : Action consistant à remettre la page hors de la mémoire physique, donc à faire passer la présence à 0.
  • Algorithme LRU : Politique de remplacement favorisant l’éviction de la page la moins récemment utilisée.
  • NRU : Politique de remplacement basant la décision sur référencée et modifiée.

Points essentiels

  • La cause du remplacement est double : page non présente (page miss) et tous les cadres occupés par des pages.
  • Après sélection d’une page à évincer, le système accède au disque pour charger la page demandée et sauvegarder celle évincée, puis met à jour les tables avant de reprendre l’exécution.
  • L’optimal choisit d’évincer la page dont le prochain accès est le plus lointain en nombre d’instructions.
  • L’optimisation mentionne qu’on sauvegarde en secondaire uniquement si la page évincée est modifiée (modifiée = 1).

Astuce mémo

NRU/Modifiée : si ce n’est pas modifié, on n’écrit pas sur disque.

10. Processus et appels système

Notions clés & Définitions

  • Processus : Objet en activité, porteur d’un contexte et d’un cycle de vie synchronisé par l’ordonnancement.
  • Appel système : Mécanisme où un processus déclenche une interruption logicielle pour demander un service au système d’exploitation.
  • pid : Identifiant numérique associé à un processus dans les descripteurs.
  • CPU-bound : Type de processus qui occupe intensivement le processeur et se suspend occasionnellement par I/O bloquant.
  • I/O-bound : Type de processus qui utilise peu le processeur et se suspend fréquemment à cause d’I/O bloquant.

Points essentiels

  • Un programme est décrit comme un objet inerte, tandis qu’un processus est un objet en activité.
  • Un appel système permet notamment d’allouer/libérer de la mémoire, d’ouvrir/lire/écrire/fermer des fichiers, et de créer des processus via fork ou execve.
  • Temps total = instant de fin moins instant de début, et il est décomposé en temps utilisateur et temps système.
  • Un CPU-bound peut être suspendu occasionnellement par I/O bloquant, alors qu’un I/O-bound est souvent suspendu par I/O bloquant.

Astuce mémo

CPU-bound = CPU souvent ; I/O-bound = attente I/O souvent.

11. Descripteur et ordonnancement des processus

Notions clés & Définitions

  • Descripteur de processus : Structure regroupant les informations nécessaires à l’exécution d’un processus : identifiant, état, contexte, mémoire et fichiers ouverts.
  • État zombie : État après terminaison où un processus attend qu’un autre récupère sa valeur de retour.
  • Déchargement : Opération où un processus perd de la mémoire pour libérer des ressources, souvent suite à besoin physique ou manque de cadres libres.
  • Déblocage : Transition où un processus repasse à l’état prêt après un événement rendant sa continuation possible.

Points essentiels

  • Le descripteur regroupe notamment pid, état, contexte (registres et pointeur de pile) et indicateur d’instruction courante (pc/cs/eip).
  • Après création, suspension ou terminaison, l’ordonnanceur décide quel processus passe en exécution, en s’appuyant sur les transitions décrites (EX SYS, EX USR, PR, BL, ZOMBIE).
  • Le déchargement a une cause double : besoin de mémoire physique (défaut de page, malloc) ou absence de cadres libres, et il peut être lié à la préemption.
  • Le déblocage transforme BL en PR quand l’attente I/O est satisfaite ou quand de la mémoire devient disponible (libération ou exit).

Astuce mémo

Ordonnancement = choisir qui passe de PR vers EX à chaque événement (création, suspension, terminaison, préemption).

Tableaux de synthèse

Modes d’adressage et protection

ModeCalcul/contrôleProtection indiquée
AbsoluAdresse fixée lors du chargementProtection limitée à la compilation, aucune à l’exécution
Relatif statiqueAjout de l’adresse de chargement aux référencesProtection limitée
Relatif dynamiqueVérification via base et limite puis calcul base + adresseVérification des adresses accédées, donc protection

Pièges & confusions fréquents

  1. Confondre exception et interruption : une exception vient d’une instruction problématique interne, une interruption vient d’un périphérique externe.
  2. Croire que la reprise s’applique à tout événement : seul un événement récupérable suit sauvegarde, traitement, restauration et continuation.
  3. Penser que l’adresse absolue offre une protection à l’exécution : le texte indique au contraire aucune protection à l’exécution.
  4. Mélanger reprise et abandon en cas d’événements multiples : dans le cas évoqué (pipeline), l’abandon l’emporte.
  5. Penser que la TLB sert à “charger” les pages : elle accélère la traduction à partir de la localité, tandis que le chargement relève des mécanismes de pages présentes/absentes.
  6. Confondre Ring 3 avec le noyau : Ring 0 est le noyau, Ring 3 correspond aux programmes.

Checklist Examen

  1. Savoir classifier les typologies (mainframe, serveur, PC, mobile, embarqué) et l’architecture associée (monolithique, modulaire, microkernel, exokernel).
  2. Décrire le rôle général du processeur : réagir aux fautes (exceptions) et effectuer les opérations nécessaires (dont I/O et accès mémoire).
  3. Énumérer la hiérarchie mémoire du texte (cache L1/L2/L3, RAM, HDD/SSD) et relier cache rapide et RAM pour le stockage des données.
  4. Réciter les étapes du cycle d’exécution (Fetch, Decode, Exécution) et citer ce qui est mis à jour lors de l’exécution.
  5. Connaître le sens des anneaux Ring 0 à Ring 3 et distinguer exception (source interne) de interruption (source externe).
  6. Expliquer la différence entre événement récupérable et irrécupérable, y compris les étapes de sauvegarde/restauration/libération et l’abandon du programme.
  7. Savoir décrire la reprise : chargement du code à l’adresse corrélée et continuation à l’adresse corrélée.
  8. Connaître les deux mécanismes de déroutement (registre de cause vs vectorisation) et le rôle de sauvegarde de l’adresse d’instruction courante.
  9. Décrire le comportement en cas d’événements multiples pour la logique donnée (traiter clavier d’abord pour réduire la latence, et abandon qui l’emporte dans le cas pipeline).
  10. Réciter les éléments de récurrence et préemption : stack, désactivation des interruptions pendant phases critiques, ordre de priorité et blocage des priorités inférieures.
  11. Comparer les modes d’adressage (absolu, relatif statique, relatif dynamique) et donner la condition avec base/limite menant à une exception.
  12. Expliquer segmentation : attributs d’un segment et rôle du bit de présence et des événements instruction non chargée.
  13. Expliquer pagination : pages/cadres, table des pages et interprétation des entrées (cadre, référencée, modifiée, présence, permission).
  14. Décrire le remplacement de page : causes, étapes d’éviction/chargement/sauvegarde selon modifiée, et citer au moins optimal, LRU, NRU, FIFO, seconde chance.

Teste tes connaissances

Teste tes connaissances sur Introduction aux architectures et gestion mémoire avec 22 questions à choix multiples et corrections détaillées.

1. Quelle différence distingue une exception d’une interruption ?

2. Dans quel cas faut-il écrire une page évincée sur le disque avant de la retirer de la mémoire physique ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Introduction aux architectures et gestion mémoire avec 22 flashcards interactives.

Typologies système — exemples ?

Mainframe, serveur, microkernel, monolithique.

Architecture monolithique — caractéristique ?

Tout dans un seul exécutable.

Microkernel — rôle ?

Minimise le code en mode système.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches