Systèmes d’exploitation
Chapitre1: Introduction
Introduction (1)
► Deux catégories de logiciels :
► Les programmes systèmes pour le fonctionnement des ordinateurs,
► les programmes d’application qui résolvent les problèmes des utilisateurs.
Introduction (2)
► Le programme « système d’exploitation » est le programme fondamental des programmes systèmes.
► Il contrôle les ressources de l’ordinateur et fournit la base sur laquelle seront construits les programmes d’application.
Définition
► Le système d’exploitation est l’ensemble de programmes centraux d’un système informatique qui coordonne et uniformise l’utilisation du matériel par les logiciels applicatifs.
► Il sert d’intermédiaire entre les logiciels applicatifs et le matériel et offre une manière unifiée d’exploiter les périphériques de l’ordinateur par l’intermédiaire d’interfaces de programmation banalisées.
Définition (suite)
► Un système d’exploitation sert:
► à coordonner l’utilisation du ou des processeurs, et accorder un certain temps pour l’exécution de chaque processus;
► à réserver de l’espace dans les mémoires pour les besoins des programmes
► et à organiser le contenu des disques durs ou d’autres mémoires de masse en fichiers et répertoires.
Modes de fonctionnement
► Deux modes de fonctionnement :
► Le mode noyau ou superviseur et
► le mode utilisateur (compilateur, éditeur, programmes utilisateurs …).
Composition d’un ordinateur
► Un ordinateur contient :
► Un ou plusieurs processeurs,
► une mémoire principale,
► des,
► des terminaux,
► des disques,
► des interfaces de connexion à des réseaux et
► des périphériques d’entrées/sorties.
Rôle d’un SE
La complexité évidente du matériel implique la réalisation d’une machine virtuelle qui gère le matériel : c’est le système d’exploitation.
Programmes d’applications
Réservation d‘avion
Jeu d‘aventure
Système bancaire Compilateurs
IIIIIIIIIIIIII
IIIIIIIIIII
Editeurs
Interpréteurs de
commandes (shell) Système d’exploitation
langage machine Microprogramme Dispositifs physiques
Matériel
Programmes systèmes
Couche : Matériel
► Dispositifs physique = Ils se composent de circuits intégrés, de fils électriques, de périphériques physiques …
► Microprogramme = C’est un logiciel de contrôle des périphériques (interprête).
► Langage machine = C’est un ensemble (entre 50 et 300) d’instructions élémentaires (ADD, MOVE, JUMP) pour effectuer le déplacement des données, des calculs, ou la comparaison de valeurs (également appelé ASSEMBLEUR)
Fonctions d’un SE
► DEUX FONCTIONS:
► MACHINE ETENDUE ou VIRTUELLE
► GESTIONNAIRE de RESSOURCES
Machine étendue ou encore machine virtuelle
Son rôle est de masquer des éléments fastidieux liés au matériel, comme les interruptions, les horloges, la gestion de la mémoire, la gestion des périphériques (déplacement du bras du lecteur de disquette) …
Gestionnaire de ressources
► Un ordinateur se compose de ressources (périphériques, mémoires, terminaux, disques …).
► Le système d’exploitation permet l’ordonnancement et le contrôle de l’allocation des processeurs, des mémoires et des périphériques d’E/S entre les différents programmes qui y font appel.
Exemples
► Par exemple 3 programmes essaient d’imprimer simultanément leurs résultats sur une même imprimante :
=> recours à un fichier tampon sur disque.
► Autre exemple, l’accès concurrent à une donnée ; lecture et écriture concurrentes (par deux processus) sur un même compteur.
Ce rôle de gestionnaire de ressources est crucial pour les systèmes d’exploitation manipulant plusieurs tâches en même temps (multitâches).
Plusieurs fonctionalités de gestion
► du processeur : allocation du processeur aux différents programmes.
► des objets externes : principalement les fichiers.
► des entrées/sorties : accès aux périphériques, via les pilotes.
► de la mémoire : segmentation et pagination.
► de la concurrence : synchronisation pour l’accès à des ressources partagées.
► de la protection : respect des droits d’accès aux ressources.
► des accès au réseau : échange de données entre des machines distantes.
Les différentes classes de systèmes d’exploitation
► Selon les services rendus
► Selon leur architecture
► Selon leur capacité à évoluer
► Selon l’architecture matérielle qui les supporte
Selon les services rendus
► mono/multi tâches : Multitâches : capacité du système à pouvoir exécuter plusieurs processus simultanément ;
► mono/multi-utilisateurs : Multiutilisateurs : capacité à pouvoir gérer un ensemble d’utilisateurs utilisant simultanément les mêmes ressources matérielles.
Selon leur architecture
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.
Selon leur architecture (2)
Systèmes répartis (distributed systems) :
► Les différentes abstractions du système sont réparties sur un ensemble (domaine) de machines (site).
► 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 offrent des solutions aux problèmes de la résistance aux pannes.
Selon leur capacité à évoluer
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).
► 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.
Selon leur capacité à évoluer (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 « clients-serveur».
► Cela implique aussi une communication entre systèmes, nécessitant des modules spécialisés.
Selon l’architecture matérielle qui les supporte
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.
Selon l’architecture matérielle qui les supporte (2)
Architectures multiprocesseurs (parallélisme) :
► On trouve une grande variété d’architectures multiprocesseurs :
► 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 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.
Selon l’architecture matérielle qui les supporte (3)
► On parle aussi d’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).
Remarques
► 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.
Un cas particulier: les systèmes « temps-réel »
► Ce sont des systèmes, essentiellement utilisés dans l’industrie, pour lesquels l’exécution des programmes est soumise à des contraintes temporelles.
► Les résultats de l’exécution d’un programme n’est plus valide au delà d’un certain temps connu et déterminé à l’avance.
Un cas particulier: les systèmes « embarqués »
► Ce sont des systèmes d’exploitation prévus pour fonctionner sur des machines de petite taille ou des appareils électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule, satellites, avions, trains, téléphones portables, etc.), possédant une autonomie réduite.
► Ainsi, une caractéristique essentielle des systèmes embarqués est leur gestion avancée de l’énergie et leur capacité à fonctionner avec des ressources limitées.
Exemples de SE
Système Codage utilisateur
Mono-
Multi- utilisateur
Mono- tâche Multitâche
DOS 16 bits X X
Windows 3.1 16/32 bits X non
préemptif
Windows 95/98/Me 32 bits X coopératif
Windows NT/2000 32 bits X préemptif
WindowsXP 32/64 bits X préemptif Unix / Linux 32/64 bits X préemptif MAC/OS X 32 bits X préemptif VMS 32 bits X préemptif
télécharger gratuitement cours Systèmes d’exploitation