chapitre i : introduction aux systèmes d'exploitation filesystèmes d’exploitation i...

Post on 11-Sep-2018

255 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Systèmes d’Exploitation I

Chapitre I :

Introduction aux systèmes d'exploitation

Amine DHRAIEF

18/01/18 OS I 2

Lectures● Chapitre 1 Introduction. Avi Silberschatz, Peter Baer

Galvin, and Greg Gagne. Operating System Concepts Ninth Edition. John Wiley & Sons, Inc., 2012.

● Chapitre 1 Computer system overview. William Stallings. Operating Systems : Internals and Design Principles. Prentice Hall, SEVENTH EDITION, 2011.

● Chapitre 1 Introduction. Andrew Tanenbaum. Systèmes d’exploitation. Pearson 3e Ed, 2008.

18/01/18 OS I 3

Est-ce qu'il y a une définition d'un OS ?

18/01/18 OS I 4

Introduction● Un système d'exploitation (Operating System OS) :

– un programme qui gère le hardware– Intermédiaire entre l'utilisateur et le hardware

● Selon les exigences des équipements des OS différents– Serveur vs. Ordinateur Portable vs. Supercalculateur – Smartphone vs. Téléviseur vs. Console de jeux– Compteur d'électricité/gaz/eau intelligent vs. Voiture vs. Drone

● Système complexe = décomposé en unité plus simple à modéliser et implémenter

18/01/18 OS I 5

Introduction

● Un « ordinateur » (computer system) est constitué essentiellement de

1)Hardware

2)OS

3)Applicatifs

4)Utilisateurs

18/01/18 OS I 6

Introduction● Le hardware

– CPU + Mémoires + périphériques d'E/S– → Ressources du système

● Le applicatifs– Compilateur/navigateurs/Jeux/…– → Utilisent les ressources du système pour satisfaire les besoins

des utilisateurs

● L'OS – Contrôle le hardware et coordonne son utilisation par les différents

applicatifs des utilisateurs.

18/01/18 OS I 7

L'OS de point de vue de l'utilisateur

● La plupart des utilisateurs utilisent des équipements mono-utilisateurs – Les ressources sont monopolisées par un seul utilisateur

● De point vue de l'utilisateur : l'objectif de l'OS est d'optimiser la facilité de l'utilisation de l’équipement– Peu d'attention est donnée aux performances du système– L'OS ne cherche pas à optimiser l'utilisation/partage des ressources

→ des OS optimisés pour un seul utilisateur

18/01/18 OS I 8

L'OS de point de vue de l'utilisateur

● Dans l'industrie et la recherche, un utilisateur utilise un terminal pour accéder à des serveurs/calculateurs...– Au même moment d'autres utilisateurs accèdent à ces

équipements via d'autres terminaux.

→ Les utilisateurs partagent les ressources disponibles et peuvent s'échanger des messages.

→ De point vue de l'utilisateur : L'objectif de l'OS est le partage équitable des ressources (CPU/Mémoire/…) entre les utilisateurs

18/01/18 OS I 9

L'OS de point de vue de l'utilisateur

De point vue de l'utilisateur

Facilité de l'utilisation de l’équipement

Partage équitable des ressources

18/01/18 OS I 10

L'OS de point de vue de système● L'OS est vue comme un dispatcher de ressources

– Temps CPU– Espace mémoire– Périphériques d'E/S

● Gère les requêtes et les conflits des différent programmes/utilisateurs qui demandent l'accès à ces ressources.

18/01/18 OS I 11

Est-ce qu'il y a une définition d'un OS ?

● Le terme « système d'exploitation » couvre un grand nombre de fonctionnalités– Une grande diversité d'architecture d'équipement ayant besoin

d'un OS (supercalculateurs → smartphones → capteurs)

● Loi de Moore : nombre de transistors dans un CPU double tous les 18 mois

→ puissance des équipements en constante augmentations

→ émergence de nouvelles fonctionnalités/besoins

18/01/18 OS I 12

Loi ou Conjoncture de Moore● Gordon Moore● Né le 3 janvier 1929 à San Francisco

