PLAN DU COURS ! Système d’exploitation Généralités ! ! ! Qu ’est ce qu ’un système d ’exploitation Historique : les premiers S.E. Les différents systèmes existants Les différentes tâches d ’un S.E. IUT G.T.R 1ère Année Sylvain MERCHEZ ! 1 2 Qu ’est ce qu ’un système d ’exploitation ? Qu ’est ce qu ’un système d ’exploitation ? Définition : ! ! ! ! Un système d ’exploitation (Operating System) est un ensemble d ’instructions qui alloue des ressources aux programmes Exemples de ressources ! ! ! le CPU ! la mémoire ! les périphériques d ’entrées et de sorties ! les données (fichier, disque) S.E = un gestionnaire de ressources et ordonnanceur Ce gestionnaire doit être efficace, équitable et simple. S.E = contrôleur des ressources ! Vérifie le bon fonctionnement, évite les erreurs, exploite et contrôle les E/S. S.E = noyau qui tourne en permanence pour coordonner et contrôler l ’utilisation du matériel et faciliter le travail de l ’utilisateur. 3 4 Qu ’est ce qu ’un système d ’exploitation ? Qu ’est ce qu ’un système d ’exploitation ? Un S.E permet de cacher les détails matériels et de proposer un environnement agréable Système Bancaire Réservation Spectacles Jeux Compilateurs Editeurs Interpréteur de commandes ! Programmes d’application Impossible de couvrir tous les besoins => diversité des S.E. Programmes Systèmes Gouvernement: Système d’exploitation Langage Machine Microprogramme Un S.E. dépend ! du matériel ! des applications Matériels, logiciels, données = composants du système S.E. est un moyen d ’utiliser correctement le système S.E. n ’est pas utile en lui-même mais propose un environnement de travail efficace. Matériel Couche Matérielle 5 6 1 A quoi sert un système d ’exploitation ? ! A quoi sert un système d ’exploitation ? Un système d ’exploitation doit : ! ! Définition : ! ! ! allouer des ressources assurer le partage et la communication des ressources entre les processus Un système d ’exploitation cache les détails matériels pour : ! ! Un processus est un programme en cours d ’exécution permettre l ’exécution d ’un maximum de tâches ! simplifier (conventionner) l ’utilisation de certaines ressources rendre disponible des ressources qui n ’existent pas nécessairement sur la machine (e.g. via réseaux) assurer un niveau de sécurité entre les processus et entre le système lui-même Système multi-tâches, multi-utilisateurs, multi-ressources => Problèmes de sécurité 7 8 PLAN DU COURS ! Qu ’est ce qu ’un système d ’exploitation ! Historique : les premiers S.E. ! ! Les premiers ordinateurs ! Les différents systèmes existants Les différentes tâches d ’un S.E. ! Un ordinateur = une grosse machine commandée par une console Le programmeur est aussi l ’opérateur ! ! ! ! ! il charge le programme en mémoire il indique l ’adresse de début il vérifie le fonctionnement grâce à des diodes il examine le contenu de la mémoire (registres) en cas de problèmes le résultat est imprimé ou stocké sur bandes 9 10 Les premiers besoins ! Les premiers systèmes Multiplicité des périphériques ! Chaque E/S a ses propres caractéristiques : buffers, registres, drapeaux, bits de contrôle, etc … => écriture de drivers ! ! ! ! Introduction de compilateurs ! ! Comment augmenter les temps d ’utilisation ? faciliter et aider le travail du programmeur pour gérer tous les types de matériels et logiciels ! Nécessité de charger les compilateurs, les drivers avant d ’exécuter son propre programme 11 Seuls les opérateurs ont accès à l ’ordinateur (moniteur) Le traitement est regroupé par nature afin de faciliter le travail des opérateurs (traitement par lots) Le temps de réponse du point de vue utilisateur est encore long S.E encore inactif pendant les changements Peu d ’interactivité 12 2 Les premiers systèmes ! PLAN DU COURS Le CPU va beaucoup plus vite que les périphériques (vitesse du CPU en MIPS, vitesse périphérique en µs) ! Remplacer les périphériques par des plus rapides ! ! ! Qu ’est ce qu ’un système d ’exploitation Historique : les premiers S.E. ! Les différents systèmes existants ! Les différentes tâches d ’un S.E. ! Utilisation du disque magnétique (permet de lire et d ’écrire en même temps) Utilisation de cache, de tampon (buffer) Idée : Traitement hors ligne des E/S 13 14 Les systèmes multi-programmes ! ! Les systèmes temps-partagé Plusieurs programmes sont en attente d ’exécution sur le disque Le système charge en mémoire centrale un sousensemble des programmes à exécuter ! Variante du système précédent ! Le système choisit le programme à exécuter par le CPU en fonction : des demandes d ’entrées/sorties de la consommation du temps d ’utilisation du CPU par les programmes (avec une période maximale) => Tous les processus avancent à un rythme régulier Si la période est faible, tous les utilisateurs ont l ’impression qu ’ils sont seuls à utiliser la machine ! ! Choix du programme à exécuter sur le CPU Lorsqu ’un programme utilise les entrées/sorties, un autre programme peut utiliser le CPU => Augmentation du taux d ’utilisation du CPU ! ! Traitement peut dépendre d ’un résultat précédent ! 15 16 Les systèmes temps-partagé ! Ce système est plus complexe et demande ! ! ! ! ! Les autres systèmes ! une gestion plus complexe de l ’occupation de la mémoire centrale par les processus la mise en place de systèmes de protection l ’utilisation d ’un système de fichiers facilement accessible et une gestion efficace du stockage des données la gestion de la communication et la synchronisation entre les processus Systèmes pour ordinateur personnel Offrir une utilisation simplifiée des ressources + Faible besoin de calculs Systèmes mono-utilisateur, uni-tâche : Apple, Windows - manque de protection, favorise le développement de virus informatiques New : Important besoin de communiquer (Internet) Systèmes multi-utilisateur, multi-tâches : Linux, Windows NT, etc) Pb : maintenir plusieurs programmes UNIX est le fondement des nouveaux S.E. 17 18 3 Les autres systèmes ! Les autres systèmes Systèmes distribués ! Coopération entre machines qui mettent en commun leurs ressources (nécessité de matériels et de fonction de communication) Systèmes parallèles Répartition de la charge de calcul sur une architecture matériel dotée de plusieurs CPUs Multi-processeurs partageant bus, horloge, mémoire, périphériques, ... + Calcul plus important, réduction des coûts, fiabilité - Gestion des communications, adapter le traitement + Plus grande tolérance aux pannes, augmentation des possibilités de calcul, partage des ressources - Gestion de la communication entre les machines et les processus 19 20 Les autres systèmes ! PLAN DU COURS Systèmes temps-réel ! Qu ’est ce qu ’un système d ’exploitation Historique : les premiers S.E. Les différents systèmes existants ! Les différentes tâches d ’un S.E. ! Assure la date de fin d ’un processus Répond à tout instant Adapté pour le multi-média, pour la réalité virtuelle, pour les systèmes embarqués ! + Grande possibilité d ’adaptation des algorithmes - Pas le temps de calculer les optimums 21 22 Architecture d ’un Ordinateur Opérations de Base ! ! CPU Contrôleur disques Contrôleur mémoire ! Contrôleur imprimante Chargement d ’un programme initial (bootstrap) Chargement du système d ’exploitation (le noyau) Lancement de programmes en attente d ’événement extérieurs BUS 23 24 4 Opérations de Base ! Chaque événement est signalé par une interruption de type ! ! ! ! ! Gestion des processus Un processus est un programme en cours d ’exécution, il a besoin de ressources (CPU, mémoire, fichiers, E/S) => Ces ressources sont fournies au lancement ou en cours d ’exécution. matériel (signal vers CPU) logiciel (appel système) Dès réception d ’une interruption, le CPU donne la main à un programme qui traite les interruptions. Ce programme déclenche à son tour une routine spécifique à l ’interruption Tous les systèmes modernes sont pilotés par les interruptions Si pas de processus à exécuter, pas d ’entrées-sorties à effectuer, pas d ’utilisateurs connectés alors le système est en attente d ’un événement. Un programme ! peut être une entité passive ! peut être une entité active (compteur d ’instructions) ! peut être exécuté par plusieurs processus. 25 26 Gestion des processus ! Contrôle des processus Le système d ’exploitation gère l ’ensemble des processus et assure ! ! ! ! ! Le système d ’exploitation contrôle ! la création et la destruction des processus utilisateurs ou système l ’arrêt et la reprise de l ’exécution d ’un processus la synchronisation des processus (accès à des ressources partagées) la communication entre processus ! ! ! le chargement et l ’exécution des processus la fin (normal ou anormal) des processus la réservation des ressources (utilisation exclusive) connexion entre processus ! envoi de messages ! gestion de la mémoire partagée 27 28 Gestion des Entrées/Sorties ! Structures des Entrées-Sorties L ’une des tâches d ’un système d ’exploitation est de cacher les spécificités du matériel en la gestion ! ! ! ! Les interruptions d ’E/S ! ! des buffers pour les périphériques de l ’interface avec les pilotes des périphériques des pilotes particuliers ! Pendant le traitement de l ’opération, la CPU peu soit Chaque périphérique (E/S) est sous la responsabilité d ’un contrôleur. ! CPU initie l ’opération d ’E/S le contrôleur effectue l ’opération le contrôleur informe de la fin de l ’opération en déclenchant une interruption ! ! Le contrôleur a la charge du déplacement des données (en provenance ou en destination) d ’un périphérique vers un tampon mémoire. ! La structure DMA ! 29 travailler (mode synchrone) attendre (mode asynchrone) Transfert de données entre périphériques et tampon mémoire par bloc 30 5 Gestion Mémoire Gestion de l ’occupation disque La mémoire est un tableau de mots (ou d ’octets), chacun avec une adresse. La mémoire est utilisée par le CPU et les E/S ! Le système d ’exploitation a la responsabilité de: ! ! ! Les disques sont utilisés pour stocker de manière persistante les données de taille importante et les programmes ! garder une trace de qui occupe la mémoire choisir le programme qui sera chargé en mémoire quand il y aura de la place la stratégie d ’allocation et de libération de la mémoire Le système d ’exploitation a la responsabilité de: ! ! ! la gestion de l’espace libre du stockage des données des accès au disque 31 32 Structure et hiérarchie de stockage ! Structure et hiérarchie de stockage La mémoire centrale ! C ’est la seule mémoire qui peut être accédée directement par la CPU. Chaque mot a son adresse. ! Trop petit pour stocker programmes et données ! Mémoire volatile La mémoire secondaire ! Les disques magnétiques 2 types : ! ! les registres : accessible en 1 temps d ’horloge la mémoire accessible depuis le bus : plusieurs temps d ’horloge ! Les bandes magnétiques, les disques optiques sont plus utilisées pour l ’archivage et la sauvegarde 33 34 Structure et hiérarchie de stockage ! Protection mémoire La mémoire cache ! ! Permet de palier à la différence de vitesse entre les matériels La protection mémoire contre les accès illégaux peut se faire en utilisant deux registres : ! Elle est utilisée pour diminuer les temps d ’attente des instructions suivantes. De capacité réduite, elle peut contenir de 80 à 99% des instructions suivantes. ! Le registre base indique la valeur de la plus petite adresse valide Le registre limite donne l ’espace accessible La CPU compare chaque adresse soumise avec les registres base et limite. Si l ’adresse n ’est pas valide, une interruption est générée. 35 36 6 Protection mémoire Gestion des fichiers Le fichier représente la structure de stockage des données. Le fichier n ’a pas de format particulier, il peut contenir des données alphanumériques, numériques, alphabétiques, binaires … Les fichiers sont généralement regroupés en répertoire => composant le plus visible du système d’exploitation => il permet d ’uniformiser la visualisation des données quelque soit le support de stockage (disque, CD-ROM, DVD, DAT, …) 37 Gestion des fichiers ! Protection du système Le système d ’exploitation est responsable de : ! ! ! ! ! 38 En mode multi-utilisateurs et multi-tâches, il faut protéger les activités des uns contre celles des autres la création et la destruction des fichiers la création et la destruction des répertoires la couche liaison avec les primitives de manipulation des fichiers et des répertoires le placement des fichiers sur la mémoire (centrale et secondaire) la sauvegarde sur disque ! ! Mise en place de mécanismes pour que chaque ressource utilisée le soit après autorisation du système d ’exploitation => Définition de droits des utilisateurs sur les processus et les ressources qui sont à la charge du système d ’exploitation Eviter les interblocages (E/S) 39 Protection matériel Protection matériel Le matériel doit pouvoir détecter et informer le S.E. de certaines erreurs ! ! 40 Accès d ’un programme utilisateur à un autre programme utilisateur (ou pire au noyau) Bouclage infini La protection CPU contre les boucles infinies est assurée par un compteur. ! ! Le compteur est décrémenté par le temps Lorsque le compteur passe à zéro, une interruption est déclenchée. Pour assurer la protection des accès, les S.E proposent deux modes d ’exécution ! ! mode utilisateur (user) mode moniteur (super user) Seul le noyau s ’exécute en mode moniteur. 41 42 7 Autres gestions ! ! Interpréteur de commandes Gestion horloge Gestion communications ! Interface entre l ’utilisateur et le système d ’exploitation Reseaux : acheminement, connexion, encombrement, ... Il peut être intégré au noyau ou exécuté au début d ’une session d ’un utilisateur comme tout autre processus But : lire la prochaine commande à exécuter par le système d ’exploitation 43 Interpréteur de commandes 44 Interpréteur de commandes L ’interpréteur de commandes a la charge de créer les processus qui vont exécuter les commandes, il est en liaison directe avec les autres composants du système d ’exploitation. Un appel système peut être programmé = routine échange de fichiers (nom, lecture, copie, …) Les paramètres de telles routines sont stockés : ! Une commande va déclencher des appels systèmes pour : ! contrôler les processus ! manipuler des fichiers, des périphériques ! contrôler les communications ! dans un registre ou une adresse de départ dans une pile 45 Interpréteur de commandes 46 En résumé Il existe beaucoup d ’interpréteur de commmandes : ! basé sur l ’utilisation de menus déroulants (Mac) ! basé sur des commandes en lignes (shell Unix) Un Système d ’Exploitation permet ! d ’exécuter des programmes ! d ’allouer les ressources ! de gérer les E/S ! de stocker des informations par un système de fichiers ! d ’ordonnancer la CPU ! d ’échanger de l ’information (communications) ! de détecter des erreurs ! de comptabiliser utilisateurs, connexions, … (factures) ! de protéger ressources, données, ... (bash, csh, tsh, …) 47 48 8 Système Linux : caractéristiques Système Linux : principes Mandrake 8.0 ! ! ! ! ! Multi-utilisateurs : multiples sessions Multi-tâches : exécution de plusieurs programmes Orienté temps partagé Orienté réseaux : SE réseau ! ! 49 Le système d’exploitation présente un ensemble d’instructions étendues (appels système) aux programmes utilisateurs. Ces appels permettent de manipuler (créer, détruire, utiliser) les objets logiciels gérés par le SE. Les plus importantes de ces objets sont : les processus et les fichiers. 50 9