Système d’exploitation 1) 2) 3) 4) 5) 6) 7) Généralités sur les OS Rappels sur les interruptions Processus et threads Gestion de la mémoire Les entrées / sorties E/S Aperçu de la gestion de fichiers SGF Problématique du parallélisme 1. Généralités sur les OS 1.1. Introduction 1.1.1. Présentation - - Un système d’exploitation (SE) ou Operating System (OS) c’est : o un ensemble de programme o qui se charge de tous les problèmes liés à l’exploitation de la machine Ayant pour objectifs o de faciliter la tâche des utilisateurs de la machine o d’optimiser l’utilisation des composants de la machine 1.1.2. Point de vue externe Applications Bibliothèque Utilitaires SE Noyau (protection de la couche matériel) Matériel Noyau = couche qui rend transparent au applicatif ce qu’il y a en dessous Il s’agit : - de masquer à l’utilisateur les problèmes de gestion interne des ressources - de lui présenter une machine virtuelle plus simple à exploiter que la machine réelle - et qui lui offre des services 1.1.3. Point de vue interne Il s’agit - de gérer au mieux les unités fonctionnelles qui composent la machine - d’offrir un ensemble d’opération de bas niveau que les programmes applicatifs peuvent invoquer Cours de jc.bouriez DUT info 2eme année page 1 Système d’exploitation Trois unités fonctionnelles - Processeur - Mémoire centrale - Entrée/Sortie Traiter Mémoriser Communiquer Réaliser à l’aide de composants électroniques Constitués eux-mêmes à partir de circuits logiques - circuits séquentiels - et circuits combinatoires - construits d’après une technologie (ex HCMOS) CPU Mémoire centrale Interface d’E/S Architecture Von Neumann schéma détaillé PC ; CPU ; mémoire Phase de déroulement d’une instruction - Fetch - Decode - Execute - Store Travail par un paradigme séquentiel 1.1.4. Architecture machine L’architecture d’une machine représente l’organisation de ses unités fonctionnelles On ne retient dans un premier temps qu’une architecture d’interconnexion classique dans laquelle un processeur, une mémoire centrale et des dispositifs d’E/s sont reliés par un bus L’OS doit donc optimiser l’utilisation des ressources et gérer les problèmes liés au partage de ces ressources. Cours de jc.bouriez DUT info 2eme année page 2 Système d’exploitation 1.1.5. Architecture technique 1.1.6. Vision d’un OS Finalement la vision d’un OS dépend du niveau d’observation : - pour l’utilisateur il s’agit d’un ensemble de fonctionnalités offertes soit grâce à un langage de commandes, soit à travers une interface graphique. - pour le développeur l’OS n’est qu’un ensemble d’appels système qui fournit des services de bas niveau (ex API Win 32) - et pour l’administrateur l’OS est un ensemble complexe de ressources à gérer et à configurer (espace disque, comptes utilisateurs, droits et protections, etc…) Quid du cours système ? Le cours système en 2e année du département a pour objectif de présenter les grands principes qui président au fonctionnement des OS modernes : pas d’étude approfondie des mécanismes internes d’un système particulier … 1.2. Définitions 1.2.1. Processus Un processus est une suite d’instructions chargée totalement ou partiellement en mémoire centrale, et constituant un ensemble logique en cours d’exécution ou susceptible de s’exécuter. La notion de processus est dynamique : un processus naît lors du chargement d’un programme et meurt à la fin de l’exécution du programme. Un processus est donc caractérisé par un état à un instant donné. 1.2.2. Programme Un programme est une entité composée de séquences d’instructions agissant sur un ensemble de données. C’est du code obtenu par compilation d’un fichier source suivie d’une phase d’édition des liens. La notion de programme est essentiellement statique car c’est un fichier stocké sur disque. Des processus distincts peuvent exécuter un même programme (programme réentrant). 1.2.3. Thread Un processus peut être parfois décomposé en unités d’activité distinctes appelées thread et qui : - s’exécutent de façon parallèle ou concurrente Cours de jc.bouriez DUT info 2eme année page 3 Système d’exploitation - partagent l’espace d’adresse du processus Le processus représente donc pour ses threads une unité d’encapsulation des ressources utilisées T1 T2 T3 Processus Et le thread est un sous ensemble d’exécution du processus sur cet ensemble de ressources. 1.2.4. Tâche Nous conviendrons que la tâche représente la plus petite unité sémantique d’exécution au niveau macroscopique. Donc suivant les systèmes : - une tâche = un processus sur les systèmes multi-processus - une tâche = un thread sur les système multi-thread 1.2.5. Topologie des systèmes 1.2.5.1.Système en monoprogrammation Système dans lequel, une seul tâche est exécuté à la fois Une tâche ne peut être exécutée que lorsque la précédante a été terminé 1.2.5.2.Système multi-tâches Plusieurs tâches résident en mémoire centrale Le système d’exploitation doit alors gérer l’attribution et le partage des ressources les différentes tâches pose les problèmes liés à la programmation concurrente pose le problème de protection du code et des données 1.2.5.3.Système multi-threads Supporte l’exécution d’un processus en unités indépendantes Implémente au niveau du noyau la gestion des threads L’ordonnancement se fait alors sur des threads et non plus des processus Possibilité d’ordonnancer les threads sur plusieurs processeurs dans une architecture parallèle 1.2.5.4.Système mono-utilisateur Système où un seul utilisateur dispose de toutes les ressources de la machine Cours de jc.bouriez DUT info 2eme année page 4 Système d’exploitation 1.2.5.5.Systèmes multi-utilisateurs Système où plusieurs utilisateurs se partagent les ressources de la machine le système est alors multi-tâches 1.2.5.6.Système temps réel Système dans lequel il existe des interactions entre le système et des équipements (capteurs, actionneurs, etc…) Avec des contraintes de temps fortes d’origine matérielle entre l’occurrence d’un évènement et la réponse appropriée du système à cet évènement. 1.2.6. Transactionnel et temps réel Un système temps réel est un système déterministe par opposition au système transactionnel de l’informatique de gestion. Dans un système temps réel le temps de fin d’exécution d’une tâche est contraint Dans un système transactionnel le temps d’exécution d’une tâche dépend de l’activité du système et du temps de réponse de l’utilisateur. Ceci impacte les stratégies d’ordonnancement des tâches suivant la nature du système 1.2.7. Modes d’utilisation 1.2.7.1.Mode différé Il s’agit d’un traitement par lots (Batch Processing) Un lot = ensemble de programmes préparés avec leurs données Les lots sont placés en file d’attente et exécutés séquentiellement Il n’y a pas d’intervention de l’utilisateur On peut aussi exécuter dans ce mode des fichiers de commandes 1.2.7.2.Mode interactif Dans ce mode toute action de l’utilisateur est traitée immédiatement par le système On distingue de 2 types Le time sharing : les utilisateurs ont accès simultanément à l’ensemble des ressources et le système gère l’allocation cyclique des ressources Le transactionnel : c’est le principal mode d’utilisation en info de gestion : il s’agit d’application qui gèrent le dialogue homme machine suivant une logique liée aux fonctionnalités attendues. 1.3. Les fonctions d’un OS 1.3.1. Le chargement - - - Le système comprend généralement o une partie toujours résidente en mémoire centrale et qui se nomme le noyau (kernel) aux pages de la mémoire non swapper (protégé) o une partie chargée dynamiquement à l’exécution de la fonction demandée Le chargement à la mise sous tension s’effectue grâce à un programme chargeur simplifié appelé BOOTSTRAP Principe du chargement o le chargeur est automatiquement appelé au démarrage de la machine Cours de jc.bouriez DUT info 2eme année page 5 Système d’exploitation o pour cela il doit être stocké à une adresse disque convenu (exemple le MBR = Master Boot Record) o ce petit programme une fois chargé et lancé a pour rôle de charger le noyau du système en mémoire centrale o il est possible de changer de chargeur sur un système 1.3.2. La génération de système - - Il s’agit du paramétrage d’un certain nombre d’éléments gérés par le système comme o la taille de la zone de swap (gestion de la mémoire virtuelle) o la taille de la pagination (taille des bloques pour un processus donné) o la taille des tampons utilisés pour les E/S o les noms symboliques de périphériques o les protocoles d’échange o … Permet de configurer le système (sous unix nécessite de régénérer le noyau !) 1.3.3. Gestion de l’UC (unité centrale : processeur) - La gestion de l’unité centrale par le système d’exploitation consiste à : o planifier l’exécution des différentes tâches suivant une stratégie d’ordonnancement o assurer un mécanisme de commutation entre les tâches 1.3.4. Gestion de la mémoire centrale - Il s’agit essentiellement : o d’allouer de l’espace mémoire aux tâches naissantes o de charger les tâches à des adresses valides o d’assurer une non violation de l’espace mémoire alloué de chaque tâche o et de libérer l’espace mémoire des tâches terminées 1.3.5. Gestion des E/S - Pour le système d’exploitation, traiter les E/S c’est desservir les demandes de transfert d’information en o gérant des matériels divers (CPU, interface d’E/S, contrôleur de périphérique, DMA, périphérique) o en s’appuyant sur la mise en mode noyau pour les opérations de bas niveau. 1.3.6. Autres fonctions - - La gestion des fichiers o l’organisation des supports (logique et physique) o les accès aux fichiers o la protection et les droits d’accès aux fichiers La gestion des utilisateurs o les comptes utilisateurs et leurs droits o les sessions de travail o le dialogue homme-machine Les utilitaires de service - Les outils d’administration o configuration Cours de jc.bouriez DUT info 2eme année page 6 Système d’exploitation - - o exploitation Les outils d’aide à la production de programme o développement et mise au point o gestion de bibliothèques Les outils de sécurité o mesure et surveillance o droits et quotas o gestion des sauvegardes 1.4. Comparatif des OS 1.4.1. Quelques OS - - Les windows 9X, NT, 2000, XP, CE de microsoft MacOS d’Apple La famille UNIX o HP/UX (HP) o AIX (IBM) o SunOS/Solaris (SUN) o SCO (santa croze opérétion) Les UNIX-Like : LINUX et FreeBSD OS/390 et Z/OS pour les MainFrame d’IBM 1.4.2. Panorama des OS du marché diapo publique 2. Rappels sur les interruptions 2.1. - - Qu’est ce qu’une interruption ? Une interruption (ou IT) consiste à : o suspendre la tâche en cours d’exécution o pour exécuter autre chose On appelle système d’interruption la composante système qui prend en charge les réponses appropriées aux demandes d’interruptions On distingue 2 familles d’interruptions 2.1.1. Les IT externes - Une IT externe est une IT asynchrone provoquée par un évènement sans relation avec les instructions de la tâche en cours d’exécution Il s’agit d’une interruption matérielle générée par un dispositif externe On distingue o les défauts externes pour le traitement des erreurs matérielles o l’horloge utilisée pour le temps partagé o les E/S avec les périphériques 2.1.2. Les IT internes - Une interruption interne est une IT synchrone provoquée par l’exécution même de l’instruction en cours de la tâche active On distingue o les exceptions (ou déroutements) : une exception est déclenchée par une anomalie lors de l’exécution d’une instruction (exemple division par 0) Cours de jc.bouriez DUT info 2eme année page 7 Système d’exploitation o les interruptions logicielles (ou appels système) : une interruption logicielle est déclenchée lorsque la tâche en cours fait appel aux services du noyau 2.2. Interruption Externe 2.2.1. Principe général - - Arrivée d’un évènement asynchrone o identification de la source = qui est l’émetteur de la demande ? o autorisation = prise en compte ou non de la demande Attendre un point interruptible, c'est-à-dire la fin de l’exécution de l’instruction en cours. Sauvegarde du contexte d’exécution de la tâche interrompue Chargement du contexte de la tâche à exécuter suivant la source de la demande Schéma PUBLIC - On voit apparaître plusieurs notions o identification de la source (par la vectorisation) o autorisation (masquable ou non) o contexte d’une tâche (sauvegarde processeur minimum, le noyau s’occupe du reste) o Commutation de contextes Notion de rupture de séquence 2.2.2. Identification de la source - - - - Sur un système multi-tâches o plusieurs demandes d’interruption peuvent être émises en même temps o et d’autres demandes peuvent survenir alors qu’une interruption est déjà en cours de traitement Il faut donc pouvoir o identifier l’émetteur d’une demande d’interruption pour exécuter la routine d’IT voulues o Mais aussi établir un ordre de priorité s’il y a plusieurs demandes d’interruption en même temps Une interruption externe est émise sur un niveau Généralement sur les systèmes le nombre de niveaux disponibles sur le CPU pour les IT externes est très inférieur au nombre de sources possibles d’IT (un seul sur les micro processeur) Il faut alors un mécanisme supplémentaire pour permettre à la CPU d’identifier la source Broche du CPU x 2 : Sur NMI exception des défaut matériel (IT externe) non masquable Sur INT interruption masquable !! - Identifier par scrutation : l’unité centrale va interroger les différentes sources possibles sur un niveau pour savoir de laquelle il s’agit Cours de jc.bouriez DUT info 2eme année page 8 Système d’exploitation - Technique par vectorisation : toute demande d’interruption est accompagnée par une information (le vecteur d’interruption) permettant de mettre en œuvre le programme de gestion d’interruption approprié SCH PUBLIC - La demande d’IT est émise sur la patte INT Tous les équipements sont reliés à une ligne unique par un OU logique Pour connaître la routine adéquate, le processeur interroge les différents éléments connectés à la ligne unique - La vectorisation o La demande d’interruption est émise sur la pate INT o Elle est accompagnée d’un vecteur d’IT présenté dur le bus de donnés 2.2.3. Hiérarchie des IT externes - - Hiérarchiser les IT c’est établir un ordre de traitement entre les différentes demandes d’interruption o pour éviter les interruptions cycliques o parce qu’il existe des demandes plus prioritaires que d’autres (exemple : l’horloge) On associe une priorité par niveau d’interruption 2.2.4. Le contrôleur d’interruption - Il s’agit d’un circuit dédié à la gestion matérielle des interruptions externes Fonctions d’un contrôleur d’interruption o identifier les sources d’IT en fournissant autant de niveaux nécessaires que de sources possibles o attribuer une priorité à chaque niveau, donc à chaque source o permettre la modification par programmation de la hiérarchie des IT o affecter un vecteur d’interruption à chaque niveau o d’autoriser ou non les IT sur un niveau (masquage) SCH Public 2.2.5. Autorisation des interruptions - - Interruption masquable o Interruption dont la prise en compte peut-être différée mais pas ignorée o lorsqu’un niveau est masqué, toute demande émise sur ce niveau est mise en attente et sera traitée ultérieurement (lorsque le niveau sera démasqué) o lorsqu’un niveau est démasqué, toute demande émise sur ce niveau est prise en compte o le fait de pouvoir masquer à un moment donné les interruptions au niveau de la CPU permet de définir des séquences de code critique c'est-à-dire non interruptibles (cf cours de programmation système) o le masquage – démasquage se fait par des instructions particulières (STI et CLI sur un PC) o Correspond généralement à la patte INT sur un microprosseur Interruption non masquable o interruption dont la demande ne peut être inhibée Cours de jc.bouriez DUT info 2eme année page 9 Système d’exploitation o correspond à la plus haute priorité o toujours prise en compte et sert au traitement des pannes matérielles (failure) o correspond toujours généralement à la patte NMI sur un microprocesseur - Sur certaines machines, il est possible également : o de désarmer un niveau : dans ce cas toutes les demandes d’interruption émises sur ce niveau sont perdues o de réarmer un niveau : dans ce cas les demandes d’interruption sont à nouveau autorisées sur ce niveau o grâce à des instructions particulières SCH public 2.3. - - 2.4. - - - Interruption interne Les interruptions internes (les déroutements et les interruptions logicielles) sont déclenchées par une instruction de la tâche en cours d’exécution. Elles fonctionnent selon un principe identique aux interruptions matérielles Dans le cas d’un déroutement le processeur se branche lui-même au traitement approprié suivant l’exception qu’il a détectée Une interruption logicielle est générée par une instruction particulière de type INT Y où Y est une information permettant de connaître la routine à exécuter (par exemple une entrée dans la table des vecteurs d’IT) Les appels système de l’OS qui permettent à une tâche d’invoquer les services du noyau s’appuient sur le mécanisme des interruptions logicielles Conclusion Une interruption peut-être soit o une interruption externe (exemple l’horloge) o un appel système (exemple une demande d’E/S) o ou encore un déroutement en cas de plantage du programme Toute interruption génère une commutation lors de laquelle le noyau reprend la main pour assurer o la sauvegarde du contexte de la tâche suspendue o la restauration du contexte à exécuter La gestion des interruptions par le noyau de l’OS s’appuis donc le niveau matériel (le système d’interruption du processeur) Le noyau représente un ensemble de services uniquement accessibles par le biais des interruptions et des appels système Il est toujours résident en mémoire et sa taille, doit être aussi petite que possible pour laisser suffisamment de mémoire aux applications Les appels système : o s’exécutent en mode noyau (mode protégé) o sont non interruptibles (intégrité du noyau) o permettent d’accéder sous le contrôle du noyau hors de l’espace d’adressage de la tâche o assurent les grandes fonctionnalités du système gestion des E/S gestion de la mémoire gestion de la communication inter-processus gestion des fichiers et des répertoires Cours de jc.bouriez DUT info 2eme année page 10 Système d’exploitation gestion du temps 3. Processus et Threads 3.1. Gestion des processus 3.1.1. Description d’un processus - - - - Problématique d’un système multitâche o plusieurs processus sont présents simultanément en mémoire centrale o il faut donc partager la ressource CPU entre ces différents processus Ceci implique que chaque processus o possède un certain nombre de caractéristiques propres o passe au cours de son « existence » par plusieurs états Caractéristique d’un processus o l’identification ou PID : entier attribué par le noyau du système au moment de la création unique o la priorité indique le caractère d’urgence du processus sert à déterminer l’ordre d’allocation de la CPU Espace d’adressage d’un processus o ensemble des objets (instructions et données) qui est propre au processus o comprend 3 zones zone programme : code et constante (en lecture) zone données : variables globales et variables locales déclarées static (en lecture et écriture) zone pile : informations temporaire (paramètres d’appel, adresse de retour, variables locales) zone tas : allocation dynamique de mémoire SCH public - - Mode d’exécution d’un processus o mode utilisateur le processeur n’accède qu’à son espace d’adressage exécution d’instructions ordinaires o mode noyau accès à des données externe à l’espace adressable du processus permet d’isoler l’applicatif du système s’appuie sur les mécanismes de protection du processeur (instructions privilégiées) concerne les appels systèmes, les routines d’interruptions, la commutation de tâches Contexte d’un processus o représente l’ensemble des informations qui doivent être sauvegardées lors d’une commutation afin de garantir une reprise ultérieure correcte de l’exécution du processus o s’appuie sur le mécanisme des interruptions o informations sauvegardées les registres processeurs Cours de jc.bouriez DUT info 2eme année page 11 Système d’exploitation - - informations sur les zones mémoires associées au processus (voir chapitre sur la MC) Descripteur d’un processus (PCB) o structure système en mémoire centrale qui contient les informations nécessaires à la connaissance exacte du processus à un instant t identificateur (PID) état et priorité du processus contexte utilisateur (zone code, zone données, zone pile) compteurs de temps d’exécution Table des descripteurs = table système o localisé à une adresse fixe en zone mémoire non swappée o constitue le point d’entrée à l’ensemble des descripteurs des processus présents sur le système o les descripteurs sont chaînés entre eux par des pointeurs o chaque descripteur est représenté par une structure o il y a un descripteur par processus SCH public exemple table des descripteurs Cours de jc.bouriez DUT info 2eme année page 12 Système d’exploitation