est un docteur en chimie et en physique, un chef d'entreprise américain.

● Il est le cofondateur avec Robert Noyce et Andrew Grove de la société Intel en 1968, premier fabricant mondial de microprocesseurs.

● Il est connu pour avoir publié une loi empirique portant son nom, la loi de Moore, le 19 avril 1965 dans le magazine Electronics – Source : wikipedia

18/01/18 OS I 13

Loi ou Conjoncture de Moore

● le nombre de transistors des microprocesseurs sur une puce de silicium double tous les 18 mois

18/01/18 OS I 14

Est-ce qu'il y a une définition d'un OS ?

● Non : il n'y a pas une définition consensuelle – Selon Prof. Avi Silberschatz (Professor of Computer Science at Yale

University) : « we have no completely adequate definition of an operating system »

● Est-ce qu'on connaît exactement quels sont les composants fondamentales d'un OS ? Non– « we have no universally accepted definition of what is part of the

operating system »

● Une vision simpliste : « the operating system is the one program running at all times on the computer »

18/01/18 OS I 15

Est-ce qu'il y a une définition d'un OS ?

Avi Silberschatz, Peter Baer Galvin, and Greg Gagne. Operating System Essentials. Second Edition. John Wiley & Sons, Inc., 2012.

18/01/18 OS I 16

Quels sont les constituants d'un OS ?

● Procès antitrust contre Microsoft (justice américaine): Windows® offre des fonctionnalités ne faisant pas partie d'un OS (Internet Explorer) → concurrence déloyale– La vente couplée de Windows et d'Internet Explorer a eu pour

effet de laminer la concurrence, et particulièrement Netscape.

● Les OS des smartphone inclus en plus du noyau (kernel) un middelware (iOS/Android)– Des APIs pour les développeurs

18/01/18 OS I 17

Noyau (Kernel) + Programmes Systèmes + Applications = ?

Noyau

Programmes Systèmes

Applications

OS

18/01/18 OS I 18

Architecture des machines

18/01/18 OS I 19

Architecture des machines● Un ordinateur à usage générale (general purpose computer) contient

– Un ou plusieurs CPUs

– Des contrôleurs au niveau de chaque équipements (device)

– Un bus relie le tout à la mémoire

18/01/18 OS I 20

Architecture des machinesLe CPU échange des données avec la mémoire

Pour cela il utilise deux registres

● MAR : memory address register → contient l'adresse mémoire du prochain R/W

● MBR : memory buffer register

→ contient les données

18/01/18 OS I 21

Architecture des machines● Mise sous tension de la machine → démarrage d'un bootstrap

program

● Le bootstrap program : – Un programme aussi simple que possible, connu sous le nom de

firmware/micro-code.

– Enregistré dans la Read Only Memory (ROM) ou Electrically Erasable Read Only Memory

● EPROM= ROM programmable qui peut être effacé et réutilisée

– Initialise les équipements (Registre CPU, contenu de la mémoire,...)

→ Charge le noyau de l'OS (kernel) dans la mémoire.

18/01/18 OS I 22

Architecture des machines

● Une fois que le noyau (kernel) est chargé et exécuté, il peut fournir ses services au système et aux utilisateurs.

– Les systèmes basés sur UNIX lancent après le démarrage le processus « init ».

● Init lance à son tour d'autre processus.

– À ce stade, l'OS est complètement démarré, et il attends l'occurrence d'un quelconque événement.

18/01/18 OS I 23

Architecture des machines

● L’occurrence d'un événement est signalé par une interruption logicielle ou matérielle

– Le hardware peut déclencher une interruption à tous moments en envoyant un signal au CPU.

– Un programme peut déclencher une interruption en exécutant un appel système.

18/01/18 OS I 24

Architecture des machinesStructure de stockage

● Le CPU charge les instructions uniquement de la mémoire principale, donc tous les programmes doivent être enregistrés en mémoire

● Les ordinateurs à usage générale (General-Purpose Computers) exécutent leurs programmes à partir d’une mémoire réinscriptible (re-writable) appelée RAM (Random-Access Memory) → mémoire principale

