LE SYSTEME D’EXPLOITATION
 
INTRODUCTION
FINALITES DU SYSTEME D’EXPLOITATION
FONCTIONS DU SYSTEME D’EXPLOITATION
CLASSIFICATIONS DES SYSTEMES
LES QUALITES D’UN SYSTEME
STRUCTURE D’UN SYSTEME D’EXPLOITATION
ENCHAINEMENTS DES PROCESSUS - PARALLELISME
LE SYSTEME DE GESTION DE FICHIERS
LE MULTIPROCESSING
UNIX
WINDOWS NT (MICROSOFT)
WINDOWS 95/98 (MICROSOFT)
 
[Précédent] [Home Page]

Introduction
Le système d’exploitation d’un ordinateur ou d’une installation informatique est un ensemble de programmes qui remplissent deux grandes fonctions :
- gérer les ressources de l’installation matérielle en assurant leurs partages entre un ensemble plus ou moins grand d’utilisateurs
- assurer un ensemble de services en présentant aux utilisateurs une interface mieux adaptée à leurs besoins que celle de la machine physique

Un système informatique est un ensemble de matériels et de logiciels destiné à réaliser des tâches mettant en jeu le traitement automatique de l’information.
La communication d’un tel système avec le monde extérieur est assurée par des organes d’accès ; ceux ci permettent également une interaction avec des dispositifs physiques que le système informatique est chargé de surveiller ou piloter.
La fonction d’un système informatique est la fourniture de prestations (services) capables d’aider à la réalisation de problèmes usuels :
- gestion de l’information : stockage, désignation, recherche, communication, protection contre les intrusions ou les incidents;
- préparation et mise au point de programmes;
- gestion de l’ensemble des ressources pour permettre l’exploitation des programmes (c’est-à-dire création d’un environnement nécessaire à l’exécution du programme);
- gestion et partage de l’ensemble des ressources (matériels, informations, ...) entre l’ensemble des usagers;

On peut considérer que cet ensemble de prestations, fournies par le système d’exploitation, constitue pour l’usager de ce système, une machine nouvelle qualifiée d’abstraite ou de virtuelle, par opposition à la machine physique réalisée par l’assemblage de composants matériels.
 

Logiciel d’application
Logiciel de base
Machine physique
 

Le logiciel de base peut lui-même être décomposé en deux niveaux :

 -----> Les outils et services (compilateurs, chargeurs, éditeurs, utilitaires, ...)
 -----> Le système d’exploitation

Retour au menu

Finalités du système d’exploitation

- Gestion des informations : stockage, recherche protection
- Gestion des ressources matérielles et logicielles : optimisation, sécurité, exécution des applications, partage entre usager
- Assurer une sécurité vis à vis du matériel et personnel
- Rendre compte de l’activité de la machine

Retour au menu

Fonctions du système d’exploitation

Les principales fonctions du système d’exploitation peuvent être classées hiérarchiquement :

 
Retour au menu

Classifications des systèmes

Différents types de classifications sont utilisés :

 - par la méthode d’accès au système par l’usager,
 - par sessions : ce sont les systèmes transactionnels ou conversationnels (ex : réservation d’un billet SNCF)
 - par requête : temps réel
 - par travaux (batch) : traitement par lots (ex: mise à jour des comptes bancaires la nuit)

 - par le genre d’applications des usagers
 - développement de programmes
 - manipulation des données

 - par la configuration matérielle
 - un seul processeur : système monoprocesseur
 - plusieurs processeurs : système multiprocesseur
 - basée sur un réseau : système réseau

 - par la politique de partage des ressources physiques et logiques
 - partage de la mémoire entre plusieurs programmes : système multiprogrammé
 - partage du temps processeur entre les programmes en exécution : temps partagé (partage par quantum de temps) ou temps réel (partage par priorité des taches)

 - par le nombre d’usagers simultanés
 - système monoposte
 - système mulitposte

Retour au menu

Les qualités d’un système

- La fiabilité : limiter les conséquences des défaillances matérielles ou des erreurs des utilisateurs. En cas de panne, éviter les pertes d’information ou leur incohérence.
- Efficacité : Utiliser au  mieux les ressources et possibilités matérielles (sans en consommer trop pour lui-même)
- Facilité d’emploi : Offrir un langage de commande (dialogue usager/système) et des diagnostics d’erreurs (système/usager) clairs et précis
- Adaptabilité : permettre des modifications matérielles et logicielles les plus simples possibles, à l’aide d’outils spécialisés
- Mesurabilité : Enregistrer la comptabilité des ressources utilisées par les usagers, mesurer les paramètres de fonctionnement et de charge

