Académique Documents
Professionnel Documents
Culture Documents
Chap 1
Chap 1
Introduction
1
2 CHAPITRE 1. INTRODUCTION
Système d’exploitation
Ordinateur matériel
Compilateur
Moniteur d’enchaînement de
travaux
Gestionnaire des entrées/sorties
périphérique
processeur
temps
Processus 1
Processus 2
n partitions de
mémoire … …
Processus n
SE
du travail A.
La multiprogrammation nécessite des circuits de contrôle pour protéger
chaque travail contre les intrusions et les erreurs des autres. Les ordinateurs
de cette époque possédaient ces circuits.
trés sur la figure 1.5. L’exécution de A est entamée en premier puis lorsqu’il
A A A B
périphérique
A B A B C A B C
processeur
B
attente
péripherique
d’E/S temps
attente CPU
B,C A,C A,B B,C A,C A C B
temps
Exploitation en réseau
Exploitation en distribué
Systèmes multiprocesseurs
graphique a été rendue populaire par le Macintosh de Apple. Elle est main-
tenant proposée pour la plupart des machines.
des processus et des processus légers dans le Chapitre ??). Les processus lé-
gers sont un moyen de raffiner et de diviser le travail normalement associé
à un processus.
Lorsqu’on lance une application, le processus qui est créé par le système
d’exploitation exécute les instructions du programme en mode utilisateur.
À certains moments, on fait des appels système qui requièrent l’exécution
d’instructions (et l’accès à des données) qui appartiennent au système d’ex-
ploitation. Pour ce faire, le même processus passe alors au mode supervi-
seur. Il est à noter qu’il s’agit bien du même processus, même s’il exécute
des instructions du système d’exploitation. On peut considérer que des
routines du système d’exploitation sont exécutées au nom du processsus
en question. La figure 1.7 illustre ce principe.
La figure 1.8 illustre de manière plus détaillée ce qui se produit typi-
quement lors d’un appel système. Dans cet exemple, une application exé-
1.4. APPELS SYSTÈME 11
Mode Mode
utilisateur superviseur
cute fork(). Il s’agit ici d’une fonction d’une librairie qui a été compilée
avec l’application. Cette fonction prépare le terrain pour exécuter le vé-
ritable appel système, c’est-à-dire une instruction assembleur TRAP qui
prend comme paramètre un pointeur dont la valeur est ici indiquée par
SYS_FORK. Essentiellement, cette instruction met d’abord le processeur en
mode superviseur, puis cherche dans une table (qui a été créé lors du char-
gement du système d’exploitation), à la position indiquée par SYS_FORK,
l’adresse de la routine qui doit être exécutée. Puis le compteur ordinal se
positionne à cette adresse et continue l’exécution du processus, cette fois-ci
avec des instructions qui appartiennent au système d’exploitation. Lorsque
le service demandé est terminé, on revient à l’application, tout en rétablis-
sant le mode utilisateur.
Application
...
fork();
...
fork() {
sys_fork() {
...
// mise a jour des registres
...
trap SYS_FORK;
return;
...
sys_fork() }
}
Librairie
NOYAU
Système de fichiers
Mémoire
Kernel
E/S
Allocation de ressources
cution.
– Au troisième niveau, on a le module de gestion des entrées/sorties
qui se charge de gérer tous les périphériques (clavier, écran, disques,
imprimantes, etc.).
– Au quatrième niveau, on trouve le gestionnaire de fichiers qui se
charge de la gestion de l’espace du disque, de la manipulation des
fichiers tout en assurant l’intégrité des données, la protection des fi-
chiers, etc.
– Au cinquième niveau, on a le module d’allocation de ressources qui
se charge d’assurer une bonne utilisation des ressources ; de compta-
biliser et de fournir des statistiques sur l’exploitation des ressources
principales ; de créer de nouveaux processus et leur attribuer un ni-
veau de priorité : de permettre à chaque processus existant dans le
système d’obtenir les ressources nécessaires dans des limites de temps
raisonnables ; d’exclure mutuellement les processus qui demandent
une ressource non partageable et d’éviter les situations de blocage.
Utilisateur Utilisateur
Programmes Mode
Utilisateur Prog. 1 Prog. n Utilisateur
1 3
2 4
Mode
Kernel Kernel
Service
Utilitaires
procédures
1.5.3 Micro-kernel
Une architecture plus moderne que celle monolitique est l’architecture
micro-kernel (voir la figure 1.11) utilisée en MACH 5 / HURD6 , Minix et
NT. L’attribut principal qui distingue les micro-kernels des kernels monoli-
tiques est l’implantation de leurs architectures respectives en mode super-
viseur (kernel mode ) et en mode usager (user mode ). L’architecture mono-
litique met en œuvre tous les services du Système d’exploitation (contro-
leurs de dispositifs, mémoire virtuelle, système de fichiers, réseaux, etc)
dans le domaine du mode superviseur de l’UCT. Par contre, l’architecture
micro-kernel fait une division entre les services du Système d’exploitation,
en les divisant en « haut-niveau » implantés dans le domaine de l’utilisa-
teur et « bas-niveau » implantés dans l’espace du mode superviseur.
5
http ://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html
6
http ://www.gnu.ai.mit.edu/software/hurd/hurd.html
1.5. STRUCTURE D’UN SYSTÈME D’EXPLOITATION 15
Processus
utilisateur
Matériel
7
http ://www.vmware.com
1.5. STRUCTURE D’UN SYSTÈME D’EXPLOITATION 17
Sugestions de lecture
Référence : Silverwschatz A., Galvin P., Gagné G., Applied Operating System
Concepts, Wiley, 2003.
Chapître 1
Section 1.1 What is an operating system ?
Chapître 2
Section 2.1 Computer-System Operation.
Section 2.5 Hardware protection : Important, avec une attention toute par-
ticulière aux modes utilisateur et superviseur.
Chapître 3
Section 3.1 Systems components : Bien comprendre le concept de proces-
sus.
1.6 Exercices
1. Indiquez si les éléments logiciels suivants se situent parmi la catégo-
rie des programmes d’application, des programmes système, ou des
programmes de systèmes d’exploitation.
(a) Le programme more
(b) L’éditeur de texte emacs
(c) La librairie de routines X-Window (Xlib)
(d) Un script de shell
(e) Le traitement de texte Ms-word
(f) La fonction read
2. L’ordinateur personnel compatible IBM fournit une interface aux pé-
riphériques en utilisant des routines du BIOS (Basic Input and Out-
put System) qui est stockée en mémoire morte (ROM). Quel avantage
cette interface fournit-elle aux développeurs d’applications pour la
plate-forme Intel 80x86 ?
3. Dans un environnement multiprogrammé, y-a-t-il partage des res-
sources entre les processus d’un même utilisateur ? Expliquez.
4. Le degré de multiprogrammation représente le nombre maximal de
processus qu’un système uniprocesseur peut manipuler à tout mo-
ment. Expliquez quelques facteurs matériels et logiciels qui pour-
raient avoir une certaine influence sur le degré de multiprogramma-
tion d’un système.
5. Décrivez le facteur principal qui sert de mesure du temps de réponse
pour un système à soumission de lots et pour un système en temps
partagé.
6. Expliquez la différence fondamentale qui existe entre un système d’ex-
ploitation multiprogrammé et un système d’exploitation réseau.
7. Une fenêtre (window ) représente un certain niveau d’abstraction de
l’écran car les applications interagissent avec celle-ci et non pas direc-
tement à l’écran. Décrivez trois prototypes de fonctions qu’une appli-
cation pourrait utiliser pour interagir avec une fenêtre d’écran.
8. Quelle différence existe-il entre un système temps réel et une applica-
tion en temps réel ? Donnez un exemple pour chaque cas.
9. Expliquez la raison principale de l’utilisation de deux modes (usager,
système) d’opération dans les systèmes d’exploitation modernes.
1.6. EXERCICES 19