Système d’exploitation d’un ordinateur Comment l’expliquer ? L’essentiel à savoir... PCI DEUG Sciences 2001-2002 Alain Mille UFR d’Informatique UCBL L’objectif de ce cours est de fournir un certain nombre de principes que l’on retrouve dans les systèmes d’exploitation des ordinateurs, et qui expliquent en quoi cet environnement conditionne le fonctionnement des applications informatiques et des services disponibles sur un ordinateur. Il ne s’agit donc pas d’un cours sur un système d’exploitation particulier, même si les exemples sont issus de Microsoft Windows que les étudiants de DEUG manipulent pendant leurs Travaux Dirigés.
Système d’exploitation ? Introduction Définition : l’ensemble des logiciels qui permettent « d’exploiter » l’ordinateur = l’ensemble des logiciels offrant les services de base (gestion du matériel, du réseau, etc.) + l’ensemble des logiciels offrant des services généraux (gestionnaire de fichiers, administration de ressources, etc.) 1) Introduction La définition générale donnée d’un système d’exploitation l’est un peu trop, car, à la limite, n’importe quel logiciel pourrait alors être considéré comme faisant partie du système d’exploitation. En pratique, sont exclus les logiciels correspondant à des applications spécifiques comme la « gestion du personnel » d’une entreprise, ou la « gestion des stocks », ou encore, les logiciels de retouche de photos, ou les logiciels de synthèse musicale, ou de montage vidéo. Il faut donc d’abord retenir qu’un système d’exploitation est un ensemble de LOGICIELS, qui peut d’ailleurs s’installer sur des environnements matériels relativement différents. La logiciel chargé de « gérer » les applications est un logiciel du système d’exploitation, tandis que les applications elles-mêmes ne font pas partie du système d’exploitation. Une façon relativement simple de se « figurer » les différentes parties d’un système d’exploitation est d’en faire un modèle « en couches » concentriques comme le schématise la diapositive suivante.
Gestion mémoire, entrées-sorties et processus Modèle en couches Introduction Interface humain Applications et services Système de Gestion des Objets Systèmes Noyau Gestion mémoire, entrées-sorties et processus Matériel Le « modèle » en couche permet de présenter pédagogiquement les composants d’un système d’exploitation, et ne correspond pas fidèlement à l’organisation de tout système. Le système d’exploitation offre d’abord les couches de base, celles qui permettent de piloter le matériel et la gestion de ces ressources matérielles (mémoire, périphérique et contrôle d’exécution des programmes -les processus-). Au dessus de cette couche, un ensemble de logiciels chargés de gérer les « objets » systèmes (pour l’essentiel, les fichiers et les « ports » de communication). Un ensemble d’applications « standards » (typiquement l’explorateur de fichiers) et de services installés (typiquement l’administration du poste de travail) exploitent ces couches internes pour leurs besoins (les applications spécifiques seront installées au même endroit, par un processus d’installation standard). Enfin, l’ensemble des services et des applications nécessitent un interface humain pour permettre à l’utilisateur de les atteindre selon des modes prédéfinis et contrôlés. Nous allons maintenant reprendre ces couches en partant de celle que tout le monde connaît, l’interface humain, puis en pénétrant petit à petit dans les profondeurs du système d’exploitation
Interface humain (1) Introduction Interface humain Interfaces humains Les différents environnements permettant à l’utilisateur d’interagir avec le système informatique. C’est lui qui permet d’atteindre les services et les applications disponibles sur le système informatique. L’interface humain a tendance à se standardiser autour de quelques conventions graphiques, mais l’interface textuel permet d’atteindre l’ensemble des commandes disponibles. L’interface « humain » des systèmes informatiques initiaux était réduit à la possibilité de « contrôler » l’exécution des programmes et d’obtenir les résultats sur un « listing » papier. Le matériel quasi universel de communication homme-machine est maintenant constitué d’un tryptique bien connu : écran pour afficher, clavier et souris pour introduire données et commandes. C’est au centre de recherche Rank Xerox de Palo Alto que ce modèle d’interface humain a été inauguré et a été transformé rapidement en produit par Apple avant d’être suivi par d’autres et en particulier Microsoft (qui n’a rien inventé en la matière). Aujourd’hui, un système d’exploitation se reconnaît aussi par le style de son interface humain (ah, l’inimitable bouton « démarrer » de microsoft pour pouvoir …arrêter le système!). Un véritable langage graphique s’est mis en place avec icônes, menus déroulants, boites de dialogues, arbres d’exploration… Bien que disponible de plus en plus, le son (commande vocale et messages sonores) n’a pas encore fait l’objet d’un véritable standard. Si l’interface graphique permet d’atteindre plus ou moins facilement les différents services et les diverses applications d’un système, il est également parfois nécessaire de revenir à un interface textuel permettant d’enchaîner plus facilement les commandes, voire de les « programmer ». Illustrations
Interface humain (2) Tendances : Introduction Interface humain Interfaces humains Tendances : interfaces humains fondés sur des description de « pages » du type HTML Avantages : indépendance totale entre les applications et leurs interfaces -> interopérabilité. Défauts : exige un « interpréteur » respectant rigoureusement « un » standard du langage (Internet Explorer ou Netscape par exemple) et de nombreux « plug in » pour gérer les effets graphiques complexes ou les contrôles spécifiques. Des « plug-in » puissants mais particuliers à un « éditeur » peuvent entraîner l’effet de monopole (situation de microsoft explorer par exemple). Il faut se rappeler que l’interface humaine n’est souvent qu’un décor autour d’objets informatiques partagés par de nombreux systèmes d’exploitation. Les objets graphiques comme les fenêtres avec leurs ascenseurs, boutons de fermeture, etc peuvent se présenter sous différentes couleurs, différentes bordures, etc, elles resteront des fenêtres d’affichage associées à un programme qui s’exécute sur l’ordinateur. Il vous est possible de cette façon de « personnaliser » votre interface d’un point de vue graphique en particulier (mais aussi, en choisissant les objets informatiques que vous souhaitez avoir sous la main quand vous travaillez). De manière simplifiée, il existe en fait un langage de description graphique utilisé par les programmeurs pour décrire les interfaces que leur programme doit utiliser (avec des propriétés qui seront modifiables par l’utilisateur comme la couleur par exemple). Ce langage dépend le plus souvent du système d’exploitation lui-même, et en tout cas nécessite que le programme gestionnaire de l’interface humaine sache le décoder pour en reproduire la description. Pour remédier à cette hétérogénéité des langages de description graphique, une tendance est en train de se faire jour : utiliser un langage « universel » de description de pages graphiques du type de HTML (langages de balises) et utiliser un langage comme Java pour permettre l’exécution sur des machines cibles très diverses. Cette technologie est en train de s’imposer grâce au « WEB » qui interconnecte des machines aux systèmes d’exploitation par définition hétérogènes.
Applications et services (1) Introduction Interface humain Applications et services Une application est un ensemble de programmes permettant de fournir des fonctions spécifiques : traitement de texte, tableur, logiciel de dessins, traitement de vidéo, etc. Un service est un ensemble de programmes permettant de gérer des ressources offertes comptes utilisateurs, accès réseau à distance, site web, gestion des impressions, etc. Applications et services Interfaces humains L’interface humain permet donc de « lancer » des applications et « d’activer » des services. La différence entre application et service est arbitraire, puisque dans un cas comme dans l’autre, il s’agit d’un logiciel, un programme et ses composantes que l’on désire exécuter. Le terme application est le plus ancien, et correspond à un programme s’appliquant à un problème particulier plus ou moins général. La plupart du temps, une application est associée à des fichiers (souvent appelés documents) dont le contenu est structuré selon un format spécifique (.doc pour word, .xls pour Excel, .ppt pour Powerpoint, etc.). Le suffixe est utilisé pour donner ce type de fichier, et une partie initiale du fichier (en-tête) est exploitée par les programmes pour vérifier l’adéquation du format à l’application. Le terme service a été imaginé plus récemment pour représenter des logiciels qui ne sont pas associés en général à un fichier reflétant le travail de l’utilisateur comme dans le cas d’une application, mais qui assurent l’accès à des ressources internes ou externes utiles pour les applications. Par exemple, les services réseaux permettent d’accéder à Internet ou à des disques sur des serveurs distants, ou les services d’impression permettent d’accéder à une imprimante (ou différentes imprimantes). Services comme applications doivent être « installés » sur le système d’exploitation pour être disponibles au moment de leur usage.
Applications et Services (2) Introduction Interface humain Applications et services Installation d’une application l’ensemble des fichiers nécessaires sont rassemblés sur un CD ou sur un site disponible sur Internet, un logiciel d’installation (setup, install, ...) permet de copier sur une zone disque les fichiers concernés (codes exécutables, données, exemples, aides, etc) et « enregistre » l’application sur la machine cible (un poste client ou un serveur). les icônes, les menus, les commandes permettant de lancer l’application sont mis à disposition. Applications et services Interfaces humains Installer une application consiste à copier l’ensemble des fichiers nécessaires à l’exécution de l’application sur la machine cible (celle sur laquelle l’application s’exécute), mais aussi à « enregistrer » l’application sur la machine cible. L’enregistrement consiste à écrire des informations dans ce que l’on appelle les « registres » (comme les registres d’un hôtel…) permettant d’indiquer les conditions d’exploitation (licence, mode de lancement, langue à utiliser, chemins à utiliser pour les fichiers, etc.). Ces registres sont en fait des fichiers de configuration particuliers, gérés de manière plus ou moins standardisée par les systèmes d’exploitation. Pour des raisons pratiques, on doit également mettre à disposition sur l’interface humain, une icône ou un menu permettant de lancer l’application. On comprend bien que la manière d’installer un logiciel dépend d’une part du concepteur de l’application et d’autre part du système d’exploitation lui-même. Il serait difficile de suivre un manuel d’installation indiquant comment procéder en exigeant de l’utilisateur qu’il copie lui-même les fichiers au bon endroit et garnisse les registres convenables avec les valeurs spécifiques à l’application. En conséquence, l’installation est en général assurée par un programme spécialisé (setup, install, …) qui s’occupe de tout moyennant quelques questions à l’utilisateur pour lui demander s’il souhaite personnaliser les choses. L’ensemble des fichiers sont en général rassemblés sur un support disque optique ou téléchargés depuis un site accessible par le réseau (internet le + souvent)
Applications et Services (1) Introduction Interface humain Applications et services Les services sont des programmes lancés automatiquement ou manuellement et qui restent disponibles en permanence Les services n’ont en général pas d’interface humain très voyant (parfois une icône donnant l’état du service) Applications et services Interfaces humains Les services sont le plus souvent « silencieux », c’est-à-dire qu’ils n’affichent pas d’informations particulières à l’utilisateur quand il en exploite les possibilités, sauf s’il souhaite en connaître le détail. L’utilisateur peut toutefois se rendre compte de leur présence quand il doit l’activer et que certaines informations sont demandées. Par exemple, le service de « connexion à distance » permettant de se connecter à Internet depuis chez soi avec un modem, exige en général que l’on confirme le numéro de téléphone du pourvoyeur d’accès (provider). La diapositive illustre d’autres services – le service de Fax, le service de sons, le service de l’heure, le service de protection anti-virus. L’activation d’un service peut se faire de différentes façons : au démarrage, automatiquement (on voit alors les icônes s’afficher les unes après les autres pendant le démarrage), en cours de route à la demande d’une application (le service est alors prêt), et il est toujours possible de lancer et activer un service spécifique (la manière varie d’un système à l’autre, mais le plus fréquent est un programme de gestion des services qui récapitule les services et leur état et permet de les faire évoluer). Les services sont donc à la disposition des applications pour en général mettre à disposition des ressources partagées ou n on disponibles en permanence. Service de protection antivirus démarré Service de FAX démarré
Applications et Services (2) Introduction Interface humain Applications et services Les services sont soit « réveillés » à intervalles réguliers ou sur apparition d’un événement qu’ils doivent traiter. Les services peuvent être utilisés par les applications pour réaliser certaines de leurs fonctions (typiquement, les services réseaux sont nécessaires pour les applications exploitant des ressources à distance). Les services sont installés comme des « composants » supplémentaires du système d’exploitation. Applications et services Interfaces humains Un service qui permet d’accéder à des ressources distantes ne peut pas en permanence vérifier que ces ressources sont disponibles. En pratique, le service est sollicité à la demande (un événement qui intervient) ou à intervalles réguliers (ce qui permet de détecter un problème d’accès par exemple). Le dysfonctionnement d’un service peut être bloquant pour une application puisqu’il peut empêcher l’accès à une ressource particulière. Le service d’impression est illustratif de cette difficulté. Un service d’impression permet à une application d’imprimer un document. Le choix de l’imprimante, le paramétrage (la manière d’utiliser) l’imprimante, l’impression elle-même sont pris en charge par le service. L’application peut continuer tandis que l’impression est gérée par le service. Les services réseaux sont peut-être les plus importants actuellement puisqu’ils conditionnent le bon fonctionnement de la plupart des applications. A la différence des applications, les services sont en général considérés comme des composants du système d’exploitation, et de fait, un système d’exploitation peut parfaitement offrir un certain nombre de services « en standard ». Illustration
Système de gestion des objets systèmes Introduction Interface humain Applications et services Gestion des objets du système Un objet système est une entité « persistante », portant un nom et possédant des propriétés que l’on peut modifier les fichiers sont les objets systèmes les plus évidents, mais de plus en plus... les comptes utilisateurs, les groupes, ressources allouables comme les imprimantes... Examinons les deux premiers... Gestion des Fichiers Applications et services Interfaces humains La notion « d’objet » est récente pour désigner tout ce qu’un système d’exploitation peut manipuler explicitement (avec un nom donc). Un objet (en général) est décrit par : Un nom, Des propriétés ou attributs (qui caractérisent et définissent cet objet dans l’environnement du système d’exploitation) Parler d’objet permet de considérer de manière générale n’importe quel élément (fichier, compte, ressource, etc.) de la même façon. Un objet peut être créé, modifié, supprimé. Il est toujours possible d’afficher ses caractéristiques (champ « propriétés » en général). Un objet possède un état (prêt, indisponible, en cours d’utilisation, ...) exploité par les programmes et le système d’exploitation pour gérer au mieux le partage et la cohérence des usages sur ces objets. Les objets les plus évidents sont : Les fichiers Les comptes utilisateurs, les groupes, Les ressources Pour bien comprendre le fonctionnement d’un système d’exploitation, l’examen des deux premiers types d’objet est très utile.
Fichiers et « Système » de Gestion de Fichiers Introduction Interface humain Applications et services Gestion des objets du système Un fichier est un « objet » permanent du système d’exploitation contenant une « séquence » d’octets. Les fichiers que tout utilisateur manipule sont des fichiers stockés et organisés dans une mémoire de masse, une unité de disque le plus souvent. Un Système de Gestion de Fichiers est un ensemble de programmes de gestion de fichiers selon une « méthode spécifique » (nommage, localisation sur le disque, etc.) Gestion des Fichiers Applications et services Interfaces humains Un système d’exploitation gère un grand nombre de « fichiers » qui sont des objets permanents (persistant entre deux sessions de travail) et qui, en première approximation, sont constitués d’une « séquence d’octets » stockés sur le disque (la mémoire de masse). Quel que soit leur type (programme, document, message, registre…) les fichiers sont gérés de manière identique par le « système de gestion de fichier » qui est un sous-ensemble du système d’exploitation. Le système de gestion de fichiers est une composante essentielle d’un système d’exploitation. Ce système repose sur une méthode de nommage, de codage, d’organisation du disque, etc. qui varie d’un système à l’autre. On peut créer un fichier par copie à partir d’un fichier existant ou par l’utilisation d’une application. On peut modifier un fichier par l’utilisation d’une application. On peut supprimer un fichier par une commande du système d’exploitation (via l’interface humaine le plus souvent) ou par une application.
Applications gestionnaires de fichier Introduction Interface humain Applications et services Gestion des objets du système Le gestionnaire de fichiers est une APPLICATION permettant à l’utilisateur de manipuler les fichiers en tant qu’objets du système Il peut donc y avoir plusieurs applications différentes pour gérer les fichiers gestionnaire simple type explorateur Gestion des Fichiers Applications et services Interfaces humains Le système de gestion de fichier est bien sûr exploité par toutes les applications, mais de plus, l’utilisateur doit pouvoir lui-même gérer ses « dossiers ». Pour permettre à l’utilisateur de manipuler les fichiers dans leur organisation, une ou plusieurs applications dites « Gestionnaire de fichier » sont disponibles via l’interface humain. Ces applications permettent de différentes manières de représenter les objets du système (essentiellement des fichiers et des dossiers) à l’écran avec leur nom. Les propriétés de ces objets (date de création, d’écriture, protection, etc…) sont également accessibles par l’utilisation de ces applications gestionnaires de fichiers (quand dans un explorateur affiche l’icône d’un ordinateur, il ne s’agit bien sûr pas d’un fichier, mais cette facilité a été ajoutée pour pouvoir naviguer facilement parmi tous les objets du système d’exploitation). La manière de « voir » les fichiers est donc totalement liée à l’application gestionnaire et certains systèmes (Linux par exemple) permettent de nombreuses variantes plus ou moins « intuitives » pour faciliter le travail de l’utilisateur.
Gestion physique des unités de disque (1) Introduction Interface humain Applications et services Gestion des objets du système Gestion des Fichiers Applications et services Interfaces humains Les fichiers sont des objets « abstraits » (c’est-à-dire ne correspondent pas directement à un objet physique palpable), mais leurs contenus doivent bien être stockés sur un support physique, permanent. Le support de stockage des contenus des fichiers est en général un disque (une technologie vue pendant le cours sur la partie matériel). La technologie dépend d’une unité de disque à l’autre, mais ce qui ne change pas c’est la manière de gérer ces disques depuis le système d’exploitation. Dans l’exemple du transparent ci-dessus, le disque est dessiné sous la forme d’un cylindre (ce qui signifie simplement que les pistes atteignables par le système de lecture-écriture forme autant de cylindres par leur superposition). Du point de vue du système d’exploitation, ce disque est vu comme une série de blocs d’une taille en général multiple de 512 octets (eh oui, les puissances de 2 sont incontournables). Les blocs sont numérotés séquentiellement et correspondent donc à des « morceaux » physiques de quelques secteurs qui sont également lisibles « en séquence » sur le disque, c’est-à-dire sans nécessiter un déplacement du bras de lecture-écriture, ce qui entraînerait un ralentissement des échanges. Une unité de disques de 16 000 blocs de 512 octets = 8 109octets (8 giga octets)
Gestion physique des unités de disque (2) : découpage en volumes Introduction Interface humain Applications et services Gestion des objets du système Gestion des Fichiers Applications et services Interfaces humains Volume 1 Volume 2 Volume 3 Les unités de disques importantes (et a fortiori séparées, comme 2 lecteurs différents), peuvent être « vues » comme plusieurs entités séparées nommés volumes. Chaque volume est découpé en blocs (selon une règle qui peut varier d’un volume à l’autre) en permettant une gestion séparée. Ces volumes apparaissent par exemple avec des lettres (C, D, E…) différentes sur un système d’exploitation comme Windows 2000. Volume 4 Le disque physique est découpé en 4 volumes logiques 1,2, 3 et 4 de 4 000 blocs chacun. Illustration
Localisation des fichiers sur un volume disque Introduction Interface humain Applications et services Gestion des objets du système Un fichier occupe un nombre entier de blocs Des « fichiers spéciaux », les répertoires, repèrent les fichiers par leur nom, et mémorisent leur index de localisation (organisation hiérarchique) Pour gérer l’espace, un système de cartographie des blocs libres / blocs est mis en place Toutes ces informations sont sur le volume disque Gestion des Fichiers Applications et services Interfaces humains Chaque volume est donc géré comme une entité à part avec : un nombre entier de blocs constitutifs, des « fichiers spéciaux », c’est-à-dire des fichiers qui n’ont de sens que pour le système de gestion de fichiers et qui lui permettent de gérer l’espace disque selon une méthode qui est propre au système d’exploitation et au système de gestion de fichiers choisi pour ce système d’exploitation. Il s’agit de fichiers répertoires (correspondant aux « dossiers » que vous manipulez avec Windows 2000) chargés de repérer les fichiers « normaux » (les documents que vous manipulez par exemple avec les outils bureautique) par leur nom et par un « index » de localisation (au moins le numéro du premier bloc de chaque fichier). L’organisation hiérarchique (en arbre, comme vous le remarquez avec l’explorateur Windows par exemple), permet aux répertoires fils d’être repérés dans un répertoire père de la même façon qu’un fichier normal (nom et index). un système de « cartographie » du volume permettant de donner l’état de chaque bloc — libre, occupé, inutilisable — Cette « carte » du volume occupe naturellement de la place sur le volume lui-même. On peut avoir une idée graphique de cette carte quand on est amené à devoir « défragmenter » un volume disque (c’est-à-dire réorganiser les blocs pour qu’ils soient séquentiels pour chaque fichier et qu’il y ait le moins possible de trous entre les fichiers). ces informations sont permanentes (persistent sur le disque après l’arrêt de la machine) et évoluent à chaque utilisation. quand on « reformate » un volume, seule un répertoire de base (dit Racine) est gardé et la carte du disque est remise avec tous les blocs (autres que le répertoire de base et la carte elle-même) libres. Illustration
Les propriétés des fichiers Introduction Interface humain Applications et services Gestion des objets du système nom (protocole de nommage dépendant du système d’exploitation) propriétaire (compte propriétaire) dates de création, accès, mise-à-jour, ... autorisations d’exploitation par catégorie (le propriétaire, tout le monde, une liste limitée...) etc Remarque : un répertoire étant un « fichier spécial », il est caractérisé avec le même type de propriétés Gestion des Fichiers Applications et services Interfaces humains Chaque fichier (même vide) est créé avec un certain nombre d’informations obligatoires le décrivant: Nom. La façon de nommer un fichier (protocole de nommage) est différente pour chaque système d’exploitation, mais a tendance à s’uniformiser malgré tout en autorisant un nombre de caractères de plus en plus grand et une longueur de nom de plus en plus grande. Les informations permettant de gérer les comptes et de protéger les informations contenues dans les fichiers Les informations de datage des données contenues, etc. Nous verrons en fait que cette façon de décrire un fichier n’est pas spécifique aux fichiers mais devient vraie pour n’importe quel « objet » manipulé explicitement par l’utilisateur dans le système d’exploitation.
Structure interne d’un fichier Introduction Interface humain Applications et services Gestion des objets du système Bloc 1 En-tête de fichier (type, nombre d’octets d’information, etc.) Bloc 2 Gestion des Fichiers Applications et services Interfaces humains Bloc 3 ascii, binaire,... Bloc 4 Plus précisément, l’ensemble des informations nécessaires à la gestion du fichier (les propriétés précédemment décrites) sont stockées dans (au moins) un bloc alloué au moment de la création du fichier. On appelle ce bloc l’entête (header) du fichier. Cet entête permet, entre autres, aux logiciels de vérifier que le contenu du fichier est conforme à ce qu’ils attendent (Word attend un document codé conformément à son propre fonctionnement). En conséquence, un fichier, même vide, occupe au moins un bloc à sa création et occupe de la place également dans le fichier répertoire (le dossier) qui le repère. Au fur et à mesure que le fichier est rempli (comme quand je tape ce texte avec Powerpoint), les blocs supplémentaires nécessaires sont ajoutés. Ils sont ajoutés séquentiellement sur le disque tant que c’est possible, sinon ils sont alloués « là où il y a de la place », ce qui explique le phénomène de fragmentation déjà évoqué. Bloc 5 Dès sa création un fichier occupe au moins un bloc et son en-tête est créée. Il est pourtant vide (0 octets). Les blocs sont alloués quand nécessaires.
Comptes utilisateurs et administration des comptes Introduction Interface humain Applications et services Gestion des objets du système Un compte utilisateur est une entité mémorisant les caractéristiques d’un utilisateur du point de vue d’un système d’exploitation, et notamment : un identificateur (login) un mot de passe (passwd) l’appartenance à un groupe des droits particuliers (ou des interdictions!) un « profil » d’environnement répertoire par défaut « bureau » etc. etc.s Gestion des Fichiers Applications et services Interfaces humains Les comptes des utilisateurs sont des éléments de gestion d’un système d’exploitation très importants. La description des comptes ouverts sur un système (qui a droit de se connecter, avec quels droits, et avec quelles ressources) est bien entendue enregistrée quelque part sur un volume disque du système (ce volume peut-être sur la machine locale ou sur une machine distante, accessible par le réseau). Dans Windows 2000, on appelle l’ensemble des fichiers répertoriant ces informations des « registres » (registers) par analogie avec les registres d’un hôtel par exemple. Il s’agit bien entendu de fichiers (dont les noms sont automatiquement générés par les système d’exploitation et qui sont la plupart du temps « cachés », c’est-à-dire n’apparaissant pas sur les gestionnaires de fichiers, pour éviter qu’un utilisateur voulant faire de la place ne les enlève —avec les droits nécessaires ! —) Ces registres sont utilisés pour stocker « toute » information utile pour la gestion du compte (il peut aussi y avoir des informations utiles pour Microsoft…). Ils servent également pour mémoriser vos préférences (apparence du bureau, façon de lancer les applications, etc.) rassemblées dans ce que l’on appelle un « profil » utilisateur. Ce profil peut être « lourd » (plusieurs millions d’octets) pour peu que vous ayez choisi de mettre la photo de votre vedette préférée à l’écran (sur le réseau, le transfert du profil peut donc être très long). Illustrations
Le noyau d’un système d’exploitation Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Le noyau d’un système d’exploitation est constituée des fonctions logicielles les plus dépendantes du matériel (différent selon les familles de microprocesseur) Nous retiendrons trois fonctions essentielles : Gestion de la mémoire Gestion des entrées-sorties Gestion des processus Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes Le noyau du système d’exploitation est par définition une partie « cachée » à l’utilisateur, même si son bon fonctionnement conditionne particulièrement ses performances. Si vous vous rappelez ce que nous avons vu pendant le cours sur le matériel, vous ne serez pas surpris de trouver trois grandes parties: gestion de la mémoire (comment trouver de la place en mémoire centrale pour les programmes et les données manipulées par les programmes), gestion des entrées-sorties (comment s’assurer des échanges demandés par les applications avec les différents périphériques), gestion des processus (comment partager la ressource principale —l’unité centrale— entre plusieurs applications « lancées » simultanément alors que comme vous le savez, à un instant donné, une seule instruction, d’une seule application s’exécute sur l’Unité Centrale).
Gestion de la mémoire (1) Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire Chaque programme qui s’exécute doit être présent en mémoire accompagné des données sur lesquelles il travaille A chaque fois qu’un programme est lancé, le gestionnaire de mémoire est appelé pour « trouver » un espace mémoire pour lui La plupart des systèmes permettent de lancer beaucoup de programmes en parallèle, et les programmes sont « gourmands » en mémoire besoin d’un mécanisme de mémoire virtuelle Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes Chaque fois qu’une application est lancée par l’utilisateur (word par exemple), un certain nombre de « programmes » sont lancés pour assurer toutes les fonctions demandées. Un programme est une « entité exécutable » constituée d’un certain nombre d’instructions opérant sur des données qui lui sont propres. Un programme qui s’exécute DOIT être présent en mémoire centrale accompagné des données sur lesquelles il opére. Il est nécessaire de « charger » en mémoire ces instructions et ces données à partir du fichier correspondant sur le disque. C’est un programme « spécial » qui s’occupe de cette opération, le « gestionnaire de mémoire ». Ce gestionnaire mémoire est installé en mémoire centrale au moment du démarrage de l’ordinateur et y reste jusqu’à son arrêt. Le gestionnaire doit trouver une place en mémoire centrale pour tout nouveau programme lancé à l’occasion du démarrage d’une application. Il est possible (vous vous en êtes rendu compte) de démarrer plusieurs applications ensemble, et bien entendu, il arrive fréquemment que la somme des besoins en mémoire de tous les programmes nécessaires dépasse les possibilités physiques de la mémoire centrale de l’ordinateur. Comme il est bien évident que toutes ces applications n’ont pas besoin d’être toujours en fonctionnement (c’est-à-dire effectivement avec des tâches à effectuer à tout moment), on peut se permettre de ne laisser en mémoire que les parties absolument nécessaires, en copiant sur une partie du disque réservée à cet usage les morceaux de mémoire pas absolument nécessaire. De cette façon, apparemment, on peut mettre dans la mémoire plus de choses qu’elle ne peut réellement en contenir. Il s’agit d’un mécanisme de MEMOIRE VIRTUELLE.
Gestion de la mémoire (2) Notion de mémoire virtuelle Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes ?? Le schéma ci-dessus explique sommairement le mécanisme de n’importe quel système de mémoire virtuel (dans le détail, ces mécanismes différent bien entendu). Le schéma indique que 4 programmes (rose, blanc,bleu et vert) souhaitent être lancés. Il n’y a pas suffisamment de place dans la mémoire centrale. C’est le travail du gestionnaire de mémoire de gérer cette situation. Comment faire pour donner plus de mémoire qu’il n’en existe vraiment physiquement ?
Gestion de la mémoire (3) Notion de mémoire virtuelle Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire 1 2 3 1 2 Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes 3 ... 1 1 3 1 1 2 1 3 5 4 8 5 6 Zone d’échange (swap) 7 L’espace mémoire est découpé en pages (de taille standard, typiquement 4000 octets). Chaque programme est également découpé en pages numérotées séparément. Tant qu’il y a de la place en mémoire centrale, toutes les pages d’un programme lancé sont chargées. Dès qu’il n’est plus possible de démarrer un nouveau programme par manque de place en mémoire centrale, le gestionnaire de mémoire choisit les pages des programmes existants qu’il peut enlever en perturbant au minimum le fonctionnement du système (les pages les moins utilisées en général). Les pages enlevées sont copiées sur un espace disque réservé appelé « zone d’échange » (swap zone). Quand un programme dont une des pages a été enlevée nécessite à nouveau cette page, le gestionnaire de mémoire procède à un « échange » (un swap) entre la page nécessaire sauvegardée sur le disque et une autre page présente en mémoire centrale et jugée moins importante à garder. C’est le gestionnaire de mémoire qui est chargé de résoudre ces problèmes d’échange pour la bonne continuation des programmes. Bien entendu, si la mémoire physique de votre ordinateur est plutôt petite (disons 32 MO) et que vous lancez beaucoup de programmes (certaines applications génèrent le lancement de plus de 10 programmes à la fois), alors il y a des chances que votre système passe son temps à faire du « swapping » entre mémoire centrale et disque…(c’est ce qui vous arrive quand votre ordinateur a l’air de ne plus répondre et que le disque « gratte » furieusement!) 8 9 10 L’espace mémoire est découpé en pages. Seules les pages nécessaires sont en mémoire physique. Les autres pages sont copiées dans une zone du disque. Elles seront échangées (swapped) au besoin. Illustration
Gestion mémoire, entrées-sorties et processus Gestion des processus Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire Processus Un processus est un programme « en train » de s’exécuter Une application est constituée d’au moins un processus A tout moment, un seul processus s’exécute réellement Un programme « ordonnanceur » s’exécute à intervalles réguliers (ordre 100 ms) et à chaque entrée-sortie pour décider quel sera le processus suivant qui s’exécutera. Apparemment, tous les processus s’exécutent en parallèle donc... Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes Nous savons pour l’avoir observé qu’à l’évidence plusieurs programmes « tournent » en même temps, mais nous savons aussi pour avoir été vigilant pendant le cours sur le matériel qu’une seule instruction à la fois s’exécute et ceci de manière rigoureuse. Alors comment peut-on avoir « l’illusion » d’un fonctionnement simultané de plusieurs programmes ? Pour gérer ce problème, les systèmes d’exploitation gèrent des objets particuliers nommés « processus » qui sont les représentants des programmes en cours d’exécution. Chaque processus possède un descripteur avec des propriétés à l’image de ce que nous avons vu pour les fichiers qui sont d’autres objets du système d’exploitation. Un programme particulier, appelé Gestionnaire des processus exécute un ordonnancement (schedule) des processus. Ce programme est activé automatiquement à intervalles réguliers (100 ms typiquement) et à chaque fois qu’un autre processus procède à une entrée-sortie (tellement lente par rapport au fonctionnement de l’unité centrale, qu’il vaut mieux laisser la place à un autre processus en attendant que cette entrée-sortie soit achevée). Quand le gestionnaire de processus est activé, c’est lui qui va décider quel sera le prochain processus activé. Il le décide en fonction de priorités et de « tour de rôle » (chacun son tour…). Ainsi, à notre échelle (la seconde), plusieurs programmes ont pu s’exécuter simultanément et avoir provoqué des effets sur les interfaces. Illustration
Gestion des entrées-sorties (1) Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire Processus Entrées-Sorties Quand un processus d’un programme souhaite lire / écrire une information sur un périphérique, il doit utiliser des fonctions spécifiques à chacun de ces périphériques, Ces fonctions de mise en forme, de contrôle ou de gestion de l’échange (comme on l’a vu dans le cours sur le fonctionnement interne de l’ordinateur) sont rassemblées dans des codes que l’on appelle des PILOTES (ou DRIVERS) d’entrée-sortie. Ces PILOTES sont des composants indispensables du système d’exploitation Ils doivent être INSTALLES pour exploiter un dispositif d’entrée-sortie (en général un périphérique) Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes Le gestionnaire des entrées-sorties n’est pas un « seul » programme, mais un ensemble de programmes spécialisés pour gérer les entrées-sorties selon leurs spécialités. En effet, écrire une information sur une imprimante ne se fait pas du tout de la même façon que d’écrire une information sur un disque. Le système d’exploitation propose donc un certain nombre de fonctions spécifiques à chaque périphérique pour en exploiter les possibilités. Ces fonctions sont rassemblées dans des codes exécutables que l’on appelle des Pilotes d’entrée-sortie ou encore DRIVERS dans l’acception anglo-saxonne. Ces Pilotes sont nécessaires pour pouvoir utiliser un périphérique, ce qui explique qu’au moment de la connexion d’un nouveau périphérique à votre ordinateur vous êtes invités à installer les Pilotes associés pour pouvoir accéder ces périphériques depuis les applications.
Gestion mémoire, entrées-sorties et processus Exemples de pilotes Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire Processus Entrées-Sorties Les pilotes « standards » disques (SCSI par exemple) scanners (USB par exemple) etc. mais surtout des pilotes pour exploiter toutes les possibilités fines d’imprimantes, de scanners avec des options, de systèmes vidéo, Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes On peut faire la différence entre les pilotes « standards », c’est-à-dire autorisant des fonctions classiques sur un type de périphérique et des pilotes spécialisés, autorisant toutes les fonctions classiques sur un type de périphérique plus toute autre fonction spécifique que seul ce périphérique saurait faire (par exemple la fonction recto-verso sur une imprimante). Un certain nombre de constructeurs se sont mis d’accord pour construire des unités périphériques disposant d’un jeu de commandes de pilotage identiques. Un seul pilote standard convient donc pour un « protocole standard » d’usage. C’est le cas par exemple pour les unités de disque fonctionnant selon le protocole SCSI. Le fait que deux périphériques possèdent la même connectique (forme et signalisation des connecteurs physiques) ne garantit pas que le driver de l’un puisse servir pour l’autre. En effet, même s’ils partagent le même « alphabet » pour communiquer, ils ne partagent pas les mêmes fonctionnalités pour autant (essayer de faire graver un disque sur un scanner au prétexte que tous les deux se mettent sur le port USB de votre machine!).
Gestion mémoire, entrées-sorties et processus Conclusion Introduction Interface humain Applications et services Gestion des objets du système Noyau du système Mémoire Processus Entrées-Sorties Conclusion Un système d’exploitation structuré en couches les plus indépendantes possibles Une couche utilise les services des couches inférieures pour réaliser ses fonctions Seul le noyau du système d’exploitation est complètement lié au matériel interne de l’ordinateur Nécessité d’installer correctement les composants du noyau (pilotes en particulier) pour que les périphériques soient pleinement fonctionnels Matériel Gestion mémoire, entrées-sorties et processus Noyau Interface humain Applications et services Système de Gestion des Objets Systèmes Ce survol d’un système d’exploitation a pour but de vous familiariser avec les concepts d’un système d’exploitation (quel que soit ce système). Il faut retenir la manière de « voir » un système en différentes couches, chacune d’elle fournissant des services à la couche supérieure et exploitant les services de la couche inférieure. La couche la plus haute communique avec l’utilisateur d’une part et exploite les autres couches pour les « objets systèmes » La couche la plus basse est chargée de « cacher » le matériel aux couches supérieures. Il s’agit bien entendu du « noyau » du système qu’il convient de changer pour chaque type de processeur. Vous devriez maintenant mieux comprendre ce qui peut poser des problèmes de performance ou de compatibilité sur votre environnement. Vous devriez maintenant également mieux comprendre ce que vous faites quand vous installez des logiciels ou des périphériques sur votre ordinateur.
Interface graphique (ms-windows nt/4) Annexe 1 Interface texte Explorateur de fichier Icône pour atteindre une application ou un service
Interface Texte (MS-DOS) Annexe 1 Invitation de commande La commande est « tapée » au clavier l’exécution de la commande produit l’affichage de ce texte
Exemple d’écran d’installation Annexe 2
Exemple de contenu de disque d’installation avec lancement automatique Annexe 2 Paramétrage de lancement automatique de l’installation
Exemple de contenu avec install Annexe 2 fichiers « compressés » fichiers « compressés » programme d’installation
Interface d’installation d’application (détail) Annexe 2 s’affiche en général en plein écran pour éviter que d’autres programmes perturbent l’installation Des boites de dialogues permettent de suivre la progression de l’installation
Installer/Désinstaller des applications Annexe 2 Applications installées
Applications en cours d’exécution Annexe 2 Explorateur du poste de travail Gestionnaire de fichiers Gestionnaires de fichiers
Quelques services ms-windows Annexe 3
Ajouter/supprimer des services réseau Annexe 3
Fenêtre d’un gestionnaire simple de fichier Annexe 4
Fenêtre d’un explorateur d’objets systèmes (dont les fichiers) Annexe 4
Un exemple de découpage en volumes (Windows-NT4) Annexe 4-bis Unités physiques Volumes logiques
Programmes d’amorçage (boot) Illustration de la gestion d’un volume (un volume « système »)(1 - état initial) Annexe 5 Programmes d’amorçage (boot) 10 Bloc de tête répertoire (racine) 20 30 40 Bloc de tête de cartographie 50 60 70 80 90 les blocs verts sont « libres » 100 110 120
les blocs bleus sont occupés par des fichiers 30 40 50 60 70 80 90 Illustration de la gestion d’un volume (un volume « système »)(2 - début) Annexe 5 10 20 les blocs bleus sont occupés par des fichiers 30 40 50 60 70 80 90 les blocs verts sont « libres » 100 110 120
les blocs bleus sont occupés par des fichiers 30 40 50 60 70 80 90 Illustration de la gestion d’un volume (un volume « système »)(3 - en général) Annexe 5 10 20 les blocs bleus sont occupés par des fichiers 30 40 50 60 70 80 90 les blocs verts sont « libres » 100 110 120 les blocs noirs sont défectueux
Fenêtre d’affichage de propriétés de fichier Annexe 5
Application d’administration de comptes Annexe 6
Un compte utilisateur Annexe 6
Un profil d’environnement Annexe 6
Un instantané de l’utilisation mémoire Annexe 7 Taille physique Utilisé pour accélérer les échanges disques Taille allouée Taille virtuelle
Les processus en cours (1) Annexe 8
Les processus en cours (2) Annexe 8
Les processus en cours (3) Annexe 8
Pilotes mémoires de masse Annexe 9
Pilotes mémoires de masse Annexe 9
Pilotes périphériques audiovisuels Annexe 9