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 horloges, 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.
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
Publicité
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
Publicité
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.
Publicité
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
Mono- utilisateur
Multi- utilisateur
Mono- tâche
Multitâche
DOS
16 bits
Windows 3.1
Windows 95/98/Me
Windows NT/2000
16/32 bits
32 bits
32 bits
X
X
X
WindowsXP 32/64 bits Unix / Linux MAC/OS X
32/64 bits
32 bits
VMS
32 bits
X
non préemptif
coopératif
préemptif
préemptif
préemptif
préemptif
préemptif
X
X
X
X
X