● Le CPU interagit avec la mémoire à travers des séquences de load et store.

– L'instruction load copie une mot mémoire de la mémoire principale vers un registre interne du CPU

– L'instruction store copie un contenu d'un registre CPU vers la mémoire principale

18/01/18 OS I 25

Architecture des machinesStructure de stockage

● Idéalement, nous voudrions que les programmes et leurs données soient d'une manière permanente en mémoire → Ceci est évidement impossible car :– La taille de la mémoire principal est insuffisante pour accueillir tous les

programmes et leurs données.– La mémoire principal est volatile et les données sont perdus lorsqu'on

éteint la machine.

→ Les machines sont équipées de mémoires secondaires qui étendent les capacités de la mémoire principal– Stockage permanent – Grande capacité

18/01/18 OS I 26

Architecture des machinesHiérarchie de mémoire

18/01/18 OS I 27

Architecture des machinesHiérarchie de mémoire

● Mémoire principale (RAM)– Programmes doivent être « chargés » dans la RAM

pour être exécutées– Les instructions et les données sont copiées depuis

la RAM dans des registres

● Or :– La RAM est volatile– De taille et vitesse moyennes

18/01/18 OS I 28

Architecture des machinesHiérarchie de mémoire

● D'autres mémoires volatiles ont des tailles réduites, sont rapides et ont un coût par bit élevé– Registres– Caches CPU

● Mémoires non-volatiles (permanentes) ont des tailles importantes, lentes et ont un coût réduit par bit– Disque magnétique– Disque optique

18/01/18 OS I 29

Architecture des machinesles E/S

● Une large portion du code des OS est dédiée à la gestion des E/S à cause de la variété de types d'E/S.

● Un ordinateur à usage générale est formé – de CPU(s) – et de contrôleurs de périphériques connectés à travers un

bus commun.● Un contrôleur est en charge d'un type spécifique de périphérique.● Selon le type de contrôleur, plusieurs équipements peuvent y être

attaché.– Par exemple : 7 périphériques peuvent être attaché simultanément au

contrôleur d’équipement small computer-systems interface ( SCSI )

18/01/18 OS I 30

Architecture des machinesles E/S

● Le contrôleur de périphérique maintien un buffer (mémoire) local pour y stocker temporairement les données émises/reçues par périphérique.

● Un OS utilise un pilote de périphérique (device driver) pour chaque contrôleur de périphérique.

● Le pilote est l’intermédiaire entre le contrôleur de périphérique et l'OS.

18/01/18 OS I 31

Structure et Concepts de Base des Systèmes d'Exploitation

18/01/18 OS I 32

Finalité des OS● Un OS fournit l'environnement nécessaire pour

que les programme puissent s’exécuter.

● Pour cela, l'OS :– Alloue les ressources matérielles et logicielles pour

satisfaire les besoins des programmes.– Présente aux programme une interface mieux

adaptée à leurs besoins que celle fournie directement par le matériel.

18/01/18 OS I 33

Le système d'exploitation en tant que machine virtuelle

Peu de programmes seraient développés si

chaque programmeur devait connaître le

fonctonnement du hardware

Peu de programmes seraient développés si

chaque programmeur devait connaître le

fonctonnement du hardware

trouver un moyen de libérer les programmeurs

de la complexité du hardware

trouver un moyen de libérer les programmeurs

de la complexité du hardware

L’ABSTRACTIONL’ABSTRACTION

18/01/18 OS I 34

Le système d'exploitation en tant que machine virtuelle

Hardware

API

Applicatons

1- Enrober le matériel avec une couche de logiciel qui gère l'ensemble du système.