Retour au menu

Quelques systèmes d'exploitation
 
Caractéristiques
DOS
MAC OS
(Apple)
WIN 95/98
WIN NT 4
UNIX
(ex : AIX, LINUX, SOLARIS...)
GCOS
(BULL)
Ouvert
 
 
 
 
X
 
Monotâche
X
 
 
 
 
 
Multitache
 
X
X
X
X
X
Mono-utilisateur
X
X
X
X
 
 
Multi-utilisateur
 
 
 
 
X
X
Multiprocesseurs
 
 
 
X
X
X
Retour au menu

Structure d’un système d’exploitation

Le noyau
Les fonctions principales du noyau sont :
L’allocateur (dispatcheur) du CPU qui est responsable de la répartition du temps disponible de l’unité de traitement entre les différents processus. La priorité d’un processus est attribuée par le planificateur (scheduleur) selon l’urgence et les ressources requises. L’allocateur doit aussi sauvegarder l’état de la machine lorsque le processus s’interrompt et indiquer au CPU le processus suivant ; le processus interrompu est sauvegardé dans un bloc d’information appelé vecteur d’état ou descripteur.
La gestion des interruptions dont la tâche est de déterminer la source de l’interruption et d’activer la procédure de service correspondante.
Le support de l’environnement des processus dont le rôle du noyau, dans la synchronisation des processus est généralement limité à l’implantation des deux primitives WAIT (décrémente le sémaphore S d’une unité mais n’est jamais négative) et SIGNAL (incrémente S d’une unité) utilisées par les niveaux supérieurs du système. Ces deux opérateurs maintiennent un compteur (S) et assurent la suspension et la réactivation des processus.

Gestion de la mémoire centrale
On peut distinguer différentes façons de gérer la mémoire centrale :

Les partitions de taille fixe qui consistent à découper la mémoire physique en partitions fixes, mais pas nécessairement de tailles identiques, et qui sont fixées à la génération du système. Cela occasionne un gaspillage de mémoire du fait de la différence entre les tailles des jobs et des partitions.

Les partitions de taille variable qui adaptent les partitions à la taille des programmes. Le problème commence lorsqu’un programme termine son exécution, il crée un trou qui ne correspond pas forcément à la taille d’un processus en attente. Pour éviter cela, on réalise une opération de compactage (réallocation ou relocation) qui réalise une translation dynamique des programmes. Elle est réalisée à l’aide des registres de base et du dispositif calculant, au moment de l’exécution, l’adresse effective (adresse effective = adresse de base + adresse relative au début du programme).

La translation dynamique et protection consiste à comparer l’adresse effective calculée avec les adresses extrêmes de la zone allouée au programme, stockées dans des registres bornés. Cela comporte quatre dispositifs (registre de base, registre de bornes, dispositif de calcul de l’adresse effective, dispositif de vérification de l’appartenance de l’adresse effective à la zone mémoire du processus). Grâce à ces dispositifs, le système peut déplacer un programme et retasser la mémoire. Les processus inactifs peuvent ainsi être mis en attente (SWAPPING) et remplacés par d’autres. Les inconvénients sont le temps utilisé pour retasser la mémoire et l’exigence d’allouer à chaque processus une zone mémoire d’un seul tenant.

La segmentation consiste à diviser un programme en segment correspondant à une entité logique telle une procédure ou un bloc de données. Le système gère un ensemble de tables de segments, contenant les adresses de chargement des segments de chaque programme (une par job), afin de savoir où ils sont stockés. L’adresse contient deux champs (le numéro du segment et le déplacement à l’intérieur du segment).

La mémoire virtuelle consiste à traiter séparément les adresses référencées par un programme (adresse virtuelles) et les adresses de la mémoire physique (adresses réelles). C’est un espace mémoire qui n’existe pas mais qui peut être utilisé par le programmeur comme modèle de mémoire centrale à sa disposition.

La pagination, nécessaire pour réaliser une mémoire virtuelle, consiste à découper les deux espaces adresses (réel et virtuel) en pages de la même taille et à mettre en œuvre un mécanisme de transfert de page entre la mémoire virtuelle et réelle.

