Vous êtes sur la page 1sur 31

Systèmes d’exploitation 1

Ch 1. Généralités
Dr. OUSSAMA BEN KHIROUN
oussamabk.info@gmail.com www.oussamabenkhiroun.com
Éléments d'un système informatique
5 niveaux clés d'un système informatique : Données

Programmes
● Matériel : ordinateur, imprimante, ...
● Système d'exploitation (SE) (OS: Operating System): Langage
intermédiaire indispensable entre un utilisateur, les
programmes applicatifs, et le matériel de l’ordinateur Système d’exploitation
● Langage de haut niveau : permet d 'écrire des
Matériel
programmes qui manipulent les données.

Chaque niveau dépend de ceux inférieurs, de telle manière que la suppression d'un niveau plus
inférieur aura comme conséquence l'écroulement du (des) niveau(x) supérieurs

2
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Qu'est-ce qu'un système d'exploitation? (1/2)
Rôle principal ?
● Ensemble de composants (de bases et utilitaires) qui interagissent.
● Permet la gestion des ressources communes de l'infrastructure.
● Lié de manière étroite au matériel sous jacent.
Propriétés ?
● Les systèmes cachent la complexité du matériel et des communications.
● Ils fournissent les services communs des plus haut niveaux d 'abstraction.

Note : Différence entre Système et application


Application → Réponse à un problème spécifique, en utilisant les services
généraux fournis par le système d‘exploitation

3
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Qu'est-ce qu'un système d'exploitation? (2/2)
Son rôle peut être vu sous deux aspects complémentaires :

✔ Adaptation d'interfaces :
➔ Haut niveau d'abstraction
➔ Dissimiler les limitations physiques (taille mémoire) et le partage des
ressources entre plusieurs utilisateurs.

✔ Gestion des ressources – critères de bonne gestion


