Académique Documents
Professionnel Documents
Culture Documents
OBJECTIF
L’objectif de ce cours est de donner aux étudiants les fondamentaux du module intitulé
Architecture des Systèmes d’Exploitation, sa structuration, ses fonctions avec les machines et
avec les autres applications qui y sont installées, d’inculquer à l’étudiant le concept de machine
virtuelle et de ses missions à savoir la gestion des ressources de la machine réelle de manière
transparente à leurs utilisateurs. L’approche retenue se base sur le modèle en couches.
C’est aussi de pouvoir montrer aux apprenants toutes les subtilités du logiciel de base,
le système d’exploitation, dans le processus interactif entre la machine et les applications d’une
part et entre la machine et l’utilisateur d’autre part, etc…
A travers ce cours l’étudiants sera capable de comprendre les principes qui fondent les
échanges entre la machine, les périphériques et l’utilisateur, etc.
Inculquer à l’étudiant le concept de machine virtuelle et de ses missions à savoir gestion
des ressources de la machine réelle de manière transparente aux utilisateurs. L’approche retenue
se base sur le modèle en couches.
STRATEGIE PEDAGOGIQUE
Il s’agit à travers le déroulement du cours de :
▪ Montrer, à travers des exemples illustrant, comment les différents aspects présentés dans
ce cours sont traités par les systèmes d’exploitation couramment utilisés à savoir Unix
et Windows.
▪ Prévoir des exercices voire des travaux pratiques (TP) sur machine illustrant les
connaissances enseignées.
BIBLIOGRAPHIE
➢ N. SALMI, "Principes des Systèmes d’Exploitation", Pages Bleues, les Manuels
de l’Etudiant, 2007.
➢ B. LAMIROY, L. NAJMAN, H. TALBOT, "Systèmes d’exploitation", Collection
Synthex, Pearson Education, 2006.
➢ A. BELKHIR, "Système d’Exploitation, Mécanismes de Base", OPU, 2005.
➢ A. Silberschatz, P.B. Galvin, G. Gagne, "Operating System Concepts", 7th Edition,
John Wiley & Sons Editions, 2005, 921 p.
Page 2 sur 28
Introduction
Le système d'exploitation est le chef d'orchestre du système informatique. Il permet
de faire fonctionner le matériel et les logiciels installés sur votre ordinateur. L’objectif d’un
système informatique est d’automatiser le traitement de l’information.
Un système informatique est constitué de deux entités : le matériel et le logiciel. Côté
matériel, un ordinateur est composé de : L’Unité Centrale (UC) pour les traitements, la
Mémoire Centrale (MC) pour le stockage, et les Périphériques d’E/S : disque dur, clavier,
souris, flash disque, carte réseau... accessibles via des pilotes de périphériques.
L’Informatique repose sur deux aspects dans sa mise en œuvre à savoir l’aspect
concret et l’aspect abstrait. L’aspect concret qui porte sur le matériel aborde le cours sur
l’Architecture de la Technologie des Ordinateurs et l’aspect abstrait quant à lui porte sur le
logiciel à travers le cours intitulé Architecture des Systèmes d’exploitation.
Du côté logiciel, un système informatique est composé de deux niveaux bien
distincts à savoir : les Programmes d’application (achetés ou développés) et les logiciels de
base. Dans les logiciels de base, on trouve le Système d’exploitation (S.E.) et les utilitaires.
L’objectif du logiciel est d’offrir aux utilisateurs des fonctionnalités adaptées à leurs
besoins. Le principe est de masquer les caractéristiques physiques du matériel.
Le terme logiciel est pris dans le sens de programmes intégrés exécutant un ensemble
de tâches reliées. Plus spécifiquement, cet ensemble regroupe un langage de commande, un
système de gestion des mémoires, un système de gestion des fichiers, un système de gestion
de l’unité centrale de traitement, un système de gestion des entrées/sorties.
Dans un sens plus large, l’expression système informatique est souvent utilisée pour
désigner l’ensemble formé de matériel et des logiciels. Sa fonction première est de fournir
des services adaptés à la résolution des problèmes usuels : la gestion de l’information, la
préparation et la mise au point de programmes, l’exploitation de programmes. Tout cela
s’effectue sous le contrôle et la supervision du système d’exploitation.
Page 3 sur 28
▪ la Mémorisation
- Les données et les résultats doivent pouvoir être mémorisés
- La séquence des opérations à effectuer (programme) est également
mémorisée
exécuté durant une tranche de temps déterminé, puis le système d'exploitation bascule sur
l'exécution d'un autre programme.
a°/- Processus
Un processus est un ensemble d'instructions qui sont en train d'être exécutées. Les
instructions proviennent d'un programme, et l'exécution nécessite du temps, de la mémoire,
des fichiers et des périphériques. Le système d'exploitation s'occupe de créer, d'interrompre,
et de supprimer des processus. Plusieurs processus se trouvent en mémoire centrale en
même temps.
La responsabilité du système d'exploitation est de réserver de la mémoire, et de
planifier l'exécution, de s'occuper des interblocages et d'assurer les communications entre
les processus.
b°/- Ordonnanceur
L'ordonnanceur (anglais Scheduler) associe un processus à un processeur, puis plus
tard le dissocie du processeur pour associer un autre processus. Lors de la planification, le
système d'exploitation tient compte de la disponibilité, ou non, des ressources utilisées par
le processus. Certains systèmes d'exploitation créent des processus pour effectuer certaines
tâches propres au système.
Lors de l'exécution du programme, celui-ci peut demander de réserver des ressources
de l'ordinateur. L'exécution de ce programme peut être interrompue et le système
d'exploitation continue l'exécution d'un autre programme, cependant les ressources restent
réservées. Lorsqu'un autre processus demande une ressource déjà réservée, le processus est
mis en attente. En situation de forte compétition plusieurs processus peuvent être en attente
de la même ressource. Lorsque la ressource est libérée le système d'exploitation décide alors
quel est le prochain processus auquel la ressource sera réservée. La stratégie d'octroi des
ressources par le système d'exploitation vise à répondre équitablement à toutes les
demandes et éviter des conflits.
II.2.3. La communication interprocessus
Dans certains logiciels applicatifs, plusieurs programmes effectuent la même tâche
simultanément, et s'échangent des informations. Le mécanisme de protection de la mémoire
empêche aux programmes de manipuler les mêmes informations, et ceux-ci doivent faire
appels à des services du système d'exploitation.
Protection
Par mesure de sécurité, le système d'exploitation réserve à chaque programme un
espace d'adressage - un emplacement en mémoire que seul le programme en question peut
manipuler. Le système d'exploitation détecte toute tentative d'accès en dehors de l'espace
d'adressage et provoque l'arrêt immédiat du programme qui tente d'effectuer de telles
opérations. On nomme cela une erreur de protection générale.
II.2.4. Mémoire
Page 9 sur 28
Programmeurs
Ordinateur principal
Lecteur de cartes
Disque entrées
Mémoire principale
Système
Programme 1
Opérateur
Programme 2
●
●
●
●
Programme N
Disque sorties
Imprimante
Programmeurs
En effet, le processeur est alloué à un job, et dès que celui-ci effectue une demande
d’E/S, le processeur est alloué à un autre job, éliminant ainsi les temps d’attente de l’unité
de traitement chargé des E/S, appelé canal d’E/S.
Exemple
Soient les deux programmes A et B suivants :
- Système multiprogrammé
Monoprogrammation Multiprogrammation
Utilisateurs Programmeurs
Ordinateur principal
Mémoire
principale
Système
Programme 1
Programme 2
●
●
●
●
Programme N
Ingénieur
Figure d’un Système à temps partagé
Dans la génération des systèmes en temps partagé l'exécution simultanée de
plusieurs programmes vise à répondre rapidement aux demandes de plusieurs utilisateurs
en communication directe avec l'ordinateur
Page 16 sur 28
Un système d’exploitation temps réel possède des contraintes de temps fixes et bien
définies. Le traitement doit être effectué dans les contraintes définies, sinon le système
tombe en panne.
II.2.7.4.4 Systèmes Distribués et Réseaux
Un développement intéressant a débuté vers le milieu des années 1980 : la croissance
des réseaux d'ordinateurs personnels fonctionnant sous des systèmes d'exploitation
réseaux ou des systèmes d'exploitation distribués.
■ Les systèmes réseaux (Network Operating Systems), permettant l’accès des
utilisateurs à des services communs, trop coûteux pour être individuels : stockage de
grandes quantités d’informations, impression des documents, processeurs de grandes
puissances, …etc. Ces services sont gérés par des systèmes appelés serveurs, auxquels
s’adressent les utilisateurs clients qui disposent chacun de leurs machines individuelles. Un
ordinateur qui exécute un système d’exploitation réseau agit indépendamment de tous les
autres ordinateurs présents sur le réseau, bien qu’il ait connaissance du réseau et soit capable
de communiquer avec d’autres ordinateurs connectés.
■ Les systèmes distribués (Distributed Systems) qui consistent en plusieurs ordinateurs
pourvus de leur système d’exploitation et reliés entre eux par des canaux de communication.
On parle de systèmes répartis ou faiblement couplés (Loosely Coupled). Les Systèmes
d’Exploitation de ces ordinateurs coopèrent et collaborent pour exécuter une application
distribuée. Ces systèmes communiquent de manière suffisamment proche pour donner
l’illusion qu’il n’y a qu’un S.E. unique qui contrôle le réseau.
La baisse des prix du matériel informatique a permis, dans les années 1990, la
création de systèmes informatiques composés de plusieurs ordinateurs, et donc plusieurs
processeurs, plusieurs mémoires, et de nombreux périphériques. Un système distribué
permet le partage des ressources entre les ordinateurs. Un utilisateur d'un ordinateur bon
marché peut se servir de ressources coûteuses existant sur un autre ordinateur.
II.2.7.4.5 Systèmes Embarqués (Embedded Systems)
Un système embarqué est un système prévu pour fonctionner sur des appareils
autonomes (ex. électroménager, robot, automobile), ou des appareils de petite taille (ex.
PDA, téléphone, carte à puce).
Ces systèmes sont caractérisés par une autonomie réduite, un besoin de gestion
avancée de l’énergie, et une capacité de fonctionner avec des ressources limitées.
Parmi ces systèmes, on trouve Palm OS et Windows CE pour PDA, Java Card pour cartes
à puce, TinyOS pour les réseaux de capteurs (Sensor networks), RTX, Embedded Linux,
Symbian OS, Vx Works,…etc. qui sont des systèmes d'exploitation temps réel.
II.2.7.4.6 Systèmes Multicœurs (Multicore Systems)
Un ordinateur multicœurs (Chip Multi-Processor), combine deux ou plusieurs
processeurs, appelés cœurs (Cores), sur une seule puce de silicone, appelée die (Die).
Page 18 sur 28
offre également les fonctions qui permettent aux programmes de communiquer entre eux et
de s'aligner dans le temps (synchronisation).
II.3.1. Noyau monolithique
Dans une construction monolithique, le système d'exploitation est composé d'un seul
programme : le noyau. Celui-ci est typiquement organisé en couches. La construction
monolithique est la plus courante, appliquée à la plupart des Unix, presque toutes les
fonctionnalités sont dans le noyau (Linux, UNIX, Windows NT et 2000, MAC OS 7-9)
II.3.2. Noyau à micronoyau
Dans la construction micronoyau, le kernel fournit les services minimums : de
nombreuses fonctions du système d'exploitation ont été retirées du noyau et sont offertes
par des programmes manipulés par celui-ci, qui sont ce que l'on appelle des services (pour
un système en mode protégé, la grande différence avec un système monolithique sera que
ces services seront exécutés dans l'espace mémoire utilisateur et non celui du noyau).
Les appels de fonction au système d'exploitation par les programmes utilisateurs ont
été remplacés par des envois de message. Dans cette construction le noyau est utilisé
principalement pour planifier l'exécution de processus, et pour échanger des messages. AIX,
BeOS, Mach, Hurd, MacOS X, Minix et QNX sont des systèmes d'exploitation qui utilisent
cette construction.
II.3.3. Noyau hybride
La construction hybride ressemble à une construction microkernel, cependant
certaines fonctions ont été placées dans le noyau pour des raisons d'efficacité. Windows
NT, 2000 et XP (et également les Windows plus récents) ainsi que DragonFly BSD sont en
construction hybride.
II.3.4. Système organisé par couches
Utilisateur
Le principe de la répartition par
couches est que chaque module d'une
couche donnée utilise uniquement des
fonctions offertes par les modules qui se
trouvent dans la couche au-dessous.
L'organisation en couche n'est pas unique
aux systèmes d'exploitation et est
couramment appliquée aux logiciels
applicatifs.
Dans un système d'exploitation, les couches inférieures concernent les périphériques
et la mémoire ; au-dessus desquelles se trouvent les systèmes de fichiers, puis les processus.
Ces couches constituent la normalisation de la machine : pour un programme utilisateur et
un système d'exploitation donné, tous les ordinateurs seront identiques (ou presque). C'est ce
que l'on nomme l'abstraction matérielle.
Page 20 sur 28
Ordonnanceur noyau os
Avec cette technique, chaque processus peut être dans (au moins) trois états :
• Élu : un processus en état élu est en train de s'exécuter sur le processeur.
• Prêt : celui-ci a besoin de s'exécuter sur le processeur et attend son tour.
• Bloqué : celui-ci n'a pas besoin de s'exécuter (par exemple, parce que celui-ci attend
une donnée en provenance d'une entrée-sortie).
Les processus en état prêt sont placés dans une file d'attente, le nombre de
programmes dans cette liste a une limite fixée par le système d'exploitation. Lorsque l'OS
décide de switcher de processus, il doit choisir un processus dans la file d'attente et le lancer
Page 22 sur 28
sur le processeur. Pour comprendre comment faire, il faut se souvenir qu'un processus
manipule un ensemble de registres processeur, aussi appelé contexte d'exécution du
processus. Pour qu'un processus puisse reprendre où il en était, il faut que son contexte
d’exécution redevienne ce qu'il était. Pour cela, ce contexte d’exécution est sauvegardé
quand il est interrompu et restauré lors de l’ordonnancement. On appelle cela une
commutation de contexte. Avec cette méthode de sauvegarde du contexte, le système
d'exploitation doit fatalement mémoriser tous les contextes des processus dans une liste
appelée table des processus, elle-même très liée à la file d'attente.
Reste que pour utiliser notre processeur au mieux, il faut faire en sorte que tous les
processus aient leur part du gâteau. C'est ce qu'on appelle l'ordonnancement. Il existe deux
grandes formes d'ordonnancement : l'ordonnancement collaboratif, et l'ordonnancement
préemptif. Dans le premier cas, c'est le processus lui-même qui décide de passer de l'état
élu à l'état bloqué ou prêt, par l'intermédiaire d'un appel système. Dans le second, c'est le
système d’exploitation qui stoppe l’exécution d'un processus. L'avantage du dernier cas est
que les processus ne peuvent plus monopoliser le processeur.
Page 23 sur 28
ANNEXE
Pour nous résumer, nous noterons que le Système d’exploitation dispose de plusieurs
fonctions à savoir :
❖ Gestion de l'information : structuration, conservation, transfert, désignation de
l'information. Fonction réalisée par le Système de Gestion de Fichiers (SGF).
❖ Fonction d'exécution : exécution de programmes en séquence, en parallèle,
composition de programmes. Fonction réalisée par l'interprète du langage de
commande.
❖ Gestion des ressources physiques : allocation de la mémoire principale, allocation
de la mémoire secondaire, allocation des organes d'entrée-sortie, allocation du
processeur
❖ Partage et échange d'informations entre usagers : messagerie, liens symboliques,
gestion des droits d'accès.
❖ Protection mutuelle des usagers.
❖ Services divers : aide à la mise au point de programmes (débogueurs), traitement des
défaillances, mesure du temps, facturation des ressources, statistiques d'utilisation
des ressources, mesure de performances, etc.
Entre autres services il peut s’ajouter :
▪ la fourniture des services adaptés aux problèmes usuels :
- la gestion de l'information : désignation, stockage, recherche, communication
- la préparation et la mise au point de programmes
- l‘exécution de programmes (applications)
▪ L'ensemble des services fournis aux usagers constitue une nouvelle machine souvent
qualifiée d'abstraite ou de virtuelle.
Interface du système informatique
▪ L'interface du système informatique est constituée des outils disponibles pour
accéder aux services fournis.
▪ Ces outils définissent le langage de la machine abstraite qui permet aux usagers de
communiquer avec le système.
Organisation schématique d'un système informatique
▪ Les fonctions communes à une grande majorité des applications sont réalisées par
un ensemble de programmes appelés logiciel de base.
Exemples :
✓ la gestion de fichiers et de répertoires (dossiers),
✓ l’impression de documents
✓ un logiciel d'application réalise une application spécifique en utilisant des
services fournis par le logiciel de base.
Page 24 sur 28
Modèle en couche
Page 25 sur 28
Noyau
L’ordinateur personnel
Gestion des fichiers
Création, Modification, Suppression
Entrées/Sorties
Ecran, Imprimantes
Exécution de programmes
Interface utilisateur
Langage de commande ou graphique
▪ Usages :
✓ création, conservation, désignation de fichiers,
✓ exécution de programmes,
✓ création de nouveaux programmes.
▪ Qualités attendues :
✓ efficacité (bonne exploitation des capacités),
✓ simplicité d'utilisation,
✓ facilité d'extension par adjonction
✓ - de nouveaux programmes
✓ - de nouveaux périphériques
+ Partages de ressources
imprimantes, disques, etc.
Partie lexicale
Une application, un applicatif est, dans le domaine informatique, un programme (ou
un ensemble logiciel) directement utilisé pour réaliser une tâche, ou un ensemble de tâches
élémentaires d'un même domaine ou formant un tout. Typiquement, un éditeur de texte, un
navigateur web, un lecteur multimédia, un jeu vidéo, sont des applications. Les applications
s'exécutent en utilisant les services du système d'exploitation pour utiliser les ressources
matérielles.
Un matériel informatique (en anglais : hardware) est une pièce détachée d'un système
informatique. Il s'agit d'un domaine important de l’informatique qui va de pair avec le logiciel
(software). Il peut y avoir des pièces situées à l'intérieur de l'appareil et qui sont indispensables
à son fonctionnement, comme secondaires ou disposées à l'extérieur (les périphériques).
En informatique, une instruction machine est une opération élémentaire qu'un
programme demande à un processeur d'effectuer. C'est l'ordre le plus basique que peut
comprendre un ordinateur.
La collection d'instructions machine qui peuvent être données à un processeur est son jeu
d'instructions. Les instructions machine sont codées en binaire.
Un champ de l'instruction appelé « code opération » ou « opcode » désigne l'opération
à effectuer. Puisque sa valeur numérique n'a pas de sens pour les humains, le programmeur
utilise une abréviation désignant le code opération fourni par le langage assembleur pour ce
processeur.
En informatique, une machine virtuelle (anglais virtual machine, abr. VM) est une
illusion d'un appareil informatique créée par un logiciel d'émulation sur un hyperviseur. Le
logiciel d'émulation simule la présence de ressources matérielles et logicielles telles que la
mémoire, le processeur, le disque dur, voire le système d'exploitation et les pilotes, permettant
d'exécuter des programmes dans les mêmes conditions que celles de la machine simulée.
Un système embarqué est défini comme un système électronique et informatique
autonome, souvent temps réel, spécialisé dans une tâche bien précise. Le terme désigne aussi
bien le matériel informatique que le logiciel utilisé. Ses ressources sont généralement limitées.
Cette limitation est généralement d'ordre spatial (encombrement réduit) et énergétique
(consommation restreinte).
Les domaines dans lesquels on trouve des systèmes embarqués sont de plus en plus
nombreux :
• Astronautique : fusée, satellite artificiel, sonde spatiale, etc.
• Automate programmable industriel, contrôle-commande
• Électroménager : télévision, four à micro-ondes
• Environnement
• Équipement médical
• Guichet automatique bancaire (GAB)
• Impression : imprimante multifonctions, photocopieur, etc.
• Informatique : disque dur, Lecteur de disquette, etc.
• Métrologie
Page 28 sur 28
• Militaire : missile
• Multimédia : console de jeux vidéo, assistant personnel
• Télécommunication : Set-top box, téléphonie, routeur, pare-feu, serveur de temps,
Téléphone portable, .