2- Présenter au programmeur une API (Applicaton Programming interface, interface de programmaton d'applicaton)

18/01/18 OS I 35

Le système d'exploitation en tant que machine virtuelle

● Un disque est composé de cylindres, qui contiennent chacun autant de pistes qu'il y a de têtes placées verticalement.

● Les pistes se divisent en secteurs, le nombre de secteurs étant compris entre 8 et 32.

● Tous les secteurs contiennent le même nombre d'octets.

18/01/18 OS I 36

Le système d'exploitation en tant que machine virtuelle

• Prise en charge par Linux:

– /kernels/linux-2.6/drivers/block/hd.c

/* * This struct defines the

HD's and their types. */struct hd_i_struct { unsigned int head,

sect, cyl, wpcom, lzone, ctl; int unit; int recalibrate; int special_op;

};

Les champs représentent les caractéristques géométriques du lecteur :i. le nombre de têtes (autrement dit de

pistes),ii. le nombre de secteurs par piste,iii. le nombre de cylindres

18/01/18 OS I 37

Le système d'exploitation en tant que machine virtuelle

● La plupart des programmeurs ne veulent pas se soucier de la programmation des disques durs. Ils veulent une abstraction simple de haut niveau :– considérer par exemple que le disque contient des

fichiers nommés ; – chaque fichier peut être ouvert en lecture ou en

écriture ; – il sera lu ou écrit, et finalement fermé.

18/01/18 OS I 38

Le système d'exploitation en tant que machine virtuelle

● La partie machine virtuelle des systèmes d'exploitation – soustrait le matériel au regard du programmeur – offre une vue simple et agréable de fichiers

nommés qui peuvent être lus et écrits

18/01/18 OS I 39

Le système d'exploitation en tant que machine virtuelle

Machine virtuelleMachine virtuelle

Cacher les détails de mise en œuvre du matériel

Cacher les détails de mise en œuvre du matériel

Cacher les limitatons physiques (taille

mémoire)

Cacher les limitatons physiques (taille

mémoire)

18/01/18 OS I 40

Le système d'exploitation en tant que gestionnaire de ressources

● Les ordinateurs modernes se composent de processeurs, de mémoires, d'horloges, de disques, de moniteurs, d'interfaces réseau, d'imprimantes, et d'autres périphériques qui peuvent être utilisés par plusieurs utilisateurs en même temps.

● Le travail du système d'exploitation consiste à ordonner et contrôler l'allocation des processeurs, des mémoires et des périphériques entre les différents programmes qui y font appel.

18/01/18 OS I 41

Le système d'exploitation en tant que gestionnaire de ressources

● Imaginez ce qui se produirait si trois programmes qui s'exécutent sur un ordinateur essayaient simultanément d'imprimer leurs résultats sur la même imprimante. – Les premières lignes imprimées pourraient provenir du programme 1,

les suivantes du programme 2, puis du programme 3 et ainsi de suite.

→ Il en résulterait le désordre le plus total.

● Le système d'exploitation peut éviter ce chaos potentiel en transférant les résultats à imprimer dans un fichier tampon sur le disque.

→ Lorsqu'une impression se termine, le système d'exploitation peut alors imprimer un des fichiers se trouvant dans le tampon.

18/01/18 OS I 42

Systèmes multi-tâches

● La plupart des systèmes d'exploitation modernes permettent l'exécution de plusieurs tâches à la fois – un ordinateur peut, pendant qu'il exécute

le programme d'un utilisateur, lire les données d'un disque ou afficher des résultats sur un terminal ou une imprimante.

● On parle de système d'exploitation multi-tâches ou multi-programmé dans ce cas.

18/01/18 OS I 43

Systèmes multi-tâches: les processus

● La notion fondamentale des systèmes d'exploitation multi-tâches est celle de processus.

● Un processus est une instance de programme en train de s'exécuter. – Un processus est représenté par un programme (le code),– mais également par ses données et par les paramètres

indiquant où il en est, lui permettant ainsi de continuer s'il est interrompu (pile d'exécution, compteur ordinal...).

→ On parle de l'environnement du programme.

18/01/18 OS I 44

Systèmes multi-tâches: le temps partagé

● La plupart des systèmes d'exploitation multi-tâches sont implémentés sur un ordinateur ayant un seul micro-processeur.

● Celui-ci, à un instant donné, n'exécute réellement qu'un seul processus, mais le système peut le faire passer d'un programme à un autre

