Chapitre 1 : Introduction aux systèmes d`exploitation - e
Transcription
Chapitre 1 : Introduction aux systèmes d`exploitation - e
Chapitre 1 : Introduction aux Systèmes d’Exploitation (SE) 1. Introduction . 1 système informatique est un ensemble constitué de matériels et de logiciels et qui assure le traitement des données. . Les pgms exécutés sur un ordinateur sont habituellement classés, selon leur fonction, sous les 2 rubriques de logiciels de base et de logiciel d'application. . Le SE constitue une part importante du logiciel de base. Logiciel d’application Logiciel de base Matériel Système informatique Matériel (Hardware) Logiciel (Software) Logiciel de base Outils de développement & d’exécution de pgms (Compilateurs, Interpréteurs, chargeur, utilitaires, …) Logiciel d’application (Trait. de textes, logiciel de comptabilité, …) SYSTEME D’EXPLOITATION (SE) Schéma d'1 système informatique . Les logiciels d'applications résolvent les problèmes des utilisateurs. . Le SE –et le reste du logiciel de base- fournit la base sur laquelle seront construits les logiciels d'applications de la façon la plus efficace possible. . Le SE fournit aux autres pgms d'ordinateurs les éléments de base dont ils ont besoin pour fonctionner. . Le SE est mis en route dès qu'on met l'ordinateur en marche. C'est le seul pgm qui tourne constamment dans 1 machine et il constitue une interface entre l'utilisateur et la machine physique. 1 2. Définition & opportunité d’1 SE . Définition : Le SE (Operating System : OS) est 1 logiciel dont l’objectif est de libérer l’utilisateur d’1 ordinateur de la complexité de la programmation du matériel. Il propose 1 gestion flexible et optimisée de ses différents composants (processeur, affichage, stockage, …). . Un SE est un intermédiaire entre un ordinateur et les applications qui utilisent cet ordinateur. . Le SE est la première couche logicielle au dessus du matériel. Machine Utilisateur OS Permet une utilisation Pratique de l'ordinateur Fournit une indépendance vis-à-vis du matériel Permet d'utiliser efficacement les ressources matérielles . 2 aspects complémentaires d’un Système d’Exploitation (SE) : 1. Adaptation d’interface : Le système présente à ses usagers une interface mieux adaptée à leurs besoins que celle directement fournie par le matériel : - Il cache les détails de mise en œuvre ; - Il cache les limitations physiques et le partage des ressources entre plusieurs utilisateurs. Le SE réalise une machine virtuelle. 2. Gestion des ressources : Pour satisfaire les besoins des pgms d’applications, le système gère les ressources matérielles et logicielles : mémoire, processeurs, pgms, communications. Cette gestion comprend l’allocation, le partage et la protection. . On trouve des SE sur : - Les ordinateurs : Unix / Linux, Windows, MacOS, … - Des appareils divers : téléphone portable, …. (Windows CE, PalmOS, …) . Fonctions d’1 SE : - Gestion d’activités // et coopérantes ; = d’information ; = des communications ; Protection. 2 . Qualités requises d’1 SE : - Utilisation efficace des ressources ; Fiabilité ; Tolérance aux fautes ; Qualité de l’interface ; Bonne intégration au réseau ; Sécurité & protection ; Répertoire étendu des fonctions. . Un SE présente en général 2 interfaces : 1. Interface de programmation ou API (Application Programming Interface) : - Utilisable à partir des pgms s’exécutant sous le système. - Composée d’1 ensemble d’appels système (appel de procédures avec paramètres). 2. Interface Utilisateur ou interface de commande : - Utilsable par 1 usager humain, sous forme textuelle ou graphique. - Composée d’1 ensemble de commandes (Textuelle : Eg. Sous Unix : rm *.c, Graphique : Eg. Déplacer l’icône d’1 fichier vers la corbeille). Pgm UT Open (fichier) open chdir Interpréteur >cd .. de commandes >print print Appels système SGF Gestion des E/S SE … 3 3. Evolution des SE Les SE ont évolués parallèlement aux ordinateurs sur lesquels ils fonctionnent. Cette évolution a conduit à l’introduction de plusieurs concepts successifs, qui sont à la base des systèmes actuels. Une présentation des étapes principales dans le chemin parcouru par les SE permet de mieux comprendre ces concepts et leur motivation. 3.1 Exploitation à portes ouvertes * Au départ, les premiers ordinateurs n’avaient pas à proprement parler de SE. * Chaque utilisateur se réservait l’usage de la machine pour une période donnée qu’il doit estimer à l’avance. Il disposait alors entièrement de toutes les ressources. * L’exécution d’1 pgm consistait à mettre dans le lecteur de cartes un paquet contenant le pgm suivie des données. Après lecture du pgm, l’ordinateur en lançait l’exécution, les résultats étant obtenus sous forme d’1 paquet de cartes perforées ou de lignes imprimées. Lecteur de Cartes Ordinateur Perforateur de cartes Imprimante * En cas de mise au point (au pupitre), la configuration –chère- reste inutilisée pendant tout le temps de réflexion de l’utilisateur. * 1 pgm d’amorçage (bootstrap) permet d’initialiser la configuration avant chaque utilisation et de placer en mémoire les éléments de bibliothèque. Définition : L’amorce (bootstrap) est 1 petit pgm qui est chargé en mémoire en une seule opération d’entrée lors de la mise en route de l’ordinateur et dont l’exécution permet le chargement et le lancement d’1 pgm plus important. * Apparition des premiers outils du logiciel de base : assembleurs, compilateurs (Eg. : FORTRAN), … * Avantage : L’utilisateur pouvait interagir avec son pgm mise au point relativement facilitée. * Problèmes : - Seul l’enchaînement des instructions d’1 pgm est automatique. - Faible débit Le matériel était en général sous-utilisé du fait des manipulations humaines entre 2 activités + L’UC était oisif entre 2 exécutions du pgm + L’UC était oisif entre le départ d’1 utilisateur et l’arrivée d’un autre. - Pas de langage de commandes. 4 3.2 Systèmes à enchaînement automatique des travaux = Solution aux problèmes de réservation et de temps de préparation. * Apparition des dérouleurs de bandes magnétiques. * Pour améliorer la rentabilité des machines, on a imaginé l’introduction du moniteur d’enchaînement des travaux, qui est 1 pgm particulier activé automatiquement à la fin de l’exécution de chaque pgm utilisateur et dont le but est d’assurer alors la lecture en mémoire et le lancement du pgm utilisateur suivant. Moniteur Lecteur de Cartes Imprimante Programme 3.3 Traitement par lots (Batch Processing System) * Les opérations d’E/S relatives aux cartes et aux imprimantes sont, en général, longues par rapport aux performances de la machine Nécessité d’améliorer la rentabilité de l’ordinateur de traitement. * 1 opérateur professionnel est engagé pour s’occuper du système. * L’opérateur regroupe 1 suite de travaux en 1 lot (fournée) qui sera soumis à la machine Train de travaux (Batch). * Le traitement par lots consiste à : - Transférer les travaux sur 1 bande magnétique et à monter la bande sur le lecteur de bandes ; - Faire lire cette bande, à la place des cartes, par le moniteur d’enchaînement des travaux ; - Imprimer les résultats. * Ce mode d’exploitation nécessitait 2 ordinateurs : - la plus puissante était réservée aux calculs ; - et l’autre, bon marché, s’occupait des périphériques lents. entrées Ordinateur d’entrée-sortie ordinateur principal traitement sortie 5 3.4 Introduction du parallélisme (1960-1965) a) Les E/S tamponnées * Introduction des processeurs spécialisés qui prenait en charge les opérations d’E/S de façon autonome Utilisation d’Unités d’Echanges (UE) capables de fonctionner simultanément avec l’UC. * Principe : Les cartes sont lues par l’UE et stockées dans des tampons (buffers) d’entrée. L’UC lit les données dans le tampon et produit le résultat dans le tampon de sortie. * Conséquence : Suppression de l’ordinateur secondaire. * Ce mode de fonctionnement n’a été rendu possible que par l’introduction du mécanisme d’interruption (IT). Ce dernier permet à 1 dispositif extérieur d’arrêter momentanément le déroulement normal d’1 pgm pour exécuter 1 traitement spécifique. * - L’arrivée sur le marché des unités de disques (et des tambours magnétiques à des prix abordables) Possibilité de transférer les travaux vers les disques dès leur arrivée dans la salle machine. - Les jobs sont lus et stockés sur disque au fur et à mesure de leur soumission aux opérateurs : C’est la notion de SPOOLING (Simulatneous Peripheral Operation On-Line). Le SPOOL consiste à créer des fichiers-disque qui correspondent aux jobs soumis et qui sont utilisés par le moniteur au moment de l’exécution, à la place des supports d’informations lents. b) La multiprogrammation * Coexistence de plusieurs jobs sur disque grâce au SPOOLING Accès direct à n’importe lequel de ces travaux ; Il est possible de changer l’ordre d’exécution. * La multiprogrammation consiste à mettre plusieurs pgms en mémoire centrale au même moment de façon à pouvoir exécuter l’un d’entre eux pendant que les autres sont en attente de la fin d’1 entrée/sortie. 3.5 Amélioration de l’Interface-Homme-Machine (1965-1980) a) Le temps partagé * Extension logique de la multiprogrammation. * Le temps partagé (Time Sharing) consiste à partager dans le temps les ressources de la machine entre les utilisateurs de telle sorte que chacun d’eux ait l’impression d’avoir la machine pour lui tout seul. b) Le transactionnel * Ici, le système s’adresse aux utilisateurs qui désirent exploiter des applications spécifiques orientées vers la saisie et la consultation d’informations conservées dans des fichiers. * Le partage d’informations est ici fondamental ainsi que la mise en œuvre des mécanismes de sauvegarde appropriés. c) Les autres systèmes * Réseaux, systèmes distribués, ordinateurs individuels (PC) : 1970 – 1980 ; * Stations de travail, réseaux locaux : 1980 – 1990 ; * Multitraitement (multiprocesseurs), multimédia, réseaux hétérogènes (OSI, Internet) ; * ………. 3.6 Systèmes parallèles, distribués et temps-réel * Un système parallèle comprend plusieurs processeurs qui partagent les mêmes ressources matérielles (bus, mémoire, périphériques, ..). 6 Caractéristiques : - Capacité de traitement ; - Fiabilité La panne d’un processeur n’arrêtera pas le système. * Un système distribué (réparti) est un système qui s’exécute sur un ensemble de machines sans mémoire partagée, mais que pourtant l’utilisateur voit comme une seule et unique machine. * Un système à temps réel est principalement utilisé pour des applications dédiées ( Eg. : Contrôle d’1 centrale nucléaire, robotique industrielle, système de vision, ….) où le temps joue un rôle critique. 4. Terminologie des SE 4.1 Classifications fréquentes des SE a) Selon les services rendus * Montâche / Multitâche : - Système multitâche : A tout instant, un seul programme est exécuté Un autre programme ne démarrera –sauf conditions exceptionnelles- que lorsque le premier sera terminé. - Multitâche : Capacité du système à pouvoir exécuter plusieurs processus (i.e programmes en cours d’exécution) simultanément (système multiprocesseurs) ou en pseudo-parallélisme (système en time sharing). * Mono-Utilisateur / Multi-Utilisateurs : Multi-utilisateurs : Capacité du système à pouvoir gérer un ensemble d’utilisateurs utilisant simultanément les mêmes ressources matérielles. Un SE ne possédant pas cette fonctionnalité est dit mono-utilisateur. * Systèmes temps réel. b) Selon leur architecture * Systèmes centralisés (traditionnels) - 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. * Systèmes distribués (répartis) (Distributed Systems) c) Selon leur capacité à évoluer * Systèmes fermés (ou prioritaires) * Systèmes ouverts. d) Selon l’architecture matérielle qui les supporte * Architecture monoprocesseur (time sharing ou multiprogrammation) * Architecture multiprocesseurs (parallélisme). e) Autre classification (par grandes fonctions) * Systèmes pour machines clientes * Systèmes pour serveurs * Systèmes de réseaux 7 * Systèmes enfouis. 4.2 Exemples / Quelques SE - MULTICS / UNIX / CTSS / THE / CMS / SOLARIS, HPux, AIX / CP/M, MS-PC/DOS, MacOs / Windows 9x, Me / Windows NT, 2000, XP, 2003 / Windows CE / Linux / Mach, Chorus, Amoeba / ……. 5. Structures des SE 5.1 Notion de machine virtuelle - Le SE réalise une machine virtuelle au-dessus de la machine matérielle permettant à l’UT de s’abstraire des détails de mise en œuvre du matériel. - Rappel : Les 6 couches de la plupart des ordinateurs actuels Niveau 5 Couche des lgs évolués Traduction (Compilateur) Niveau 4 Couche du lg d’assemblage Traduction (Assembleur) Niveau 3 Couche du SE Interprétation (partielle) (SE) Niveau 2 Couche machine traditionnelle (langage machine) Interprétation (microprogramme) Niveau 1 Couche microprogrammée Exécution directe du microprogramme (des micro-instructions) par le matériel Niveau 0 Couche physique Un ordinateur peut être vu comme un ensemble de couches : Chaque couche englobant toutes les couches de niveau inférieur. - La machine virtuelle est l’image de l’ordinateur plus simple à comprendre et surtout à utiliser. 8 5.2 Structuration des SE a) Structure fonctionnelle d’un système Utilisateurs Utilisateurs Applicatif Programmes applicatifs Production Assembleur Compilateur EDL Chargeur Débogueur Noyau Accès au matériel Programmes utilitaires Ateliers de programmation Système d’Exploitation Gestion Gestion Processeur Mémoire Gestion Périph. Gestion Comm. Gestion Données Machine Matériel b) Architecture générale des OS modernes Gestion des fenêtres Interface graphique Gestion des ressources graphiques Couche Utilisateur Interface simplifiée, ligne de commande Fonctions de haut niveau du système Gestion des E/S Gestion du réseau Fonctions de base / Services fondamentaux Gestion mémoire Gestion des processus Gestion des fichiers 9 c) Quelques structures des SE • Monolithiques ( MS-PC/DOS) • A couches ( OS/2) • Client/Serveur (Windows NT) • A micro-noyau (Mach) • A machines virtuelles (JVM) • ……. 5.3 Modèle en couches d’un SE moderne : Eg. d’UNIX Les couches permettent d’identifier clairement les niveaux d’interdépendance entre les fonctions fournies par le SE. Utilisateurs Utilitaires (Shell, éditeurs, compilateurs, …) Bibliothèque standard (appels système) Noyau (Gestion des processus, de la mémoire, des fichiers, des E/S, …) Matériel (CPU, mémoire, disques, terminaux, …) En général, les SE se composent des 04 parties principales suivantes : • • • • La gestion des processus La gestion de la mémoire La gestion des fichiers La gestion des périphériques d’E/S. 10