SOMMAIRE SOMMAIRE .............................................................................................................................. 1 SEANCE 1 : Introduction aux S.E. ............................................................................................ 3 I. Introduction .................................................................................................................... 3 II. Présentation du Système d’exploitation ......................................................................... 4 A) La structure et les fonctions du S.E. ....................................................................... 4 a). La hiérarchie des programmes ........................................................................... 4 Logiciel : définition .................................................................................................... 5 Progiciel : définition ................................................................................................... 5 Collecticiel: définition ................................................................................................ 5 Gratuiciel: définition .................................................................................................. 5 Logiciel libre : définition............................................................................................ 5 Logiciel contributif: définition ................................................................................... 5 Compilateur ................................................................................................................ 6 Editeur ........................................................................................................................ 6 Interpréteur de commandes ........................................................................................ 6 Schéma de transmission d’une instruction ................................................................. 7 b). Les fonctions principales d’un S.E. .................................................................... 8 c). Les interruptions ................................................................................................. 8 d). Les déroutements ................................................................................................ 9 e). Le noyau (kernel) du S.E.................................................................................... 9 B) Fonctionnement d’un processeur de base ............................................................. 13 Le processeur................................................................................................................ 13 C) Historique des S.E. (cf. A.Tanenbaum): ............................................................. 16 III. Typologie des S.E. ................................................................................................... 19 A) Classification selon les machines ......................................................................... 19 1) Les S.E. pour mainframes ........................................................................................ 19 2) Les S.E. serveurs ...................................................................................................... 19 3) Les S.E. personnels .................................................................................................. 19 4) Les S.E. temps réel ................................................................................................... 20 5) Les S.E. embarqués .................................................................................................. 20 6) Les S.E. pour Smart Cards (cartes intelligentes) ...................................................... 20 B) Selon les services rendus ...................................................................................... 20 1) mono/multi tâches : .................................................................................................. 20 2) mono/multi-utilisateurs : .......................................................................................... 20 C) Selon leur architecture .......................................................................................... 21 1) Systèmes centralisés : ............................................................................................... 21 2) Systèmes répartis (distributed systems) : ................................................................. 21 D) Selon leur capacité à évoluer ................................................................................ 21 1) Systèmes fermés (ou propriétaires) : ........................................................................ 21 2) Systèmes ouverts : .................................................................................................... 21 E) Selon l’architecture matérielle qui les supporte ....................................................... 22 1) Architecture monoprocesseur (temps partagé ou multiprogrammation) : ............... 22 2) Architecture multiprocesseur (parallélisme) : .......................................................... 22 3) Architecture faiblement ou fortement couplée. ........................................................ 22 1 IV. Les étapes du démarrage d’un S.E. .......................................................................... 23 V. Conclusion .................................................................................................................... 24 LEXIQUE................................................................................................................................. 25 A) Micro-noyau ......................................................................................................... 25 B) Noyau monolithique ............................................................................................. 25 C) BIOS ..................................................................................................................... 25 D) CMOS................................................................................................................... 26 E) L’IEEE ..................................................................................................................... 26 F) Serveur (informatique) ............................................................................................. 27 G) Station de travail................................................................................................... 27 2 CONTENUS S21 Système d'exploitation d'un poste de travail Principes fondamentaux : gestion des processus gestion de la mémoire gestion de fichiers gestion des entrées-sorties CAPACITÉS ATTENDUES COMPÉTENCES CONCERNÉES Expliquer les principes de base du fonctionnement d'un système d'exploitation mono-utilisateur. C39 C46 C47 SEANCE 1 : Introduction aux S.E. I. Introduction Le système d’exploitation est un programme sans lequel les ordinateurs actuels ne peuvent fonctionner. Le plus connu est bien sûr Windows puisqu’il est la pierre angulaire de la démocratisation de l’informatique. Il existe plusieurs façons d’aborder la notion de système d’exploitation. Celle adoptée ici est la suivante : Nous tenterons d’abord de présenter le S.E. à travers ses fonctions et sa structure en passant par une vue d’ensemble du fonctionnement d’un processeur. Puis nous replacerons les S.E. d’aujourd’hui dans un contexte historique Nous distinguerons ensuite les différents types de S.E. les plus courants. Puis nous exposerons les étapes du démarrage d’un S.E. Pour tout apport supplémentaire, se reporter aux parutions suivantes : Les systèmes d’exploitation 2e édition d’Andrew Tanenbaum (éd. Pearson Education), Systèmes d’exploitation de J. Archer Harris (éd. EdiScience), Inside Windows 2000 3e édition de Salomon et Russinovitch. Les systèmes d’exploitation des ordinateurs de Laurent Bloch (éd. Vuibert Informatique) 3 II. Présentation du Système d’exploitation A) La structure et les fonctions du S.E. a). La hiérarchie des programmes Pour faire fonctionner un ordinateur il est nécessaire de faire appel à plusieurs types de programmes. Certains sont écrits en langage machine (Assembleur) et seul la machine peut les interpréter. Ce langage n’est pas unifié, autrement dit, il diffère en fonction des processeurs. Chaque processeur possède un langage assembleur. D’autres sont développés en langage compréhensible pour l’homme : le langage évolué (C, VB, …etc.). Le plus souvent ce sont des programmes utilisateur comme les suites bureautiques, les logiciels de gestion ou les navigateurs Clients Web. Logiciels de gestion comptable S.G.B.D.R. Compilateurs Jeux Suites Navigateurs bureautiques Web Editeurs Système d’Exploitation Programmes utilisateur Interpréteur de commandes Programmes système Langage Machine Matériel Matériels 4 Logiciel : définition Dans le sens large, ce mot désigne l’ensemble des programmes (par opposition avec l’ensemble du matériel). On le désigne aussi par software, opposé à hardware. Dans son sens plus restreint, il peut désigner un programme (un seul). Exemple : Microsoft fait des softwares mais aussi DU software. Progiciel : définition C’est un PROduit logiCIEL Collecticiel: définition (ou groupware ou synergiciel) : Est un programme qui permet le travail en collaboration, en groupe, via un réseau. Gratuiciel: définition (ou freeware) : Est un programme mis à disposition gratuitement par l‘auteur quel que soit le cadre dans lequel il est utilisé. Logiciel libre : définition (ou Open Source) Programme fourni avec ses codes source. L’utilisateur peut donc le modifier, l’améliorer, le diffuser Logiciel contributif: définition (ou shareware) : Est un programme mis à disposition pour essai. Pour avoir le droit d’utiliser un shareware dans le cadre d’une activité, il faut verser une contribution à son auteur. (L’essayer est gratuit, l’utiliser est payant) 5 Compilateur Transforme un fichier texte en fichier exécutable binaire. Editeur Éditeur de texte : Permet de modifier un fichier de type « texte ». Un éditeur n’est pas en mesure d’enrichir un texte (pas de mise en forme) Éditeur hexadécimal : permet de visualiser un fichier en langage machine Éditeurs de liens : Lors de la compilation d’un programme écrit en langage évolué, il permet de lier les noms de bibliothèques aux bibliothèques elles-mêmes puis de transformer le programme évolué en fichier exe (fichier exécutable) ou dll (bibliothèque de liaisons dynamiques) Interpréteur de commandes Est l’équivalent de l’interface graphique (ou IHM). Il permet : l'exécution des commandes tapées en mode texte sur une ligne de commande la redirection des entrées et des sorties (>prn en DOS ou >lp sous UNIX) la substitution des noms de fichiers la gestion des variables d'environnement (programme en C) la possibilité de réaliser des scripts ou batchs L’interpréteur de commandes se lance automatiquement à l’ouverture du S.E. 6 Pour qu’une machine comprenne un ordre donné par un utilisateur, il faut que les étapes suivantes se réalisent : - L’utilisateur donne une consigne à l’application « utilisateur » (un clic sous WORD, par exemple) Le programme WORD (écrit en langage évolué) transmet la consigne (le processus) au S.E. Le SE. Traduit cette consigne en langage machine (pour communiquer avec les composants) La machine exécute la consigne Le S.E. agit comme le traducteur intercalé entre l’utilisateur et sa machine. Il existe donc une hiérarchie entre les programmes présents sur une machine : La hiérarchie des programmes sur un ordinateur Schéma de transmission d’une instruction QUE SE PASSE-T-IL ? OU ? L’utilisateur donne une consigne Programme utilisateur La consigne est transmise au S.E. Programme utilisateur Système d’exploitation (S.E.) Le S.E. traduit la consigne en instruction langage machine Le S.E. transmet l’instruction aux composants concernés Les composants exécutent l’instruction S.E. Système d’exploitation (S.E.) Machine Machine Le S.E. se charge donc de gérer les ressources matérielles à la place de l’utilisateur. 7 b). Les fonctions principales d’un S.E. Les différentes fonctions gérées par le S.E. sont les suivantes : - La gestion des processus Définition : Un processus un travail, un série d’instructions, un programme que le S.E. confit à la machine. A chaque processus envoyé à la machine est associé un ensemble de ressources, un espace virtuel, un contexte dans lequel il doit s’exécuter. En effet, qui dit « programme » dit allocation de zones en mémoire pour stocker des valeurs, variables, résultats intermédiaires, …etc. - La gestion de la mémoire Puisque chaque processus possède ses ressources en mémoire allouées par le S.E., un processus ne peut accéder qu’à son propre espace de ressources. En général, un espace en mémoire est décrit par une adresse mémoire, c'est-à-dire le numéro correspondant à une zone de la mémoire. - La gestion du système de fichiers Le système de fichiers donne la possibilité de transmettre et stocker les données sous forme rationnelle. Sans le système d’exploitation, les fichiers ne sont pas manipulables (accès en lecture ou en écriture ) - La gestion de périphériques d’Entrées et Sorties C’est le S.E. qui transmet les instructions de ou vers les périphériques. Par exemple : si un imprimante n’a plus d’encre, elle envoie un message vers la machine. Comme elle a sont propre langage, il faut que le S.E. ait été formé à ce langage (installation du pilote de l’imprimante) et qu’il transmettre le message de l’imprimante au processeur dans un langage compris par le processeur. En outre, le S.E. reparti les accès aux périphériques par les différents processus en cours d’exécution (surtout pour la multiprogrammation) c). Les interruptions Lorsqu’un processus est envoyé au CPU alors qu’il est occupé, il est classé et « numéroté » dans une liste en mémoire pour être traité entre deux cycles de processeurs. La zone où on classe les interruptions par ordre d’arrivée s’appelle « vecteur d’interruption » Lors d’une interruption, le noyau intervient pour lancer un processus de gestion des interruptions 8 d). Les déroutements Lorsqu’un processus fait appel à une ressource mémoire inexistante ou interdite, il se produit un déroutement. Le noyau intervient pour lancer un processus de gestion de la mémoire. Puis il « repasse » la main au programme utilisateur. Lorsqu’une interruption ou un déroutement intervient, le contenu des registres est stocké dans le registre d’état pour pouvoir reprendre le processus interrompu dans le même contexte. e). Le noyau (kernel) du S.E. C’est un ensemble de procédures qui s’exécutent à chaque interruption ou déroutement du traitement d’un processus. Leur fonction est de gérer les situations qui provoquent les déroutements et interruptions. A chaque fois qu’un programme utilisateur est interrompu dans son exécution (appel système), c’est le noyau qui dicte à la machine ce qu’elle doit faire. Ensuite, le programme utilisateur reprend. Chaque procédure du noyau est affectée à la gestion d’un interruption ou d’un déroutement. Par exemple : Si un programme utilisateur réclame des ressources mémoire inexistantes ou fait appel à des adresses mémoire non valides, la procédure servant à gérer la mémoire va se déclencher. Car une référence à une ressource mémoire erronée se traduit par un déroutement du processeur qui active le mode « noyau » ou « superviseur » En général, avant de relancer le processus interrompu, le noyau exécute sa procédure « gestion des processus » pour restaurer le contexte propre à l’exécution du processus dérouté. Donc l’allocation des ressources en mémoire, l’état des registres du processeur au moment du déroutement sont récupérés. Il existe plusieurs types de noyaux de S.E. (pas tous listés ici) : - S.E. à noyau monolithique Il contient toutes les procédures de gestion des processus, de la mémoire, des déroutements et interruptions, la communication entre les processus (processus qui appellent d’autres processus), ainsi que les fonctions de niveau supérieur comme la gestion du système de fichiers. Toutes ces procédures sont compilées ensemble et peuvent s’appeler l’une l’autre. Elles ne sont pas modularisées. 9 Problème : lorsqu’un appel système (passage en mode noyau) survient, quelle procédure exécuter ? Gestion mémoire, gestion E/S ? Solution : les systèmes à noyau monolithique contiennent à la fois les procédures de gestion mais aussi un programme qui choisit la procédure de gestion à appliquer lorsqu’un appel est lancé en mode noyau. Exemples : MS-DOS, Multics, Unix et Linux. Schéma du fonctionnement d’un S.E. à noyau monolithique Noyau monolithique Procédure principale (gère les procédures de services) Procédures de services (gestion de la mémoire, …etc.) Programmes utilisateurs - S.E. noyau en couches A l’intérieur du noyau, plusieurs niveaux de programmes coexistent. Chacun traite plus ou moins directement avec le matériel. Le niveau 0 gère le processeur et optimise l’envoi des instructions qu’il doit traiter. Le niveau 1 gère la mémoire sans rien savoir de la gestion du processeur. Le niveau 2 permet la gestion des processus par l’utilisateur. Le niveau 3 gère les E/S. Le niveau 4 contient les programmes utilisateurs. Chaque couche délègue des tâches au niveau inférieur sans connaître le détail des travaux qui seront effectués. Schéma du fonctionnement d’un S.E. à noyau en couches Noyau en couches Niveau 0 Niveau 1 … 10 - Les machines virtuelles Ce système est dédié au temps partagé. Il sépare la partie gestion de la CPU et communication avec les applications utilisateur. Il permet de d’émuler plusieurs machines sur une seule pour permettre de lancer des programmes nécessitant des systèmes d’exploitation variés sur une même machine. - S.E. exonoyau Principe des machine virtuelles mais avec une séparation des ressources de chaque système émulé. - S.E « micro-noyau » ou client-serveur remplit toutes les fonctions de bas niveau. Fait appel à des PROCESSUS SERVEURS pour les fonctions de plus haut niveau. Dans ce cas, le système de gestion de fichiers (entre autres) est indépendant du micronoyau. Quand l’utilisateur gère ses fichiers, il s’adresse au S.G.F. qui, lui, s’adresse au micronoyau qui s’adresse au matériel. Schéma du fonctionnement d’un S.E. micronoyau Processus Processus Processus Serveur de … serveur de Serveur de client client serveur terminaux fichier Mode utilisateu r mémoire Mode noyau Micronoyau Le client est servi en envoyant des messages au processus serveur. C’est le qui est le micronoyau messager. Ce système est plus simple et plus facile à maintenir. 11 Le schéma de la situation pourrait être celui-ci : UTILISATEUR PROCESSUS SERVEUR de GESTION DE FICHIERS UTILISATEUR Or, cela ressemble à : PROGRAMME UTILISATEUR S.E. S.E. MACHINE MACHINE Donc, dans un S.E. micronoyau, les processus serveurs s’apparentent à des programmes utilisateurs (exemple : le gestionnaire d’impression). Cependant, dans un S.E. micronoyau, il est préférable de ne pas faire l’amalgame entre processus serveur et programme utilisateur. Exemples : Windows NT (en partie), MINIX BeOS et OS/2. 12 B) Fonctionnement d’un processeur de base Le processeur Les schémas suivant sont le plus souvent retenus pour représenter le fonctionnement d’un processeur. Ils ne couvrent bien entendu pas le fonctionnement intégral dans ses moindres détails. Ils ne montrent pas non plus le fonctionnement de tous les types de processeurs. Cependant ils permettent de comprendre la logique de base dont tout informaticien devrait s’imprégner. Schéma simplifié d’un ordinateur personnel BUS SYSTEME PROCESSEUR (CPU) CONTROLEUR VDO MEMOIRE CONTROLEUR CLAVIER La structure du processeur (composants de base) Pointeur de programme Registre d’instruction Registre d’état R E G I S T R E S Logique de commande (décode et exécute les instructions) UAL Unité Arithmétique et Logique Les registres sont de petites mémoires spécialisées 13 Cycle de base d’un processeur (Central Processing Unit) en quatre grandes étapes Le pointeur de prg donne l’adresse de l’instruction à traiter Placement de l’instruction dans registre d’instruction Extraction d’une instruction de la mémoire centrale Incrémentation du pointeur de prg Décodage de l’instruction par l’unité de commande Type de l’instruction (Voir « Les types d’opérations ») Opérandes de l’instruction Sont situées dans un emplacement mémoire centrale (elles sont les ressources du processus) Dans l’instruction, le bit définissant le type d’opération varie en fonction du constructeur du CPU Exécution de l’instruction L’exécution peut conduire à stocker un résultat en mémoire centrale Si une interruption ou un déroutement était survenu pendant le cycle, le processeur la traite à ce moment, sinon, la valeur du pointeur de programme permet de passer à l’instruction suivante. S’il n’y a plus de processus en attente, le processeur « cycle à vide ». C’est ce qu’on appelle une boucle inactive ou d’attente active. 14 Les types d’opérations effectuées par le processeur : - Le mouvement : Déplace le contenu d’un emplacement mémoire (ou d’un registre) vers un autre. - Le calcul : Une ou plusieurs valeurs d’opérandes sont envoyées à l’UAL qui effectue le calcul. - Le branchement conditionnel : Si une condition de branchement est vérifiée, le pointeur de programme est réinitialisé pour pointer sur (contenir) l’adresse mémoire de branchement demandée dans l’instruction. - Le branchement inconditionnel : Idem mais la condition sera toujours vraie. - L’appel de procédure : 1. Enregistre la valeur contenue dans le pointeur de programme dans une zone mémoire centrale. 2. Réinitialise le pointeur de programme pour qu’il pointe vers l’adresse mémoire de début de la procédure appelée 3. Exécute les instructions de la procédure 4. Va chercher la valeur du pointeur de programme stockée en mémoire centrale. 5. Reprend le processus à l’endroit où elle l’avait stoppé. L’appel de procédure saute à l’emplacement mémoire du début de la procédure Instruction 1 Instruction 2 Instruction 3 Instruction 4 Instruction 5 Appel de procédure Instruction 6 Instruction 7 Instruction 8 Procédure Instruction 1 Procédure Instruction 2 Procédure Instruction 3 Procédure Instruction 4 Fin de la procédure La dernière ligne de la procédure appellée est une instruction de branchement « lire le compteur de prg stocké en mémoire centrale » - Les entrée / Sorties : Envoie les informations à sortir aux périphériques de sortie et reçoit celles émises par les périphériques d’entrée. 15 C) Historique des S.E. (cf. A.Tanenbaum): Au 19e siècle : les premiers ordinateurs étaient entièrement mécaniques ils ne possèdent pas encore de système d’exploitation (à part Ada Lovelace, nièce de Lord Byron, travaillant pour Babbage). 1945-1955 : La première génération d’ordinateurs utilise des tubes à vide (lampes) remplacés plus tard par des relais mécaniques. Cependant, le S.E. n’est pas encore né. - Utilisation du langage machine absolu - Il n’existe pas de langage d’assemblage - Les programmes codés le sont pour résoudre des problèmes de sinus et de logarithmes. A l’apparition des cartes perforées, la situation ne change pas : toujours aucun S.E. 1955-1965 : La deuxième génération d’ordinateurs a marqué l’histoire pas l’avènement des transistors. Les calculs gagnent en fiabilité. Les systèmes fonctionnent par « jobs ». Les programmes sont manuscrits en assembleur ou Fortran et transcrits en langage machine sur des cartes perforées. 1) Les cartes contenant le lot de jobs sont lues et encodées sur bande par un gros ordinateur spécialisé dans ce type de tâche. 2) Des ordinateurs spécialisés dans le calcul sont chargés de lire et exécuter les jobs contenus sur la bande par lots entiers. Cette action s’effectue grâce à un S.E. embryonnaire. Les résultats sont transcrits sur une autre bande (la bande-résultat) 3) La bande-résultat était montée sur une imprimante qui avait pour seule activité l’impression off line des résultats. Le langage utilisé pour l’écriture de ces jobs sont la base sur laquelle furent écrits les langages modernes de gestion de jobs et d’interprétation de commandes. - Ce système servait surtout aux calculs scientifiques et aux ingénieurs - C’est l’avènement des S.E. (FMS Fortran Major System et IBSYS) 16 1965-1980 : La troisième génération présente : - Des circuits intégrés et non plus des transistors - La compatibilité des machines entre elles apparaît (chez IBM, elles utilisent le même jeu d’instructions) - Le S.E. d’exploitation OS/360 d’IBM est lancé mais il doit prendre en compte la variété des travaux demandés (lecture rapide des données codées ET calcul rapide). C’est donc un système complexe et lourd à gérer. - La M.A.J. d’OS/360 aboutit au concept de multiprogrammation qui permet d’optimiser le temps d’utilisation de la C.P.U. Pendant l’attente de réponse d’une E/S, le processeur se voit confier un autre job au lieu de cycler à vide (système de partition mémoire). - Suppression, donc, des opérateurs humains pour la gestion des bandes… - Ces systèmes batchs sont adaptés aux calculs intensifs/ de grande masse mais ne possèdent pas une grande rapidité d’exécution. Donc TEMPS PARTAGE est mis en place (illusion du multi-tâches) et chaque utilisateur possède un terminal. - Les jobs lourds (édition des payes, de la comptabilité) sont privilégiés par rapport aux tâches légères (compilation/exécution d’un programme pour test par un programmeur) - MULTICS (Multiplex Information and Computing System) - Avènement des micro-ordinateurs en 1961 DEC PDP – 7. - MULTICS et les DEC PDP – 7 donnent naissance à un S.E. basé sur le principe d’UNIX. Remarque : Beaucoup de S.E. basés sur UNIX et incompatibles entre eux voient le jour à cette période. Ceci conduit à une grande hétérogénéité des S.E. produits. Conséquence : L’I.E.E.E. (Institute of Electric and Electronic Egeneering) propose un standard : POSIX sur lequel devraient se baser les concepteurs de S.E. Ce standard définit les appels system minimum à prendre en compte lors de l’élaboration d’un S.E.) - Andrew TANENBAUM conçoit MINIX (Micro UNIX) dans un but éducatif. - Linus TORVALDS conçoit Linux d’après MINIX pour qu’il soit utilisé en production, comme l’est Windows. 17 1980-Aujourd’hui : La quatrième génération, celle des ordinateurs personnels (ou micro ordinateurs), débute dabs les années 80. - Bill GATES collabore avec IBM pour leur PC. o Il achète DOS pour 50000 $. o Il crée Microsoft améliore DOS avec l’aide de Patterson, un des pères de DOS. MS DOS voit le jour. o Il a l’idée de vendre MS DOS avec chaque machine. - L’IHM apparaît : C’est L’Interface Homme-Machine. L’histoire de l’IHM : - 60’s : 1ère IHM (fenêtre, icône, menu, souris) par Doug HENGELBART - Xerox utilise - Un des inventeurs d’APPLE reprend l’idée de l’IHM=>LISA (échec, trop cher) - LISA=>M.A.J.=>Le Machintosh d’Apple (Succès) - MAC influence MS=>Windows qui, au départ, n’est pas un S.E mais un interpréteur de commandes pour MSDOS (de 1985 à 1995) - 1995 Win95 est un S.E. (MSDOS est encore utile pour le démarrage et es anciennes commandes système) - 1998 : Win98 (équivalent de Win95) Remarque : Il existe encore du code en Assembleur Intel 16 bits sur des machines en 32 bits - Win NT est développé en parallèle avec Win95 pour essayer de remplacer MSDOS (NT est un vrai S.E. 32 bits - =>la version WinNT 4.0 fait un succès en entreprise - =>la version Win NT 5 (2000) est presque entrée dans les foyers de particuliers (en parallèle avec Me qui n’est qu’un autre Win 98) puis XP - En parallèle, UNIX (spécialisé station de travail et serveur réseau) se spécialise sur machines à processeur RISC (processeurs à jeu d’instruction limité, une instruction par cycle du CPU, plus de registres, …). - Xwindows est l’IHM (rudimentaire) d’UNIX, complété par Motif. Son apparence est à peu près MacOS et Windows. 18 III. Typologie des S.E. A) Classification selon les machines 1) Les S.E. pour mainframes Un exemple est l’OS/390 (descendant de l’OS/360) qui assure trois types de services : - le traitement batch (traitement statistiques lourds, comptabilité, …etc.) - le traitement transactionnel (réservation de places de concerts, …etc) - Le traitement en temps partagé (plusieurs personnes travaillent sur le même processeur en même temps) Ce type de S.E. fonctionne très bien en temps que serveurs Web Exemples : IBM: MVS (Multiple Virtual Storage ) d’IBM le plus répandu, VM, DOS/VSE, TPF (Transaction Processing Facility),: GCOS (General (Electric) Comprehensive Operating Supervisor) de Bull. 2) Les S.E. serveurs - Fonctionnent sur : o de gros micro-ordinateurs, o des stations de travail o des mainframes. - Permettent de : o Servir plusieurs utilisateurs en même temps o Partager les ressources matérielles et logiciels entre les utilisateurs - Service d’impression Service de fichiers Service Web - Exemple : UNIX, Windows 2000 et 2003 Serveur, Linux. 3) Les S.E. personnels - Interface conviviale - Prévus pour faire fonctionner les logiciels bureautiques et les fonctions orientées Internet. - Exemple : Windows 98 et assimilés, Windows 2000, XP, Mac OS, Linux 19 4) Les S.E. temps réel - S.E. temps réel « dur » : permettent de répondre à des contrainte de délais d’exécution à 0 souplesse, synchronisation d’actions parfaite. - S.E. temps réel « mou » : gère des tâches à tolérance un peu supérieure au temps réel « dur » Exemple audionumérique et multimédia avec les OS VxWork (employé par la NASA pour les missions spatiales Pathfinder, Stardust, ainsi que pour les deux rovers martiens Spirit et Opportunity) et QNX. 5) Les S.E. embarqués - Equipent les assistants numériques personnels (P.D.A.) - Exemple PalmOS, EPOC, WindowsSE 6) Les S.E. pour Smart Cards (cartes intelligentes) - Ne savent généralement accomplir qu’une seule action (en évolution) - Parfois gèrent la multiprogrammation (<> BATCH), possèdent parfois une zone de stockage (~ un disque dur) et des entrées/sorties ainsi qu’un système de sécurité B) Selon les services rendus 1) mono/multi tâches : Multi-tâches : capacité du système à exécuter plusieurs processus simultanément. Exemple : effectuer une compilation et consulter le fichier source du programme correspondant. Exemples : UNIX, OS/2 d’IBM et Windows. 2) mono/multi-utilisateurs : Multi-utilisateurs : capacité à gérer un panel d’utilisateurs accédant simultanément aux mêmes ressources matérielles. Exemples : UNIX, MVS, Gcos ... 20 C) Selon leur architecture 1) Systèmes centralisés : L’ensemble du système est entièrement présent sur la machine considérée. Les machines éventuellement reliées sont vues comme des entités étrangères disposant elles aussi d’un système centralisé. Le système ne gère que les ressources de la machine sur laquelle il est présent. Exemples : UNIX, même si les applications réseaux (FTP, Mail ...) se sont développées. 2) Systèmes répartis (distributed systems) : Les différentes abstractions du système sont réparties sur un ensemble (domaine) de machines (site). Le système d’exploitation réparti apparaît aux yeux de ses utilisateurs comme une machine virtuelle monoprocesseur même lorsque cela n’est pas le cas. Avec un système réparti, l’utilisateur n’a pas à se soucier de la localisation des ressources. Quand il lance un programme, il n’a pas à connaître le nom de la machine qui l’exécutera. Ils exploitent au mieux les capacités de parallélisme d’un domaine. Ils offrent des solutions aux problèmes de la résistance aux pannes. D) Selon leur capacité à évoluer 1) Systèmes fermés (ou propriétaires) : Extensibilité réduite : Quand on veut rajouter des fonctionnalités à un système fermé, il faut remettre en cause sa conception et refaire une archive (système complet). Exemples : UNIX, MS-DOS ... Il n’y a aucun ou peu d’échange possible avec d’autres systèmes de type différent, voir même avec des types identiques. C’est le cas entre UNIX, BSD … 2) Systèmes ouverts : Extensibilité accrue : Il est possible de rajouter des fonctionnalités et des abstractions sans avoir à repenser le système et même sans avoir à l’arrêter sur une machine. Cela implique souvent une conception modulaire basée sur le modèle « client-serveur ». Cela implique aussi une communication entre systèmes, nécessitant des modules spécialisés. 21 E) Selon l’architecture matérielle qui les supporte 1) Architecture monoprocesseur (temps partagé ou multiprogrammation) : Ressource processeur unique : Il a fallu développer un mécanisme de gestion des processus pour offrir un (pseudo) parallélisme à l’utilisateur : c’est la multiprogrammation ; il s’agit en fait d’une commutation rapide entre les différents processus pour donner l’illusion d’un parallélisme. Exemple : Windows 2) Architecture multiprocesseur (parallélisme) : On trouve une grande variété d’architecture multiprocesseur : SIMD (Single Instruction Multiple Data) : Tous les processeurs exécutent les mêmes instructions mais sur des données différentes. MIMD (Multiple Instructions Multiple Data) : Chaque processeur et complètement indépendant des autres et exécute des instructions différentes sur des données différentes. Pipeline : Les différentes unités d’exécution sont mises en chaîne et font chacune partie du traitement à effectuer. Exemple : Des systèmes dérivés de Linux 3) Architecture faiblement ou fortement couplée. Architecture fortement couplée : Ce sont principalement des architectures à mémoire commune. Architecture faiblement couplée : Ce sont des architectures où chaque processeur possède sa propre mémoire locale ; c’est le cas d’un réseau de stations. Architecture mixte : Ce sont des architectures à différents niveaux de mémoire (commune et privée). Remarque : Il n’y a pas de système universel pour cette multitude d’architectures. Les constructeurs de supercalculateurs ont toujours développés leurs propres systèmes. Aujourd’hui, compte tenu de la complexité croissante des systèmes d’exploitation et du coût inhérent, la tendance est à l’harmonisation notamment via le développement de systèmes polyvalents tels que les systèmes répartis. 22 IV. Les étapes du démarrage d’un S.E. Mémoire en jeu Niveau logiciel Routines BIOS (Basic Input Ouput System : Prg dédié aux E/S) ROM ou RAM Flash 0 BIOS RAM Flash et CMOS 0 0 BIOS 1 Enregistrement d’Amorçage (Boot Record) du périphérique d’amorçage RAM Flash et Secteur d’Amorçage (Boot Sector) du périphérique d’amorçage. Secteur d’Amorçage de la Partition Active RAM Flash Partition Active du périphérique d’amorçage choisi 2 Enregistrement d’Amorçage de la Partition Active BIOS 0 3 S.E. Actions réalisées Vérifie la RAM (Random Access Memory), le clavier. Vérifie les périphériques en passant par les bus ISA et PCI. => une table est crée contenant les périphériques, leurs adresses et leurs interruptions. Recherche et détermination du périphérique d’amorçage dans la liste stockée en mémoire CMOS. Recherche su secteur d’amorce du périphérique Exécution de l’enregistrement d’amorce du périphérique Lecture de la table de partition située à la fin du secteur d’amorce) Recherche d’un programme d’amorcage sur la partition dite « Active ». Ce programme copie en mémoire le 1er secteur de la partition active. Lit le S.E. (le charge en mémoire) à partir du 1er secteur de la partition active récupéré précédemment. Consulte le BIOS pour vérifier si chaque périphérique à son pilote (sinon, demande à l’utilisateur). Le S.E. prépare le différents processus permettant le fonctionnement de l’ordinateur (exemple : interpréteur de commandes). 23 V. Conclusion Un système d’exploitation permet de: Gérer les ressources matérielles Offrir aux applications utilisateur un accès simplifié aux fonctions de haut niveau (C’est une machine étendue). S’il est doté d’une IHM, il offre une convivialité dans l’utilisation de la machine. 24 LEXIQUE A) Micro-noyau Il est généralement difficile de modulariser un micro-noyau. Le noyau du système lui-même s'occupe des canaux de communication (échange de messages) entre les modules du mode utilisateur pour les tâches fonctionnelles. Dans la plupart des cas, le noyau est programmé dans des langages de haut niveau tels que le C ou le C++. Un autre atout des micro-noyaux est leur portabilité sur d'autres plate-formes, comme par exemple sur les assistants personnels. En particulier, son extensibilité en fait la meilleure solution pour les systèmes massivement parallèles. C'est par exemple typiquement le cas pour BeOS et Minix. Le noyau proprement dit contient seulement les fonctionnalités les plus importantes telles que la gestion des processus (tâches & threads), l'ordonnanceur, la gestion de la mémoire virtuelle et les mécanismes de communication inter-processus (IPC). Avantages: flexible, petit, organisé avec recul, évolutivité facilité Désavantages: léger temps de latence des appels système dû aux couches, programmation des canaux extensible La Carnegie Mellon University développa entre 1985 et 1994 un micro-noyau qui est toujours utilisé dans beaucoup de systèmes d'exploitation. Le projet Mach en est la référence. NeXT OS, OSF/1, OS/2 et beaucoup d'autres encore s'en inspirèrent. Les plupart des implémentations s'inspirent de la conception typique du noyau Mach. Le noyau de NEXTSTEP bénéficie de quelques extensions. IBM utilise déjà la version 3.0 du micro-noyau de Mach pour son Workplace OS. Une autre abstraction est le noyau Windows NT, appelé Executive, qui mélange une architecture micro-noyau et un modèle en couches. B) Noyau monolithique Le noyau monolithique est constitué par un unique fichier exécutable, dans lequel sont réunis tous les composants liés au système. Les pilotes et la gestion des processus, de la mémoire et des systèmes de fichiers se retrouvent dans un gros noyau. Dans quelques cas, les modules sont chargeables dynamiquement, par ex. le réseau ou le pilote SCSI. Des systèmes comme MS-DOS, Multics, Unix et Linux sont typiquement à noyau monolithique. pas de protection des pages mémoire mode privilégié du processeur pour le noyau des parties individuelles peuvent être chargés, par ex. les pilotes sous forme de modules C) BIOS Basic Input Output System. Le matériel de tout ordinateur doit pouvoir coopérer avec les logiciels par une interface (moyen de communication). Le BIOS est un petit système de lancement permettant à votre ordinateur de lancer les autres logiciels à partir d'un lecteur de disquettes ou d'un disque rigide. Le BIOS est responsable du démarrage de l'ordinateur en fournissant un jeu d'instructions de base. Il effectue toutes les tâches nécessaires lors du démarrage: l'auto-test de démarrage et le lancement d'un système d'exploitation à partir d'une 25 disquette ou du disque rigide. De plus, il fournit une interface avec le matériel de l'ordinateur au système d'exploitation sous la forme d'une librairie d'interruptions. Par exemple, chaque fois qu'une touche du clavier est enfoncée, le processeur utilise une interruption du BIOS pour lire la touche. C'est le même principe pour les autres composantes d'entrées/sorties (ports séries et parallèles, cartes vidéo, cartes de son, contrôleurs de disque, etc.). Certains vieux PC ne sont pas capables de communiquer avec les nouvelles composantes matérielles parce que leur BIOS ne les supporte pas; le système d'exploitation ne peut alors utiliser une interruption du BIOS pour communiquer avec ce matériel; ce problème peut être résolu en remplaçant le BIOS par un plus récent, qui supporte le nouveau matériel ou en installant un pilote (driver) pour ce matériel. D) CMOS Complementary Metal Oxide Semiconductor. Pour effectuer ses tâches, le BIOS a besoin de connaître plusieurs paramètres, soit la configuration du matériel de votre ordinateur. Ces informations sont conservées dans un petit espace mémoire (64 octets), appelé mémoire CMOS, ou simplement CMOS. L'alimentation du CMOS est assurée par une petite pile, ainsi son contenu est préservé même si on coupe l'alimentation du PC. Donc, on retrouve une pile et une petite quantité de mémoire sur la carte mère, qui ne perd jamais (ou presque...) ses informations. Cette mémoire faisait partie autrefois de l'horloge du processeur, maintenant elle fait partie d'un circuit intégré. CMOS est le nom d'une technologie qui a la caractéristique de consommer très peu d'énergie, ainsi la pile de l'ordinateur peut durer très longtemps. De nos jours il n'y a plus de piles sur les cartes mères des ordinateurs, mais un accumulateur (NiCad dans la plupart des cas). L'accumulateur est rechargé chaque fois que l'ordinateur est en marche. Si votre CMOS est alimenté par une pile, assurez-vous qu'elle est en bonne condition et qu'elle ne coule pas, car cela pourrait endommager la carte mère. Si la pile est défectueuse, votre CMOS perdra ses informations et donc la configuration du matériel et cela pourrait affecter le fonctionnement de votre ordinateur. Dans les vieux PC et PC/XT monolithiques, l'information sur la configuration du matériel est fournie par de microinterrupteurs (DIP switch) sur la carte mère ou les cartes de périphériques. Certaines cartes mères possèdent une technologie appelée Dallas Nov-Ram, cela élimine le besoin d'avoir une pile : une cellule de lithium ayant une espérance de vie de 10 ans est collée dans la puce. E) L’IEEE C’est l’Institut d’Ingénierie Electrique et Electronique (Institute of Electric and Electronical Engeenering) qui travail sur des standards de connectiques et de mémoires (entre autres). 26 F) Serveur (informatique) Un serveur est un ordinateur ou un programme informatique qui partage des ressources -comme ses périphériques et ses disques durs -- avec d'autres ordinateurs clients sur un réseau informatique. Il est possible pour un ordinateur d'être client et serveur en même temps. Le serveur communique avec les clients à l'aide de protocoles de communication, comme par exemple TCP/IP, qui est le protocole le plus utilisé sur l'Internet. Les termes client et serveur viennent du temps où les utilisateurs accédaient aux serveurs par des terminaux généralement alphanumériques et par la suite avec quelques capacités graphiques. Cette époque a laissé aux gens la notion de serveurs puissants supportant des clients faibles et ne pouvant presque rien faire. Aujourd'hui, alors qu'il existe des ordinateurs portables beaucoup plus puissants que les grands mainframes des années 1970, et qui peuvent être utilisés en tant que clients pour naviguer sur le Web, ceci peut prêter à confusion. Mais il est aussi possible de rapprocher le sens informatique des termes client et serveur du sens des mêmes mots en français : par exemple, dans un restaurant, un serveur vous sert les plats que vous, le client, avez demandés - en informatique, un serveur répond aux requêtes effectuées par les clients. G) Station de travail Une station de travail désigne généralement un ordinateur puissant à la disposition d'un utilisateur et relié à un réseau. Le terme a principalement connu le succés au milieu des années 80 avec l'arrivée d'ordinateurs qui représentaient à peu près le maximum de capacité informatique que l'on pouvait mettre à la disposition d'un utilisateur unique. Ces ordinateurs étaient sensiblement plus puissants que les PC disponibles à ce moment-là, comportaient un écran beaucoup plus confortable (souvent de 17 ou 19 pouces et de haute résolution, le plus souvent en noir et blanc; parfois en couleur si le service en avait les moyens), ainsi qu'une connexion réseau considérée comme « performante » à l'époque (10 mb/s!!!). Certaines sociétés se sont véritablement constituées en répondant aux besoins de ce marché particulier. Par exemple : Apollo (racheté depuis par HP) Sun Microsystems Silicon Graphics devenue aujourd'hui SGI après le rachat de Cray IBM fit une entrée remarquée sur le marché, bien que tardive, avec ses puissantes stations RS/6000 (15 janvier 1990). Avec l'augmentation régulière de la puissance de calcul, des cartes graphiques et des capacités des PC de haut de gamme, la distinction s'est progressivement estompée. Une station de travail n'est plus aujourd'hui (2004) qu'une machine UNIX qui tourne sur une plateforme d'architecture autre qu'Intel-AMD, en général munie d'un écran de grande taille 21", 23" ou davantage - Sony fabrique des écrans de 28") et de haute résolution (2048x1536 étant le bas de gamme). Les utilisateurs naturels des stations de travail étaient et restent des power users (« utilisateurs de puissance », pourrait-on traduire) qui ont des besoins extrêmes comme les applications de Conception Assistée par Ordinateur en 3D (avec moteurs de rendu genre OpenGL), ou plus récemment les applications de conception graphique et vidéo. 27