● Ceci donne aux utilisateurs l'impression que tous les programmes sont exécutés en même temps.

18/01/18 OS I 45

Systèmes multi-utilisateurs

● Comme pour les systèmes multi-tâches, la multi-utilisation est émulée en attribuant des laps de temps à chaque utilisateur.

● Naturellement, le fait de basculer d'une application à l'autre ralentit chacune d'entre elles et affecte le temps de réponse perçu par les utilisateurs.

18/01/18 OS I 46

Structure externe des OS

● Le système d'exploitation comporte un certain nombre de routines (sous-programmes). Les plus importantes constituent le noyau (kernel).

● Il gère les ressources de l’ordinateur et permet aux différents composants, matériels et logiciels, de communiquer entre eux.

● Le noyau d'un système d'exploitation se compose de quatre parties principales :

1.le gestionnaire de tâches (ou des processus)/ordonnanceur,

2.le gestionnaire de mémoire,

3.le gestionnaire de fichiers

4.et le gestionnaire de périphériques d'entrée-sortie.

18/01/18 OS I 47

Le gestionnaire de tâches/ Ordonnanceur

● L’ordonnanceur d’un système d’exploitation n’a de sens qu’en système multitâche.

● Il gère l’ordre dans lequel les instructions de différentes tâches sont exécutées

● Il est responsable de la sauvegarde et de la restauration du contexte des tâches (ce contexte est constitué des registres processeurs), appelée également commutation de contexte.

18/01/18 OS I 48

OrdonnanceurCommutation de contexte

● Une commutation de contexte (context switch) consiste à sauvegarder l'état d'un processus pour restaurer à la place celui d'un autre dans le cadre de l'ordonnancement d'un système d'exploitation multitâche.

● La commutation de contexte invoque au moins trois étapes. Par exemple, en présumant que l'on veut commuter l'utilisation du processeur par le processus P1 vers le processus P2 :– Sauvegarder le contexte du processus P1 quelque part en mémoire (usuellement

sur la pile de P1).– Retrouver le contexte de P2 en mémoire (usuellement sur la pile de P2).– Restaurer le contexte de P2 dans le processeur, la dernière étape de la restauration

consistant à reprendre l'exécution de P2 à son point de dernière exécution.

18/01/18 OS I 49

Ordonnanceur● La plupart des ordonnanceurs modernes permettent

d’indiquer sur quel processeur sont exécutées les tâches. – Certains permettent également de migrer des tâches sur d’autres

machines d’une grappe de calcul.

● L’algorithme d’ordonnancement détermine quelle tâche doit s’exécuter en priorité et sur quel processeur. – Cet algorithme doit permettre d’utiliser efficacement les

ressources de la machine

18/01/18 OS I 50

Ordonnanceur● L’ordonnancement peut être de type coopératif

– Les tâches doivent être écrites de manière à coopérer les unes avec les autres et ainsi accepter leur suspension pour l’exécution d’une autre tâche.

● L’ordonnancement peut être également de type préemptif .– L’ordonnanceur a la responsabilité de l’interruption des tâches et du choix

de la prochaine à exécuter.

● Certains noyaux sont eux-mêmes préemptifs – l’ordonnanceur peut interrompre le noyau lui-même pour faire place à une

activité (typiquement, toujours dans le noyau) de priorité plus élevée.

18/01/18 OS I 51

Gestionnaire de mémoire

● Le gestionnaire de mémoire est le sous-ensemble du système d’exploitation qui permet de gérer la mémoire de l’ordinateur.

● Sa tâche la plus basique est d’allouer de la mémoire à des processus lorsqu’ils en ont besoin.

18/01/18 OS I 52

Gestionnaire de mémoire● Le gestionnaire de mémoire

– masque la localisation physique de la mémoire (en mémoire vive ou sur disque dur, dans l’espace de mémoire paginée)

– présente au programme une mémoire globale uniforme dite mémoire virtuelle.

● Ainsi, tout processus croit manipuler une mémoire «logique » qui a les propriétés suivantes :– La mémoire peut être étendue jusqu’aux capacités théoriques de la