1. Efficacité : pas de perte de temps (taux d'utilisation)
2. Partage sécurisé :
● Séparation stricte entre utilisateurs (ne pas détruire les données des autres)
● Partage équitable des ressources (CPU, mémoire, disque) entre utilisateurs.
4
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Composants d’un système opératoire
Applications :
tableur, navigateur, jeux, BD, programmes
Applications utilisateurs
Compilateur, éditeurs de textes, liens, chargeur,
assembleur, débogueur
Appels systèmes Commandes

Gestion de la Gestion de la Gestion des


Système concurrence protection fichiers
d'exploitation Gestion du Gestion de la Gestion des
processeur mémoire E/S
Mécanismes d'interruption
Matériel physique Processeur, mémoire, ...., souris, imprimante
5
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Fonctions d’un système
d’exploitation

6
Fonctions d’un système d’exploitation (1/3)
▪ Gestion du processeur (CPU) : le système doit gérer l’allocation du processeur
aux différents programmes pouvant s'exécuter :
→ Planifier l'exécution des programmes grâce aux algorithmes
d'ordonnancement.
▪ Gestion de la mémoire :
Le système doit gérer l'allocation de la mémoire centrale entre
les différents programmes qui s’exécutent (pagination /
segmentation).
Comme la mémoire physique peut être petite pour contenir la
totalité des programmes, la gestion de la mémoire se fait dans ce
cas selon le principe de la mémoire virtuelle
7
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Fonctions d’un système d’exploitation (2/3)

● Gestion de la concurrence :
Comme plusieurs programmes coexistent en mémoire centrale, ceux-ci
peuvent vouloir communiquer pour échanger des données . Par ailleurs, il faut
synchroniser l'accès aux données partagées afin de maintenir leur cohérence.

● Gestion des Entrées/Sorties :


Le système doit gérer l'accès aux périphériques. c'est-à dire faire la liaison entre
les appels de haut niveau des programmes utilisateurs (exemple getchar())
et les opérations de bas niveau responsable du périphérique (exemple clavier).

8
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Fonctions d’un système d’exploitation (3/3)
● Gestion des fichiers :
La mémoire centrale est une mémoire volatile. Ainsi, toutes les données devant
être conservées au delà de l'arrêt de la machine, doivent être stockées sur une
mémoire de masse ( disque dur, disquette, CD...)
→ système de gestion de fichiers (SGF).
Différents formats selon SE (NTFS, Ext, FAT, etc.)

● Gestion de la protection (droits d’accès) :


Le système doit fournir des mécanismes garantissant que ses ressources (CPU,
mémoire, fichiers) ne peuvent être utilisées que par les programmes auxquels
les droits nécessaires ont été accordés.
9
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Structure d’un système d’exploitation (1/2)
Programmes
utilisateurs

Utilitaires

Fonctions
systèmes
Noyau
(kernel)

Matériel

10
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Structure d’un système d’exploitation (2/2)
● Le bloc matériel (couche physique, hardware)

● Le noyau : gère l’accès aux processeurs, la mémoire, le contenu des disques et contrôle
les échanges avec les différents périphériques ;
→ Il est chargé en mémoire centrale à partir du disque système dès le démarrage (boot)
de l'ordinateur

● Fonctions systèmes : bibliothèque standard d’appels système ;

● Utilitaires : interpréteurs de commandes (shell), éditeurs des liens, compilateurs,


gestionnaire de fenêtres et de bureau, etc.
→ Ces services forment la partie du SE qui est stockée en mémoire de masse et n'est
chargée à la mémoire qu'à la demande de l'utilisateur. Chaque service correspond à une
commande externe.
11
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Mode superviseur vs. Mode utilisateur
● Les fonctionnalités d'un système d'exploitation sont accessibles par le biais des
commandes (Terminal shell (Linux); invite DOS/Powershell (Windows)) ou des
appels systèmes (open(..), read(..), printf(..)).
● Le mode superviseur est le mode d'exécution du système :
C'est un mode d'exécution privilégié qui autorise notamment l'appel à des
instructions interdites en mode utilisateur (ex. manipulation des bits). Ce mode
assure la protection du système d'exploitation.
● Le passage du mode utilisateur vers le mode superviseur est soit provoqué par
un appel système, soit par l'arrivée d'une interruption.
● Le passage du mode utilisateur/superviseur s'accompagne de commutation de
contexte (sauvegarde de contexte utilisateur, changement de mode
d'exécution, restauration du contexte utilisateur)
12
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Exemple
d’exécution d’un
programme

13
Supposons que Comment ça marche
l'ordinateur exécute le pour afficher le
programme suivant : caractère tapé au clavier

( écrit en langage C )
14
Le SE interrompt donc Lorsque l'on frappe sur
Notre programme, en
notre programme et lance une touche du clavier, le
arrivant sur l'instruction
un programme capable code (binaire)
getchar, fait appel au SE
de lire l'unité correspondant à la lettre
pour l'informer qu'il attend
d'entrées/sorties tapée est envoyé par le
un caractère au clavier.
correspondant au clavier. clavier à l'ordinateur.

Une fois capté et stocké Notre programme passe à


A ce moment là, une copie
par le circuit électronique la seconde instruction qui
de ce code est réalisée
gérant la communication consiste à afficher ce
puis transmise au SE.
entre le clavier et caractère, et un
Celui-ci réactive alors
l'ordinateur, le programme mécanisme semblable
notre programme en lui
chargé de la lecture est sera mis en route pour
fournissant le code
informé que la donnée est afficher le caractère à
(ASCII) du caractère.
disponible. l'écran. 15
Chacune de ces étapes pourrait être décrite d'une manière encore plus précise:

Ainsi, pour lancer le programme de lecture du clavier,


le SE détermine, via une table, l'adresse sur le disque
du programme en question.

Puis, il assure la rotation du disque, positionne la


tête de lecture à cette adresse, et transfère en
mémoire la suite de 0 et de 1 composant le fichier.

Enfin, après avoir chargé le contexte d'exécution du


programme, le SE lui donne la « main » et celui-ci
peut alors s'exécuter. […] 16
Classification
des systèmes d’exploitation

17
Classification des systèmes d’exploitation

On distingue plusieurs typologies (types) de systèmes d’exploitation (SE), selon :


1. La structure du SE ;
2. Les services rendus ;
3. Leur architecture logique ;
4. L’architecture matérielle qui les supporte.

18
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
1 Selon la structure du SE

Système monolithique

Selon la structure du SE
(modulaire et non-modulaire)

Système à micro-noyau

Système à noyau hybride

● Le noyau est généralement exécuté dans un espace mémoire séparé de l’espace des
applications: espace noyau; par opposition à l’espace utilisateur. Le passage entre ces deux
espaces se fait via des appels systèmes. L’intérêt de cette séparation est que le système ne
crash/se plante pas si une application plante.
19
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
1 Selon la structure du SE

1.1.1 Système monolithique non modulaire


● Ensemble des fonctions du système et des pilotes regroupés dans un seul bloc
de code (mode noyau).
(+) Facilité de conception
(+) Rapidité d’exécution
(-) Code dur à maintenir
● Exemples : MS-DOS, les premières versions d'UNIX

20
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
1 Selon la structure du SE

1.1.2 Système monolithique modulaire


● 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
séparés du noyau
(+) Economie de mémoire (ex: seuls les pilotes utiles sont chargés)
(+) Chargement des fonctionnalités à la demande
(+) Augmentation des possibilités de configuration
(-) Instabilité relative aux modules (une erreur dans un module met en danger la stabilité
de tout le SE)
● Exemples : Linux, BSD, Sun/Oracle Solaris

21
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
1 Selon la structure du SE

1.2. Système à micro-noyau


● Système basé sur un noyau minimal (appelé micro-noyau)
● Déplace plusieurs fonctions du SE vers des « processus serveur » s’exécutant en
mode utilisateur.
(+) Code de taille réduite avec des modules ou des librairies indépendantes du noyau
(+) Fiabilité augmentée: si un processus serveur « crash », le système continue à
fonctionner et il est possible de relancer ce service sans redémarrer
(+) Modèle facilement étendu à des systèmes distribués
(-) Nombre d'appels système nettement plus important que pour les noyaux
monolithiques -> performance d’exécution plus faible
● Exemples : GNU HURD, Minix, Windows NT
22
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
1 Selon la structure du SE

1.3. Système hybride


● Noyaux qui reprennent des concepts à la fois des noyaux monolithiques et des
micro-noyaux, pour combiner les avantages des deux :
1. Seules les fonctions fondamentales sont dans l’espace noyau.
2. Certaines fonctions non critiques, mais générant beaucoup d’appels
système, sont réintégrées dans l’espace noyau.

● Exemples : Mac OS x, Windows 10, Windows XP

23
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
2 Selon les services rendus

2.1. Système Mono-tâche vs. Système Mutli-tâches


▪ Mono-tâche : ce système n’autorise l’allocation du processeur que pour
une seule tâche. En effet, une tâche ne prend le processeur que si et
seulement si la précédente est achevée, si non le système se bloque.
Exemple: DOS

● Multi-tâches : capacité du système à pouvoir exécuter plusieurs tâches


« processus » simultanément ; par exemple effectuer une compilation et
consulter le fichier source du programme correspondant.
Exemples: UNIX, Linux, Windows 10
24
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
2 Selon les services rendus

2.2. Système Mono-utilisateur vs. Système Mutli-utilisateurs


▪ Mono-utilisateur : le système ne peut gérer qu’un seul utilisateur.
Exemple: DOS, Windows 95, Windows 98

● Multi-utilisateurs : conçu pour permettre à plusieurs utilisateurs


d'utiliser l'ordinateur simultanément, tout en limitant les droits d'accès
de chacun afin de garantir l'intégrité de leurs données.
Exemples: UNIX, Linux, Windows 10

25
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
3 Selon leur architecture logique

3.1. Systèmes centralisés


● L'ensemble du système est entièrement présent sur la machine
● Les machines éventuellement reliées sont vues comme des entités
étrangères disposant elles aussi d'un système centralisé
● Le système ne gère que les ressources de la machine sur laquelle il est
présent.
● Exemples: la plupart des SE connus

26
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
3 Selon leur architecture logique
3.2. Systèmes répartis (ou distribués)
● Un SE distribué permet de gérer l'ensemble des machines connectées et de
gérer le partage des ressources entre les ordinateurs
● Un utilisateur d'un ordinateur peut se servir de ressources coûteuses qui
existent sur un autre ordinateur
● Le système apparaît aux yeux de l’utilisateur comme une machine unique
● L’utilisateur ne se soucie pas de la localisation des ressources. Quand il lance un
programme, il n'a pas à connaître le nom de la machine qui l'exécutera
● Ces systèmes exploitent des capacités de parallélisme d’un ensemble de
machines
● Exemples : Mach, Amoeba, Chorus OS, Erlang, Inferno, etc.
27
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
4 Selon l’architecture matérielle qui les supporte
4.1. Architecture monoprocesseur (multiprogrammation)
● Un processeur avec un seul cœur (on dit qu’il est single-core) ne peut
traiter qu’une seule instruction élémentaire à la fois
● Il a fallu développer un mécanisme de gestion des processus pour offrir
un « pseudo » parallélisme à l'utilisateur : c'est la multiprogrammation.

● Avant l’apparition des processeurs multicœurs, on avait l’impression que les


processeurs avec un seul cœur étaient multi-tâches grâce au passage rapide d’une
instruction à une autre (multiprogrammation).
Exemple de famille des processeurs avec un seul cœur: Intel Pentium
(années 1990 -> 2006)

28
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Classification des systèmes d’exploitation :
4 Selon l’architecture matérielle qui les supporte
4.2. Architecture avec processeur multicoeurs
● Un processeur multicœurs est composé de deux ou plusieurs cœurs
indépendants, chacun étant capable de traiter des instructions
individuellement.
● Les cœurs du microprocesseur fonctionnent en parallèle afin d'obtenir
une puissance de calcul plus importante.
Exemples de familles des processeurs multicœurs:
■ Intel Celeron Dual Core (2 cœurs)

■ Intel Core i3, i5, i7 (4 à 8 cœurs selon la génération)

■ AMD Ryzen 7 (8 cœurs)

29
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Autres classes des systèmes d’exploitation
Systèmes temps réel
● Les systèmes temps réel (en anglais RTOS: Real Time Operating Systems) sont des
systèmes pour lesquels l'exécution des programmes doit respecter des
contraintes temporelles strictes ou souples.
● Les résultats de l'exécution d'un programme n'est plus valide au delà d'un
certain temps connu et déterminé à l'avance.

Un exemple typique est celui des systèmes qui contrôlent un processus de


fabrication dans une usine (comme le montage de véhicule) : dans le cas d'un robot
soudeur, une soudure faite trop tôt ou trop tard peut compromettre un véhicule.
Exemples de SE temps réel : RTLinux , VxWorks, RTX, FreeRTOS, QNX, etc.

30
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation
Autres classes des systèmes d’exploitation
Systèmes embarqués
● Les systèmes embarqués sont prévus pour fonctionner sur des machines de
petite taille, telles que des appareils électroniques autonomes (sondes spatiales,
robot, ordinateur de bord de véhicule, etc.), possédant des ressources limitées
en terme de mémoire et d'énergie (consommation énergétique restreinte)
● Les systèmes embarqués sont souvent des systèmes temps réel
Les systèmes embarqués utilisent généralement des microprocesseurs à basse consommation
d'énergie ou des microcontrôleurs.
La partie logicielle est en partie ou entièrement programmée dans le matériel, généralement en
mémoire dans une mémoire morte (ROM), EPROM (effaçable et programmable), FLASH, etc. On
parle alors de firmware.
Exemples de systèmes embarqués : Windows Mobile, Android (système de Google basé sur un
noyau Linux), Symbian OS (sur les anciens Nokia), consoles de jeux (PlayStation, Xbox, etc.)
Copy protected with Online-PDF-No-Copy.com 31
Dr. Oussama BEN KHIROUN | Systèmes d’exploitation

Vous aimerez peut-être aussi