ilovepdf_merged.pdf
Document Details
Uploaded by SuccessfulFactorial
Tags
Full Transcript
Note de Révision : Architecture des Systèmes Informatiques 1. Les différents niveaux d'une machine informatique Matériel (Hardware) : Les composants physiques d'un ordinateur, tels que le processeur (CPU), la mémoire centrale (RAM), et les périphériques connectés via des bus. Applicat...
Note de Révision : Architecture des Systèmes Informatiques 1. Les différents niveaux d'une machine informatique Matériel (Hardware) : Les composants physiques d'un ordinateur, tels que le processeur (CPU), la mémoire centrale (RAM), et les périphériques connectés via des bus. Applications (Software) : Les programmes qui permettent à l'utilisateur d'accomplir des tâches spécifiques. Système d'exploitation : L'interface qui gère l'interaction entre le matériel et les logiciels, facilitant l'utilisation des ressources de la machine. 2. Architecture de Von Neumann L'architecture Von Neumann, proposée par John von Neumann en 1945, est un modèle d'ordinateur classique où : Mémoire : Stocke les instructions et les données dans une seule mémoire unifiée. CPU : Exécute les instructions. Il est composé de l'unité arithmétique et logique (ALU) pour les calculs et l'unité de commande (CU) pour déchiffrer et gérer l'exécution des instructions. Bus : Les données circulent entre les différents composants via les bus. Limitation : Le "goulot d'étranglement de Von Neumann", une limitation due au fait que les instructions et les données partagent le même bus de communication, ralentit les opérations. 3. Les principaux composants d'un ordinateur Processeur (CPU) : C'est le cerveau de l'ordinateur. Il exécute les instructions d'un programme à une vitesse déterminée par la fréquence de l'horloge. Mémoire centrale (RAM) : Elle stocke temporairement les données pendant l'exécution des programmes. Bus : Ce sont les canaux de communication entre les différents composants de l'ordinateur. Mémoire cache : Une mémoire très rapide située entre le CPU et la RAM, qui stocke les données fréquemment utilisées. 4. Types de mémoire Volatiles : Perdent les données lorsque l'ordinateur est éteint (ex. : RAM). Non volatiles : Conservent les données après l'arrêt de l'ordinateur (ex. : Disques durs, SSD). Hiérarchie de la mémoire : Registres : La mémoire la plus rapide mais très petite, utilisée directement par le CPU. Cache : Niveau intermédiaire entre le CPU et la RAM. RAM : Mémoire principale de travail. Stockage de masse : Les disques durs ou SSD pour stocker les données à long terme. 5. Les interruptions Une interruption permet à un périphérique ou à un programme de signaler au processeur qu'il doit prendre en charge un événement immédiat, interrompant temporairement l'exécution du programme en cours. IRQ (Interrupt Request) : Interruptions matérielles, asynchrones, émises par les périphériques (clavier, souris, etc.). Trappes (Exceptions) : Interruptions logicielles, synchrones, déclenchées par le processeur lui-même (ex. : division par zéro). 6. Les bus Les bus sont des circuits électriques qui relient les composants internes de l'ordinateur pour permettre le transfert de données. Types de bus : Bus de données : Transporte les données entre le CPU et les autres composants. Bus d'adresses : Spécifie où les données doivent être lues ou écrites. Bus de commande : Gère les signaux de contrôle entre le CPU et les autres parties. 7. Le rôle des instructions Une instruction est une commande de base que le processeur peut comprendre et exécuter. Les instructions sont écrites en langage machine et font partie de l'ensemble des instructions d'un processeur (ISA). Note de Révision : Gestion de la Mémoire Centrale 1. Structure de la Mémoire Centrale La mémoire centrale est composée de mots mémoire. Chaque mot est repéré par une adresse unique. Le processeur accède à ces mots via deux registres : Registre Adresse (RAD) : Contient l'adresse du mot à lire ou écrire. Registre Donnée (RDO) : Contient la donnée à écrire ou lue. 2. Adressage et Allocation de Mémoire Espace d’adressage : Chaque processus dispose d'un espace d'adresses qui inclut le code du processus, les données, et la pile d'exécution. Partition fixe : La mémoire est divisée en régions fixes pour chaque processus. Partition variable : La taille de la région est flexible et ajustée aux besoins du processus. 3. Modes d’Allocation First Fit : Alloue la première partition suffisamment grande. Best Fit : Trouve la plus petite partition possible pour minimiser la fragmentation. Worst Fit : Sélectionne la plus grande partition disponible. 4. La Mémoire Virtuelle La mémoire virtuelle permet de gérer une capacité limitée de mémoire physique et favorise le partage d'informations entre processus. Elle se base sur un système de traduction des adresses via la MMU. 5. Pagination et Segmentation Pagination : La mémoire est divisée en blocs de taille fixe appelés pages. Avantage : Réduction de la fragmentation. Chaque adresse logique est divisée en deux : un numéro de page et un déplacement dans la page. Segmentation : La mémoire est divisée en segments de taille variable (code, données, pile). Avantage : Meilleure gestion des structures de données variables. 6. Algorithmes de Remplacement de Pages Lorsqu'un défaut de page se produit (page manquante en mémoire), l'OS utilise un algorithme pour libérer une page : FIFO : Remplace la page la plus ancienne. LRU : Remplace la page la moins récemment utilisée. OPT : Remplace la page qui ne sera pas utilisée pendant le plus longtemps. Clock : Variante de FIFO qui donne une seconde chance aux pages. 7. La Mémoire Cache La mémoire cache repose sur deux principes : Localité temporelle : Un mot d'adresse récemment accédé est susceptible d'être demandé à nouveau. Localité spatiale : Si une adresse est accédée, une adresse voisine a également des chances d'être demandée. Note de Révision : Ordonnancement et Politiques sous Linux 1. Politique First-Come, First-Served (FCFS) L'algorithme FCFS fonctionne de manière non préemptive. Cela signifie qu'un processus conserve le CPU jusqu'à ce qu'il : Termine son exécution. Effectue une requête d'entrée/sortie (E/S). L'inconvénient majeur de cet algorithme est le temps d'attente qui peut être long, surtout si les processus n'arrivent pas dans un ordre optimal. 2. Politique à Priorité L'algorithme d'ordonnancement à priorité attribue à chaque processus une priorité, souvent sous forme d'un entier : Le processus avec la plus haute priorité est exécuté. Les processus de même priorité sont gérés via une file FIFO. Cette politique peut être préemptive ou non préemptive. Problème : La famine, où les processus à faible priorité ne s'exécutent jamais. Solution : Vieillissement, une technique qui modifie dynamiquement les priorités en fonction de l'âge du processus. 3. Politique Round Robin (Tourniquet) La politique Round Robin (tourniquet) est un algorithme préemptif qui donne à chaque processus un quantum de temps fixe. Après ce quantum, le processus est préempté et placé en fin de file. Avantage : Permet un partage équitable du CPU entre les processus. 4. Ordonnancement sous Linux Sous Linux, il existe trois politiques principales : SCHED_FIFO (temps réel, non préemptif) : Processus de même priorité exécutés en mode FIFO. SCHED_RR (temps réel, préemptif) : Utilise un quantum de temps pour les processus de même priorité. SCHED_OTHER (temps partagé) : Processus non-temps-réel avec une priorité dynamique. 5. Hiérarchie des Processus (PID) Sous Linux, chaque processus a un PID unique. Ce PID est utilisé pour : Suivre et gérer les processus via des commandes comme ps , kill , ou htop. Suivre la relation parent-enfant entre les processus. 6. Commandes Linux Quelques commandes essentielles : ps : Lister les processus. nice et renice : Modifier la priorité d'exécution d'un processus. kill : Envoyer des signaux pour contrôler ou terminer un processus. Note de Révision : Processus et Ordonnancement 1. Définition d’un Processus Un processus est un programme en cours d'exécution. Contrairement à un programme qui est un fichier statique, un processus est une instance dynamique du programme, avec un environnement processeur (comptage ordinal, registre d'état, etc.) et un environnement mémoire. Il évolue dans un espace d'adressage protégé et représente le fil d'exécution du programme. 2. Cycle de Vie d’un Processus Le cycle de vie d’un processus suit plusieurs étapes : Nouveau (New) : Le processus est en cours de création. Prêt (Ready) : Le processus est prêt à être exécuté mais attend d'avoir accès au CPU. En cours d'exécution (Running) : Le processus est actuellement exécuté par le CPU. En attente (Waiting) : Le processus attend un événement ou une ressource (par ex. fin d'une opération d'E/S). Terminé (Terminated) : Le processus a fini son exécution et ses ressources sont libérées. Suspendu (Suspended) : Le processus est temporairement arrêté pour permettre à d'autres de s'exécuter. Bloqué (Blocked) : Le processus ne peut pas continuer son exécution jusqu'à ce qu'une condition soit remplie. 3. Contexte d'un Processus Le contexte d’un processus inclut toutes les informations nécessaires à son exécution : Le Program Status Word (PSW) : Contient des informations sur l'état du processeur et du programme en cours (comme le drapeau de signe, de zéro, de retenue, etc.). Le Bloc de Contrôle de Processus (PCB) : Structure qui contient des informations cruciales sur chaque processus (état du processus, compteur ordinal, gestion de la mémoire, informations d'E/S, etc.). 4. Ordonnanceur et Répartiteur L'Ordonnanceur (Scheduler) sélectionne les processus à exécuter en fonction de critères comme la priorité, la charge du système, etc. Le Répartiteur (Dispatcher) assure la commutation de contexte entre les processus pour une utilisation efficace du CPU. 5. Threads et Multiprocesseur Un thread est la plus petite unité d'exécution d'un programme. Il partage les ressources du processus parent, ce qui facilite la communication et réduit le coût de création. Threads du noyau : Accès complet aux ressources du système. Threads utilisateurs : Limités et doivent passer par des appels système pour accéder aux ressources. 6. Les Politiques d’Ordonnancement Les politiques d'ordonnancement sont des règles pour déterminer l'ordre d'exécution des processus : FIFO (First-Come, First-Served) : Les processus sont exécutés dans l'ordre d'arrivée. Tourniquet (Round Robin) : Chaque processus a un temps d’exécution fixe avant de céder sa place au suivant. Priorité : Les processus sont exécutés en fonction de leur priorité. Préemptif : Un processus peut être interrompu pour céder le CPU à un autre. Non Préemptif : Un processus conserve le CPU jusqu'à ce qu'il ait terminé. 7. Files à Plusieurs Niveaux L'ordonnancement à files multi-niveaux sépare les processus en plusieurs files, chaque file ayant son propre algorithme d'ordonnancement (ex. : FCFS pour arrière-plan, tourniquet pour premier plan). Note de Révision : La Synchronisation 1. Introduction à la Synchronisation La synchronisation permet de gérer l'accès concurrent à des ressources partagées. Elle est essentielle pour éviter les conditions de course entre processus ou threads. Les principaux schémas de synchronisation incluent : Exclusion mutuelle Producteur-consommateur Lecteurs-rédacteurs Interblocage 2. Ressources et Exclusion Mutuelle Une ressource peut être matérielle (processeur, périphérique) ou logicielle (variable). Lorsqu'une ressource est utilisée par plusieurs processus, il est crucial de garantir une exclusion mutuelle dans la section critique. Ressource critique : Accessible par un seul processus à la fois. Section critique : Bloc de code où l'accès à la ressource doit être exclusif. 3. Les Sémaphores Un sémaphore est un mécanisme de synchronisation permettant de contrôler l'accès à une ressource. P(Sem) : "Proberen" (tester) diminue le compteur de sémaphore. Si le sémaphore est à 0, le processus attend. V(Sem) : "Verhogen" (augmenter) libère un jeton, signalant que la ressource est disponible. Les sémaphores sont utilisés pour résoudre le problème de la section critique et allouer des ressources partagées. 4. Producteur-Consommateur Ce problème de synchronisation classique implique deux types de processus : Le producteur : Génère des données et les place dans un tampon. Le consommateur : Retire les données du tampon. Les sémaphores sont utilisés pour synchroniser ces deux actions. 5. Lecteurs-Rédacteurs Dans ce problème, plusieurs lecteurs peuvent accéder à une ressource en même temps, mais un seul rédacteur peut y accéder à la fois. Sémaphores sont utilisés pour gérer l'exclusion mutuelle entre lecteurs et rédacteurs. 6. Interblocage (Deadlock) Un interblocage survient lorsqu’un ensemble de processus est bloqué en attendant des ressources détenues par les autres processus du groupe. Conditions d'interblocage : Exclusion mutuelle : Ressources non partageables. Attente circulaire : Processus en chaîne se bloquant mutuellement. Politique de prévention : Evite les conditions d'interblocage, souvent en introduisant des contraintes sur l'ordre d'allocation des ressources. Note de Révision : Le Système d'Exploitation 1. Définition d'un Système d'Exploitation Le système d'exploitation est un ensemble de programmes qui agissent comme une interface entre le matériel d'un ordinateur et les utilisateurs. Il a deux objectifs principaux : Créer une machine virtuelle conviviale : Il masque la complexité du matériel pour rendre l'ordinateur plus facile à utiliser. Gérer les ressources du système : Il prend en charge la gestion complexe des ressources. 2. Le Kernel (Noyau) Le kernel est le cœur du système d'exploitation, il gère les communications entre le matériel et les logiciels. Ses fonctions incluent : Gestion du processeur : Attribution du temps processeur et ordonnancement des processus. Gestion de la mémoire : Contrôle de la RAM et de la mémoire virtuelle. Gestion des périphériques E/S : Communication avec les périphériques comme les disques durs et les claviers. Gestion des fichiers : Contrôle de la création, lecture et écriture des fichiers. Gestion de la sécurité : Protection des ressources et des données. 3. Types de Kernel Monolithique : Tous les services sont exécutés dans le même espace mémoire (ex. : Linux, Unix). Microkernel : Seuls les services de base sont dans le kernel, les autres sont exécutés séparément (ex. : Minix). Hybride : Mélange des deux types (ex. : Windows NT, macOS). 4. Gestion du Processeur Le système d'exploitation optimise l'utilisation du CPU par : Ordonnancement des processus : Utilisation d'algorithmes (FIFO, Round Robin, etc.) pour gérer l'exécution des processus. Priorités des tâches : Certaines tâches ont une priorité supérieure pour accéder au CPU. Multi-threading et parallélisme : Exécution simultanée de plusieurs threads. Modes d'exécution : Séparation entre les tâches système (mode noyau) et utilisateur (mode utilisateur). Gestion des interruptions : Contrôle des interruptions pour éviter les interférences indésirables. 5. Gestion de la Mémoire Le système d'exploitation contrôle l'utilisation de la mémoire physique et virtuelle. Les fonctions clés incluent : Allocation et désallocation : Distribution et libération de la mémoire pour les processus. Segmentation et pagination : Division de la mémoire en unités gérables pour une meilleure protection. Mémoire virtuelle : Utilisation d'un espace disque comme extension de la RAM. Gestion du cache : Stockage des données fréquemment utilisées pour un accès rapide. Protection de la mémoire : Prévention des accès non autorisés. 6. Gestion des Entrées/Sorties (E/S) Le système d'exploitation gère les interactions entre le CPU, la mémoire, et les périphériques E/S : Pilotes de périphériques : Programmes permettant au système de communiquer avec les périphériques. Gestion des interruptions : Traitement des signaux d'état des périphériques. Systèmes de fichiers : Gestion des données sur les dispositifs de stockage. Planification des E/S : Ordonnancement des opérations pour une meilleure efficacité. 7. Gestion de la Concurrence Le système d'exploitation permet à plusieurs processus de s'exécuter simultanément grâce à : Ordonnancement des processus et threads : Détermination de l'ordre d'exécution. Synchronisation des processus : Coordination via des sémaphores, verrous, etc. Exclusion mutuelle : Un seul processus à la fois accède aux ressources partagées. Contrôle des deadlocks : Détection et gestion des blocages entre processus. 8. Les Modes d'Exécution Les modes d'exécution permettent de limiter les privilèges des programmes utilisateurs. Le passage au mode noyau se produit lorsqu'une application exécute des instructions système ou lorsqu'une interruption/exception est déclenchée. 9. Commutation de Contexte La commutation de contexte est le processus par lequel le système sauvegarde l'état d'un processus pour en exécuter un autre : Sauvegarde de l'état actuel. Changement de mode. Exécution de l'instruction. Restauration de l'état précédent pour continuer le processus interrompu. Note de Révision : Système de Gestion de Fichiers 1. Définition du Système de Gestion de Fichiers (SGF) Le système d'exploitation agit comme une interface entre la vue logique des fichiers (celle vue par l'utilisateur) et la vue physique (l'organisation réelle des données sur le disque). Le SGF présente les fichiers et répertoires de manière compréhensible tout en gérant les données en blocs sur le disque. 2. Principaux Systèmes de Gestion de Fichiers (SGF) NTFS : Utilise la Master File Table (MFT) pour structurer les données, et un bitmap pour gérer l'espace libre. Il est également journalisé pour assurer la fiabilité. Ext (2, 3, 4) : Utilisé sous Linux, il se base sur des i-nodes pour structurer les fichiers. FAT32 : Système plus ancien, compatible avec les petits supports. Gère les données via une File Allocation Table (FAT). 3. Allocation de Mémoire Allocation contiguë : Les blocs sont alloués de manière séquentielle. Avantage : accès rapide, mais problème de fragmentation. Allocation par blocs chaînés : Chaque bloc pointe vers le suivant. Simple mais moins efficace pour l'accès direct. Allocation indexée : Les adresses des blocs sont stockées dans un bloc d'index, permettant un accès direct rapide. 4. Gestion de l'Espace Libre Le système maintient une liste des blocs libres sous forme de : Bitmap : Représente chaque bloc avec un bit (1 = libre, 0 = occupé). Liste chaînée : Les blocs libres sont enchaînés, mais difficile pour trouver de grands espaces libres. 5. Structures d’un Fichier et Répertoire Un fichier est identifié par un i-node qui stocke ses attributs (nom, taille, propriétaire, permissions). Un répertoire contient les noms des fichiers et les adresses de leurs i-nodes. 6. Les Verrous d’Accès Pour gérer l'accès concurrent aux fichiers, le système implémente des verrous : Un fichier peut être verrouillé en lecture ou en écriture. Les verrous empêchent plusieurs écritures simultanées pour éviter les conflits. 7. Droits et Permissions sous Linux Chaque fichier a un propriétaire, un groupe, et des permissions (lecture, écriture, exécution). Les permissions peuvent être modifiées via des commandes comme chmod et chown. rwx : Lecture (r), écriture (w), exécution (x). chmod 755 fichier : Donne tous les droits au propriétaire, lecture et exécution au groupe, et seulement lecture aux autres.