Organisation des entrées-sorties
La difficulté provient de causes matérielles et de facteurs objectifs mais aussi de la gestion optimale des ressources et de la simplification de la tâche de l’utilisateur .
Ex :

Tous ces objectifs sont réalisés par le système d’exploitation en confinant tous les traitements particuliers dans des modules spécialisés appelés gestionnaires de périphériques. Pour ceci, on distingue quatre sous-niveaux logiciels :
Des procédures standards (programmes de bibliothèque) utilisés par les applications et contenant des requêtes au superviseur provoquant le passage au mode privilégié.
Un logiciel d’entrées-sorties indépendant des périphériques.
Des drivers commandant chaque unité périphérique.
Des programmes de service des interruptions agissant en collaboration avec les fonctions du noyau.

Retour au menu

Enchainement des processus - Parallélisme

Considérons deux programmes distincts P et Q et leurs processus associés p et q.
L’exécution de l’ensemble (p,q) peut se dérouler de diverses manières, caractérisées par des formes particulières de sa trace temporelle :

(1) -------- p --------------
                                          ----------q------------

(2) --p--     --p--     --p--     --p--
            --q--     --q--     --q--

(3) -----p----------
     ----------q---------

Les différentes schémas se caractérisent comme suit :
- schéma 1 : on exécute entièrement un processus, puis l’autre, par exemple p d’abord;
- schéma 2 : on exécute alternativement une suite d’instructions de p, puis une suite d’instructions de q, et ainsi de suite jusqu’à la fin des deux processus;
- schéma 3 : l’exécution de p et q est simultanée; ce schéma nécessite deux processeurs distincts.

 Pour comparer ces schémas d’exécution, il est commode d’introduire la notion de niveau d’observation. On peut ainsi considérer une suite d’actions d’un processus comme une action unique, c’est-à-dire observer le déroulement du processus en prenant une unité d’exécution moins fine que l’instruction. Par exemple, si on redéfinit l’action élémentaire comme l’exécution d’une procédure, la trace du processus ne comporte que les états à chaque appel ou retour de procédure. Le niveau d’observation le plus fin (celui des instructions) est appelé niveau de base.

Plaçons nous d’abord à un niveau d’observation où, par convention, l’exécution complète de chacun des programmes P et Q représente une action unique. Les définitions qui suivent sont relatives à ce niveau :
- le schéma de type 1 est celui d’une exécution séquentielle de p et q. La fin d’un processus entraîne le début d’un autre
- les schémas de type 2 et 3 sont des schémas d’exécution parallèle.

Revenons au niveau de base. On peut alors faire une distinction entre les schémas 2 et 3. En effet, dans le schéma 2, en raison de l’unicité du processeur, une seule action peut-être en cours à un instant donné, contrairement au schéma 3. On dit qu’il y a parallélisme réel dans le schéma 3, pseudo-parallélisme dans le schéma 2. Le parallélisme réel nécessite deux processeurs distincts.

Exemple : Les usagers d’un système d’exploitation fonctionnant en temps partagé sur un monoprocesseur ont l’impression que leurs programmes s’exécutent en parallèle car leur niveau d’observation est celui de commandes composées de nombreuses instructions. En revanche, au niveau de base, ces instructions sont atomiques et sont exécutées séquentiellement par le processeur.

La situation décrite par les schémas 1 et 2 ne résulte pas d’un lien logique entre p et q, mais seulement de l’unicité du processeur. Elle peut être caractérisée comme suit : soit un ensemble de processus dont les contextes ont en commun un objet tel qu’à un instant donné un seul processus puisse l’utiliser. On dit alors que cet objet constitue pour les processus une ressource critique, ou que les processus sont en exclusion mutuelle (ou encore en compétition) pour l’usage de la ressource. Dans la situation décrite, le processeur est une ressource critique pour les processus p et q.

Retour au menu

Le système de gestion de fichiers

Le SGF joue le rôle  central dans un système d’exploitation car il doit gérer la plupart des informations des usagers et du système lui-même.
Il a des liens étroits avec le système d’E/S (Unix a trouvé conceptuellement intéressant commode de ne pas faire la différence entre un fichier et un périphérique).

La conservation des fichiers et la réalisation des fonctions d’accès impliquent la prise en charge par le SGF de :
- la gestion du support physique en masquant à l’utilisateur les détails de l’organisation physique de ses fichiers
- la sécurité et la protection des fichiers, c’est à dire la garantie de leur intégrité en cas d’incident ou de malveillance et le respect des règles d’utilisation fixées (droits d’accès, conditions de partage...)

