SYSTÈMES D’EXPLOITATION 2
Module 1
Mondher Bouden
Maître assistant
Semestre 2
2023-2024
Pourquoi étudier les SE?
2
Pourquoi étudier les systèmes d’exploitation?
• Comprendre en profondeur les systèmes
informatiques / limites imposées
• Maximiser les performances de vos programmes
– appels systèmes coûteux
– multiprocesseurs
• Éviter les bugs difficiles à détecter
– situation de compétition / race condition
3
Pourquoi étudier les systèmes d’exploitation?
• Design de système complet : choisir le S.E.
approprié (pas de parfait)
• embarqué (embedded)?
• temps réel?
• Design de S.E. :
– Google/Facebook/CISCO
• Toujours en contact avec les S.E. dans votre
carrière
• Mieux comprendre évolution/amélioration
4
Tour d’horizon d’un système
d’exploitation
5
Définition d’un SE
• Aucune définition universellement admise
• Une définition générale est :
“Un système d’exploitation est l’ensemble des
programmes qui communiquent avec le matériel et
contrôlent l’allocation des ressources aux autres
programmes du système.”
• Le seul « exécutable » toujours chargé sur
l'ordinateur est appelé noyau : cœur du S.E.
6
Analogies pour un SE
• Un illusionniste :
– Fait disparaître certaines limites du matériels
– Donne l’illusion que la machine a une mémoire
infinie et une infinité de processeurs
• Un gouvernement :
– Protège les utilisateurs les uns des autres
– Partage des ressources de façon efficace et équitable
7
S.E. : 2 buts principaux
• Offrir une abstraction de haut-niveau des ressources
– faciliter la tâches aux programmeurs/applications
• Gérer les ressources matérielles de l’ordinateur
– performance et protection
– mécanismes vs. politiques
8
Mécanismes vs. politiques
• Mécanisme
– éléments matériels ou logiciels pour contrôler
l’utilisation d’une ressource
– exemple : protection de la mémoire
• Politique
– choix de comment utiliser ces ressources
– exemple : répartition de la mémoire entre processus
• Séparation mécanisme/politique augmente la
flexibilité dans la conception de systèmes
9
S.E. n’est pas l’interface usager
• Pour beaucoup, S.E. est synonyme d’interface-usager
Windows Macintosh
Dérivés d’UNIX
Sun Solaris
Ubuntu
IFT-2001 Systèmes d'exploitation 10
S.E. n’est pas l’interface usager
• GUI ne fait pas parti à proprement parlé du SE …
– … même si c’est la partie la plus visible pour les
utilisateurs.
– KDE ou Gnome sur Linux, vs X-Window sur Unix
• Vrais utilisateurs des S.E. :
– applications (entremise des appels systèmes)
– programmeurs → vous!
• Dans ce cours : voir l’envers du décor (GUI)
11
Partage des ressources : multiplexage
• Dans l’espace • Dans le temps
– disque dur – CPU
– mémoire vive (RAM) – imprimante
– etc. – clavier
– etc.
12
Multiplexage dans l’espace
• Avoir plusieurs programmes chargés en
mémoire en même temps
VS
TRS-80
aujourd’hui 13
Multiplexage dans le temps : performance
E / S = Entrée-sortie (Input-Output)
(par exemple lecture ou écriture sur disque)
14
Multiplexage dans le temps : performance
Sans multiplexage
Avec multiplexage + 2 processus en mémoire
Maximiser l’utilisation
du CPU
15
4 tâches principales par S.E.
• Gestion des processus/threads
• Gestion de la mémoire
• Gestion des fichiers
• Gestion des entrées/sorties
(périphériques)
16
1
Gestion des processus
• Abstraction d’un
programme en
cours d’exécution
Disque
RAM
• Comment gérer
quel processus
Tourne ?
17
2
Partage de la mémoire : virtuelle
système d’exploitation
• Espaces d’adressages individuels
– adresse logique → physique
• Protection (autres processus et S.E.)
18
2
Pagination de la mémoire
• Toujours tout conserver à
mémoire n’est pas optimal
• Début du programme :
– initialisation
– exécuté une seule fois
• Enlever le début du
programme après exécution
– par le programme lui-même ?
– par le S.E. ?
19
3
Gestion des fichiers
• Structure des données
sur un disque /
plusieurs disques
• Gestion des accès aux
fichiers :
qui peut accéder quoi
20
3
Fichiers : structure typique UNIX
21
4
Gestion Entrée Sortie : lecteur disquette
• Beaucoup d’instructions bas-niveau:
– Arrêter / démarrer le moteur
(pour éviter usure surface)
– Déplacer la tête
– Formatage
– Calibration
– etc.
• Programmeur est intéressé surtout
– écrire
– lire
22
3 Composantes du S.E.
• Noyau (partie centrale du système)
– Accès à TOUTES les ressources
– Analogie « GodMode »
• La librairie système (appels systèmes)
– exit(), read(), write()
• Les programmes systèmes
– ls, rm, mv, who,
23
Vue mode
d’ensemble utilisateur
« barrière »
mode
noyau
24
Vue mode
d’ensemble utilisateur
« barrière »
CONCEPTS CLÉS
mode
noyau
25
Historique
(Coévolution entre matériel et S.E.)
26
1ère génération (1945-1955)
• Tubes à vide
• Eniac : 20,000 tubes
• horloge : 100 kHz
• durée record d’utilisation
sans panne : 116 heures
• programmation par câblage
• aucun S.E., aucun langage
– pas assez de mémoire
– pas de périphérique
27
2ème génération (1955-1965)
• Transistors : plus petits, fiable et
économe en énergie
• Ère des mainframes
• Arrivée des S.E. / FORTRAN premier prototype
de transistor
• Traitement par lots
IBM 7094 : 32,768x36 mémoire
IFT-2001 Systèmes d'exploitation 28
2ème génération (1955-1965)
lecture impression :
carte : lent lent
$ $$$$$$$ $
Découpler entrées/sorties lentes de la machine principale
29
3ème génération (1965-1980)
• Circuits intégrés (CI)
• Début 60, la NASA achetait 60% des CI.
• IBM lance famille d’ordinateur System/360
– Multiprogrammation (+ d’un programme chargé)
– Temps partagé (plusieurs utilisateurs en même temps)
• Concepteur du OS/360 : Fred Brooks
– loi de Brooks : « Ajouter des ressources humaines à un
projet en retard sur les prévisions ne fait qu'accentuer
ce retard. »
The mythical man-month
30
4ème génération : ordinateurs personnels
• Circuits LSI (Large Scale Integration)
Loi de Moore
double transistors aux 18 mois
31
D’autres lois exponentielles
• Mémoire vive
• Disques durs
• Bande passante
• Pixels/dollars pour caméra KODAK
• À l’inverse :
– loi de Wirth :
« le logiciel ralentit plus vite que le
matériel n’accélère » vs.
32
4ème génération : ordinateurs personnels
• Prend sa source avec CPU
8080 d’Intel
• Apple, Commodore, Atari
• MS-DOS
Apple ][
IBM PC
33
Lignées de Windows
• Windows 1.0 (non préemptible)
• Windows 2.0 (non préemptible)
• Windows 3.0/3.1/3.51 (non préemptible)
• Windows 95/98/Me
• Windows NT/2000/XP/Vista/7/8/10/11
34