machine ;– La mémoire est privée (protégée), un processus ne peut pas

accéder à la mémoire d’un autre processus (sauf allocations et autorisations spécifiques).

18/01/18 OS I 53

Gestionnaire de fichiers

● Une des tâches fondamentales du système d’exploitation est de masquer les spécificités des disques et des autres périphériques d’entrée-sortie et d’offrir au programmeur un modèle agréable et facile d’emploi.

→ Ceci se fait à travers la notion de fichier.

18/01/18 OS I 54

Le gestionnaire de périphériques

● Le contrôle des périphériques d’entrée-sortie (E/S) de l’ordinateur est l’une des fonctions primordiales d’un système d’exploitation. – Ce dernier doit envoyer les commandes aux

périphériques, intercepter les interruptions, et traiter les erreurs.

– Il doit aussi fournir une interface simple et facile d’emploi entre les périphériques et le reste du système qui doit être, dans la mesure du possible, la même pour tous les périphériques, c’est-à-dire indépendante du périphérique utilisé.

18/01/18 OS I 55

Le gestionnaire de périphériques

De nombreux systèmes d’exploitation offrent un niveau d’abstraction qui permet aux utilisateurs de réaliser des entrées-sorties sans entrer dans le détail du matériel. – Ce niveau d’abstraction fait apparaître chaque

périphérique comme un fichier spécial, qui permettent de traiter les périphériques d’entrée-sortie comme des fichiers.

18/01/18 OS I 56

L’interpréteur de commandes● Le système d’exploitation proprement dit est le code qui

permet de définir les appels système.

– Les programmes système tels que les éditeurs de texte, les compilateurs, les assembleurs, les éditeurs de liens et les interpréteurs de commandes ne font pas partie du système d’exploitation.

– Sous sa forme la plus rudimentaire, l’interpréteur de commandes exécute une boucle infinie qui affiche une invite (montrant par là que l’on attend quelque chose), lit le nom du programme saisi par l’utilisateur à ce moment-là et l’exécute.

18/01/18 OS I 57

Les Appels Système ● Les appels système sont des fonctions :

– appelées depuis un programme de l’espace utilisateur ;– dont l’exécution (le traitement) est effectuée dans l’espace noyau ;– dont le retour est effectué dans le programme appelant dans l’espace

utilisateur.

● En plus d’un changement de mode d’exécution, l’appel système suppose au moins deux commutations de contextes :– Contexte du programme appelant ; – Contexte du noyau ;

18/01/18 OS I 58

Monolithe● Un monolithe (du grec μόνος monos, « un

seul » et λίθος lithos, « pierre ») est un bloc de pierre de grande dimension, constitué d'un seul élément.

18/01/18 OS I 59

Les systèmes monolithiques

● Andrew Tanenbaum appelle système monolithique (d’un seul bloc) un système d’exploitation qui est une collection de procédures, chacune pouvant à tout moment appeler n’importe quelle autre procédure, en remarquant que c’est l’organisation (plutôt chaotique) la plus répandue.

18/01/18 OS I 60

Les systèmes monolithiques

● On considère généralement les noyaux monolithiques, de conception ancienne, comme obsolètes car difficiles à maintenir et moins « propres »– Le noyau Linux était déjà qualifié d’obsolète par

Andrew Tanenbaum, dès sa création en 1992.– Linus vs. Tanenbaum:

http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html

– Il ne croyait pas, à l’époque, pouvoir faire un noyau monolithique multi plate-forme et modulaire.

18/01/18 OS I 61

Les systèmes monolithiques● Pour construire le code objet du système d’exploitation, il faut

compiler toutes les procédures, ou les fichiers qui les contiennent, puis les réunir au moyen d’un éditeur de liens.

● Dans un système monolithique, il n’y a aucun masquage de l’information : chaque procédure est visible de toutes les autres,

● → par opposition aux structures constituées de modules ou d’unités de programmes et dans lesquelles les informations sont locales aux modules et où il existe des points de passage obligés pour accéder aux modules.– MS-DOS est un exemple d’un tel système.