Retour au menu

Le multiprocessing

Le multiprocessing englobe plusieurs technique qui consistent à utiliser plusieurs processeurs en parallèle pour effectuer des taches qui demande une grande puissance de calcul, ou pour parer à d’éventuelles défaillances du processeur, ce qui est assez rare.

SMPNSP
On utilise 2 processeurs qui se partagent la mémoire, le bus, les disques etc.. Il faut pour cela que le système d’exploitation puisse gérer plusieurs processeurs (WINDOWS NT™ ou Novell avec SMP) et que bien sur les programmes soient développés afin d’utiliser pleinement cette technique. Malgré cela, il y a un risque de saturation du bus ou de la mémoire.

Il existe alors une variante de cette technique. Chaque processeur a sa propre mémoire. De ce fait, les processeurs ne vont pas polluer la mémoire des autres. Le système est donc plus stable. Cette technique est utilisée dans les serveurs de très haut de gamme car c’est une solution onéreuse.

Clusters
On relie des machines qui peuvent être de milieux de gamme par des connexions à très haut débit. On gère ces machines de manière à ce que l’utilisateur final ne les aperçoive que comme une seule et unique machine. C’est une solution moins onéreuse mais dont la tolérance aux pannes est moins bonne.

Retour au menu

UNIX

Principales caractéristiques :

Quelques commandes

pwd : pour connaître sa position dans l’arborescence
cd <nom de répertoire> : pour se déplacer dans l’arborescence
ls : pour voir le contenu du répertoire
man <commande> : pour connaître la syntaxe d’une commande
cat <fichier> : pour voir le contenu d’un fichier
write <nom utilisateur> : pour envoyer des messages à un autre utilisateur
who : pour savoir qui est connecté à la machine
etc...

Les avantages d'Unix

Les faiblesses d’Unix Retour au menu

Windows NT (Microsoft)

Généralités
Il y a deux versions de WINDOWS NT™

WINDOWS NT™ Workstation (WK)
Destiné plus particulièrement aux postes de travail clients, mais il peut également gérer un petit réseau local. Il est vendu avec une seule licence d’utilisation comme poste de travail. Il ne dispose pas de tous les utilitaires et fonctions, présents sur la version serveur, pour être utilisé comme serveur dans un grand réseau.

WINDOWS NT™ Server (SR)
Cette version est destinée a gérer un réseau de grande taille. Il intègre les fonctions client-serveur. Il est vendu avec une licence serveur et 5 licences postes de travail. En raison des fonctions qu’il est amené à exécuter (serveur de fichier, serveur d’application) il nécessite une machine plus performante que son petit frère Workstation.

Caractéristiques :

Inconvénients du système Informations techniques

Portabilité du système
Entre la couche système et la couche hardware de WINDOWS NT™, le concepteur a implémenté une couche nommée HAL (Hardware Abstraction Layer). Cette couche est la seule partie à modifier pour faire fonctionner WINDOWS NT™ sur différents processeurs comme Intel™, Alpha, Power PC, Mips etc.. Bien entendu, c’est le fabricant de la machine qui doit implémenter la couche nécessaire pour le bon fonctionnement du logiciel sur sa plate-forme. WINDOWS NT™ WK et NT SR ont la possibilité de gérer respectivement jusqu’à 2 et 4 microprocesseurs. Cette limitation est aussi définie dans cette couche HAL. Ainsi certains fabriquants fournissent avec leurs serveurs, une version de NT capable de gérer jusqu'à 8 microprocesseurs ou plus.

Reconnaissance de systèmes de fichier
WINDOWS NT™ est  capable de gérer les systèmes de fichier FAT, NTFS et HPFS.

FAT (File Allocation Table)
C'est le type de partition standard de DOS Windows™ 3.X et Windows™ 95. Il est mieux adapté à des partitions de petites tailles (~300Mb). Fat limite la taille maximum de la partition à 2Go. Il existe une nouvelle version de la FAT appelée FAT 32 qui vient de paraître et qui repousse cette limite à quelques milliards de Go. Elle est incluse dans la nouvelle version de Windows 95 OS/R2. FAT est un système de fichier très mauvais en matière de sécurité. On ne peut pas faire d’audit, pas de gestion des droits, mais une fonction Undelete est implémentée ce qui permet de récupérer un fichier ou répertoire effacé par mégarde.

