Systèmes d’Exploitation I
Chapitre I :
Introduction aux systèmes
d'exploitation
Est-ce qu'il y a une définition d'un
OS ?
OS I 3
Introduction
●
Un système d'exploitation (Operating System OS) :
–un programme qui gère le hardware
●
Selon les exigences des équipements des OS différents
–Serveurvs. Ordinateur Portable vs. Supercalculateur
–Smartphone vs. Téléviseur vs. Console de jeux
●
Système complexe = décomposé en unité plus simple à
modéliser et implémenter
OS I 4
Introduction
● Un « ordinateur »
(computer system) est
constitué essentiellement
de
1)Hardware
2)OS
4)Utilisateurs
OS I 5
Introduction
●
Le hardware
–CPU + Mémoires + périphériques d'E/S
–→ Ressources du système
●
Le applicatifs
–Compilateur/navigateurs/Jeux/…
des utilisateurs
●
L'OS
–Contrôle le hardware et coordonne son utilisation par les différents
applicatifs des utilisateurs.
OS I 6
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
→ des OS optimisés pour un seul utilisateur
OS I 7
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.
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
OS I 8
L'OS de point de vue de
l'utilisateur
Facilité de l'utilisation de l’équipement
De point vue de l'utilisateur
Partage équitable des ressources
OS I 9
L'OS de point de vue de système
● L'OS est vue comme un dispatcher de ressources
–Temps CPU
–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.
OS I 10
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
augmentations
OS I 11
Loi ou Conjoncture de Moore
● Gordon Moore
●
est un docteur en chimie et en
physique, un chef d'entreprise
américain.
●
Noyce et Andrew Grove de la société
Intel en 1968, premier fabricant
mondial de microprocesseurs.
●
empirique portant son nom, la loi de
Moore, le 19 avril 1965
–Source : wikipedia
OS I 12
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
● 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 »
OS I 14
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
OS I 16
Noyau (Kernel) + Programmes Systèmes + Applications = ?
Noyau
OS
Programmes Systèmes
Applications
OS I 17
Architecture des machines
OS I 18
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
OS I 19
Architecture des machines
Le 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
OS I 20
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.
OS I 21
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.
OS I 22
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.
OS I 23
Architecture des machines
Structure 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
OS I 24
Architecture des machines
Structure 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 :
–Lataille de la mémoire principal est insuffisante pour accueillir tous les
programmes et leurs données.
é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é
OS I 25
Architecture des machines
Hiérarchie de mémoire
OS I 26
Architecture des machines
Hiérarchie de mémoire
● Mémoire principale (RAM)
–Programmes doivent être « chargés » dans la RAM
pour être exécutées
la RAM dans des registres
● Or :
–La RAM est volatile
OS I 27
Architecture des machines
Hié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
● Mémoires non-volatiles (permanentes) ont des tailles
importantes, lentes et ont un coût réduit par bit
–Disque magnétique
–Disque optique
OS I 28
Architecture des machines
les 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)
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
–Par exemple : 7 périphériques peuvent être attaché simultanément au
contrôleur d’équipement small computer-systems interface ( SCSI )
OS I 29
Architecture des machines
les 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.
OS I 30
Structure et Concepts de Base des
Systèmes d'Exploitation
OS I 31
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.
mieux
adaptée à leurs besoins que celle fournie directement
OS I 32
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)
OS I 34
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.
OS I 35
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 ;
écriture ;
OS I 37
Le système d'exploitation en tant que
machine virtuelle
● La partie machine virtuelle des systèmes
d'exploitation
–soustraitle matériel au regard du programmeur
–offre une vue simple et agréable de fichiers
OS I 38
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.
OS I 40
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.
●
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.
OS I 41
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
résultats sur un terminal ou une
imprimante.
● On parle de système d'exploitation
multi-tâches ou multi-programmé
dans ce cas.
OS I 42
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
interrompu (pile d'exécution, compteur ordinal...).
→ On parle de l'environnement du programme.
OS I 43
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.
OS I 44
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.
OS I 45
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.
OS I 46
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.
OS I 47
Ordonnanceur
Commutation 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).
–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.
OS I 48
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.
–Cetalgorithme doit permettre d’utiliser efficacement les
ressources de la machine
OS I 49
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’ordonnanceura 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.
OS I 50
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.
OS I 51
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)
virtuelle.
● Ainsi, tout processus croit manipuler une mémoire
«logique » qui a les propriétés suivantes :
–Lamémoire peut être étendue jusqu’aux capacités théoriques de la
machine ;
, un processus ne peut pas
accéder à la mémoire d’un autre processus (sauf allocations et
autorisations spécifiques).
OS I 52
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.
OS I 53
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.
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é.
OS I 54
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-
OS I 55
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.
OS I 56
Les Appels Système
● Les appels système sont des fonctions :
–appelées depuis un programme de l’espace utilisateur ;
–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 ;
OS I 57
The END
OS I 77