18/01/18 OS I 62

Noyaux monolithiques non modulaires● Certains systèmes d’exploitation, comme d’anciennes versions de

Linux, certains BSD ou certains vieux Unix ont un noyau monolithique.– C’est-à-dire que l’ensemble des fonctions du système et des pilotes sont regroupés

dans un seul bloc de code et un seul bloc binaire généré à la compilation.

● De par la simplicité de leur concept mais également de leur excellente vitesse d’exécution, les noyaux monolithiques ont été les premiers à être développés et mis en œuvre.

● Cependant, au fur et à mesure de leurs développements, le code de ces noyaux monolithiques a augmenté en taille et il s’est avéré difficile de les maintenir

18/01/18 OS I 63

Noyaux monolithiques non modulaires● Le support par les architectures monolithiques des chargements à

chaud ou dynamiques – implique une augmentation du nombre de pilotes matériels compilés dans le

noyau, – et par suite, une augmentation de la taille de l’empreinte mémoire des noyaux. – Celle-ci devient rapidement inacceptable.

● Les multiples dépendances créées entre les différentes fonctions du noyau empêchaient la relecture et la compréhension du code.– L’évolution du code s’est faite en parallèle à l’évolution du matériel, et des

problèmes de portage ont alors été mis en évidence sur les noyaux monolithiques.

18/01/18 OS I 64

Noyaux monolithiques modulaires

● Pour répondre aux problèmes des noyaux monolithiques, ces derniers sont devenus modulaires.

– Dans ce type de noyau, seules les parties fondamentales du système sont regroupées dans un bloc de code unique (monolithique).

– Les autres fonctions, comme les pilotes matériels, sont regroupées en différents modules qui peuvent être séparés tant du point de vue du code que du point de vue binaire.

– La très grande majorité des systèmes actuels utilise cette technologie : Linux, la plupart des BSD ou Solaris.

18/01/18 OS I 65

Noyaux monolithiques modulaires

● Les noyaux monolithiques modulaires conservent les principaux atouts des noyaux monolithiques purs dont ils sont issus.

– Ainsi, la facilité de conception et de développement est globalement maintenue et la vitesse d’exécution reste excellente.

– L’utilisation de modules implique le découpage du code source du noyau en blocs indépendants. Ces blocs améliorent l’organisation et la clarté du code source et en facilitent également la maintenance.

18/01/18 OS I 66

Noyaux monolithiques modulaires

● Les noyaux monolithiques modulaires conservent également un important défaut des noyaux monolithiques purs : – Une erreur dans un module met en danger la stabilité de tout le

système. – Les tests et certifications de ces composants doivent être plus

poussés.

● D’un point de vue théorique, le grand nombre de lignes de code exécutées en mode noyau engendre des problèmes de portabilité. – La pratique contredit largement la théorie et les noyaux modulaires

sont aujourd’hui les plus portés.

18/01/18 OS I 67

Systèmes à micro-noyau● Les limitations des noyaux monolithiques ont amené à une

approche radicalement différente de la notion de noyau : les système approche à micro-noyaux.

● Les systèmes à micro-noyaux cherchent à minimiser les fonctionnalités dépendantes du noyau en plaçant la plus grande partie des services du système d’exploitation à l’extérieur de ce noyau, c’est-à-dire dans l’espace utilisateur.

● Ces fonctionnalités sont alors fournies par de petits serveurs indépendants possédant souvent leur propre espace d’adressage.

18/01/18 OS I 68

Systèmes à micro-noyau● Un petit nombre de fonctions fondamentales est

conservé dans un noyau minimaliste appelé « micro-noyau ».

● L’ensemble des fonctionnalités habituellement proposées par les noyaux monolithiques est alors assuré par les services déplacés en espace utilisateur et par ce micro-noyau.

● Cet ensemble logiciel est appelé « micro-noyau enrichi ».

18/01/18 OS I 69

Systèmes à micro-noyau● Ce principe a de grands avantages théoriques :

– en éloignant les services « à risque » des parties critiques du système d’exploitation regroupées dans le noyau,