NTFS (New Technology File System)
C'est un système non plus basé sur une table mais sur une structure arborescente de type arbre binaire (Btree). Ceci permet un accès aux fichiers beaucoup plus rapide qu’avec FAT. La barrière des 2Go de partition n’existe plus puisqu’elle est maintenant limitée à 16 milliard de Go. Ce qui est largement supérieur aux besoins actuels du marché. En terme de sécurité NTFS permet d’associer des droits (lecture, écriture, effacement etc.) à chaque fichier,  groupes de fichiers ou répertoires ainsi qu’a chaque utilisateur. Il permet de faire une audit sur les fichiers ou répertoires, ce qui permet de savoir qui a effectué une opération sur un fichier (effacement, création, lecture...). NTFS possède également des fonctions de tolérances de pannes et de RAID. Malheureusement NTFS n’a pas de fonction Undelete. On ne peut pas formater une disquette NTFS. NTFS n’est pas compatible avec FAT.

HPFS (High Performance File System)
C'est le système utilisé par IBM™ corp. Pour son système d’exploitation OS/2. WINDOWS NT™ est capable de lire et écrire sur ce type de partitions. C’est aussi une  partition 32 bits qui comprend des fonctions de sécurité. Elle n’est absolument pas compatible avec FAT ni même NTFS.
 

Retour au menu

Windows 95 - Windows 98 (Microsoft)

C’est le système d’exploitation le plus vendu au monde actuellement : il équipe la majorité des Pcs.
Il succède au système Dos/Windows  mais assure la compatibilité.

Caractéristiques :

Le système de fichier FAT et FAT32

FAT : File allocation Table. C'est une structure de données qui permet au système de gérer l'espace disque, les zones libres, occupées et leur allocation à des fichiers ou des répertoires.

Les premières versions de Windows95 ainsi que toutes les versions de DOS utilisaient un système de fichier appelé FAT16 (voire FAT12 pour les plus anciennes). Cette table avait 2^12 (4096) ou 2^16 (65536) entrées qui représentent chacune une unité élémentaire d'espace disque. Quand le système de fichier à besoin de place disque, il s'alloue donc des clusters (ensembles de secteurs physiques du disque, généralement de 512octets). 65536 clusters pour une partition de plus d'1 Go nous donne donc des clusters de 32 Ko. Cela signifie en particulier qu'un fichier de 100 octets utilisera un cluster entier sur votre disque dur (jusqu'à 32 Ko pour une partition de plus d'1 Go). Certains utilitaires de compression de disque peuvent (Stacker par exemple) peuvent mettre plusieurs fichiers dans un même cluster.
Il n'est pas rare d'avoir 15000 fichiers sur un disque de 2 Go, ce qui peut représenter une perte de 250 Mo (plus de 10 %). Si vous voulez savoir combien vous perdez de place, essayez chkdrv.

La table ci-dessous récapitule la taille des clusters en fonction de la taille des partitions (pour les dos >= 4.0) avec FAT16
 
taille de la partition en Mo <128 <256 <512 <1024 <2048
taille du cluster      en Ko 2 4 8 16 32
la FAT16 ne sait pas gérer de partition au delà de 2 Go

la FAT32 permet de gérer des disques jusqu'à 2 Téra octets avec les tailles de cluster suivantes :
taille de la partition en Go <8 <16 <32 >32
taille du cluster      en Ko 4 8 16 32
La taille minimale d'une partition sous la FAT32 est de 512 Mo.

Quel OS supportent la FAT32 ?
A priori, seuls Windows95 OSR2 et Linux supportent la FAT32. Il est impossible de l'utiliser avec une version antérieur de Windows ou avec WindowsNT (La version 5 devrait le permettre).

Quelle est l'influence de la FAT32 sur les performances disques ?
D'après Microsoft, l'influence de la FAT32 sur les performances est négligeable pour la majorité des utilisateurs. Certains programmes peuvent gagner un peu en vitesse du fait de la FAT32, d'autres, surtout qui font de larges accès séquentiels en lecture ou en écriture, peuvent être légèrement pénalisés
Des benchmarks montrent en général quelques pour cents de dégradation sur les performances disques. Cela peut s'expliquer très simplement par l'augmentation du nombre de clusters pour les grandes partitions et est vrai pour tous les systèmes de fichiers.

Retour au menu