Systèmes d’exploitation cours

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 davion 

Jeu daventure 

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 

Quitter la version mobile