– il permet de gagner en robustesse et en fiabilité, tout en facilitant la maintenance et l’évolutivité.

● En revanche, les mécanismes de communication (IPC), qui deviennent fondamentaux pour assurer le passage de messages entre les serveurs, sont très lourds et peuvent limiter les performances.

18/01/18 OS I 70

Systèmes à micro-noyau● Les avantages théoriques des systèmes à micro-

noyaux sont la conséquence de l’utilisation du mode protégé par les services qui accompagnent le micro-noyau. – En effet, en plaçant les services dans l’espace utilisateur,

ceux-ci bénéficient de la protection de la mémoire.

● La stabilité de l’ensemble en est améliorée : une erreur d’un service en mode protégé a peu de conséquences sur la stabilité de l’ensemble de la machine.

18/01/18 OS I 71

Systèmes à micro-noyau● Le système gagne également en possibilités de configuration.

– Seuls les services utiles doivent être réellement lancés au démarrage. – Les interdépendances entre les différents serveurs sont faibles. – L’ajout ou le retrait d’un service ne perturbe pas l’ensemble du système. – La complexité de l’ensemble est réduite.

● Le développement d’un système à micro-noyau se trouve également simplifié en tirant parti à la fois – de la protection de la mémoire – et de la faible interdépendance entre les services.

18/01/18 OS I 72

Systèmes à micro-noyau● Les erreurs provoquées par les applications en

mode utilisateur – sont traitées plus simplement que dans le mode noyau – et ne mettent pas en péril la stabilité globale du système.

● L’intervention sur une fonctionnalité défectueuse consiste – à arrêter l’ancien service – puis à lancer le nouveau, sans devoir redémarrer toute la

machine.

18/01/18 OS I 73

Systèmes à micro-noyau

● L’utilisation de nombreux services dans l’espace utilisateur engendre les deux problèmes suivants :– La plupart des services sont à l’extérieur du noyau

et génèrent un très grand nombre d’appels système ;

– Les interfaces de communication entre les services (IPC) sont complexes et trop lourdes en temps de traitement.

18/01/18 OS I 74

Noyaux temps réel● Les noyaux temps réel sont fonctionnellement spécialisés.

– Ce sont des noyaux généralement assez légers qui ont pour fonction de base stricte de garantir les temps d’exécution des tâches.

● Très utilisés dans le monde de l’électronique embarquée,– ils sont conçus pour tourner sur des plates-formes matérielles limitées en taille,

puissance ou autonomie.

● Les noyaux temps réel peuvent adopter en théorie n’importe quelle architecture. – Ils fournissent souvent deux interfaces séparées, l’une spécialisée dans le temps

réel et l’autre générique. – Les applications temps réel font alors appel à la partie temps réel du noyau.

18/01/18 OS I 75

Noyaux hybrides● La dénomination de « noyaux hybrides » désigne

principalement – des noyaux qui reprennent des concepts à la fois des noyaux monolithiques

et des micro-noyaux, – pour combiner les avantages des deux.

● Lorsqu’au début des années 1990 les développeurs et concepteurs se sont aperçus des faiblesses des premiers micro-noyaux, – Certains réintégrèrent diverses fonctionnalités non fondamentales dans le

noyau, pour gagner en performance. – Les micro-noyaux « purs » semblaient condamnés à l’échec.

18/01/18 OS I 76

Noyaux hybrides● Alors que la philosophie générale des systèmes à micro-noyaux

est maintenue (seules les fonctions fondamentales sont dans l’espace noyau), – Certaines fonctions non critiques, mais très génératrices d’appels système,

sont réintégrées dans l’espace noyau. – Ce compromis permet d’améliorer considérablement les performances en

conservant de nombreuses propriétés des systèmes à micro-noyaux.

● Un exemple de ce type de noyau hybride est le noyau XNU de Mac OS X. – Il est basé sur le micro-noyau Mach 3.0 – mais qui inclut du code du noyau monolithique BSD au sein de l’espace noyau.

18/01/18 OS I 77

The END

top related