Académique Documents
Professionnel Documents
Culture Documents
SEI1
SEI1
Cours Système
d’exploitation I
1ERE TI
2
Objectifs
Chap. 1
Généralités sur les
systèmes d’exploitation
5
Introduction
► Un ordinateur est formé d’une partie matérielle et d’une partie logicielle. Cette dernière comporte des
logiciels qui sont classés en deux catégories : les programmes d'application des utilisateurs et les
programmes système qui permettent le fonctionnement de l'ordinateur. Parmi ceux-ci, le système
d'exploitation (SE).
► Le système d’exploitation est le logiciel qui prend en charge les fonctionnalités élémentaires du matériel
et qui propose une plateforme plus efficace en vue de l’exécution des programmes. Il gère les
ressources matérielles, offre des services pour accéder à ces ressources et crée des éléments abstraits de
niveau supérieur, tels que des fichiers, des répertoires et des processus.
6
Introduction
des années 50. Ils ont comme utilitée de faire des calculs, C'est aussi l'apparition
du terme « bug »
8
Historique
Une machine moins onéreuse (IBM 1401) lisait les cartes (a) pour en recopier
le code sur une bande magnétique (b). Le gros calculateur lisait cette bande
(c), exécutait les jobs (d) puis transcrivait les résultats sur une autre bande (e)
postposant ainsi l'impression des résultats (impression off-line ensuite par un
ordinateur plus léger (f).
11
Historique
au taux de transferts de données énormes suite à l’évolution des réseaux ainsi que
des nouvelles technologies des systèmes d’informations tels que les systèmes
► Système multitâches:
► Dans un système d’exploitation multitâche, à un instant donné, plusieurs
tâches peuvent s’exécuter logiquement en parallèle. Ce parallélisme peut
être :
► Vrai : Si l’ordinateur dispose d’au moins deux processeurs pouvant exécuter
simultanément deux activités (système multiprocesseurs)
► Faux : Consistant à replier des activités de plusieurs processeurs fictifs sur un seul
processeur réel (pseudo-parallélisme).
► Le parallélisme peut être considéré comme l’activation de plusieurs
processus.
16
Catégories des Systèmes d’exploitation
► Système 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.
► Le terme opposé est mono-utilisateur qui est utilisé lorsque l'on parle de
systèmes d'exploitation utilisable par un seul utilisateur à la fois ou encore
en référence à une licence de logiciel prévue pour un utilisateur.
17
Catégories des Systèmes d’exploitation
► Systèmes Embarqués:
► Les systèmes embarqués sont des systèmes d'exploitation prévus pour
fonctionner sur des machines de petite taille, telles que des appareils
mobiles ou des appareils électroniques autonomes (sondes spatiales,
robot, ordinateur de bord de véhicule, etc.)
► Gestion avancée de l'énergie et leur capacité à fonctionner avec des
ressources limitées.
► Fonctionnalités bien précises et spécifiques (CISCO IOS pour le routage,
Android et iOS pour la téléphonie, Multos pour les cartes a puces,…)
20
Catégories des Systèmes d’exploitation
► Systèmes Distribués:
► permet l'exécution d'un seul programme sur plusieurs machines,
► distribue les processus et les coordonne ensemble.
► utilisé généralement pour les gros calculs, comme l’inversion de grandes
matrices.
► L’ancêtre du cloud computing.
22
Comparaison des Systèmes d’exploitation
23
Structure en couches d’un SE moderne
24
Fonctionnalités
Le noyau
► Réside en mémoire (fréquence élevée des interventions)
► Petite taille
► Gestion du processeur: reposant sur un allocateur ( dispatcher ) responsable de la répartition du
► temps processeur entre les différents processus, et un planificateur ( scheduler ) déterminant les
► processus à activer, en fonction du contexte.
► Gestion des interruptions : les interruptions sont des signaux envoyés par le matériel, à destination du
► logiciel, pour signaler un évènement.
► Gestion du multi- tâches: simuler la simultanéité des processus coopératifs (i. e. les processus devant se
synchroniser pour échanger des données) et gérer les accès concurrents aux ressources (fichiers,
imprimantes, ...)
25
Fonctionnalités
La mémoire virtuelle
► La mémoire centrale a toujours été une ressource critique: initialement très coûteuse et
peu performante (tores magnétiques), elle était de très faible capacité.
► Pour pallier le manque de mémoire centrale, l’idée est venue d’utiliser des mémoires
secondaires (de type disque dur), plus lentes, mais de beaucoup plus grandes
capacités.
► La mémoire virtuelle repose sur une décorellation entre la mémoire physique (centrale
ou secondaire), présente sur la machine, et l’espace mémoire mis à disposition des
programmes par le système d’exploitation (la mémoire virtuelle, ou logique).
29
Fonctionnalités
Chap. 2
Gestion des processus
35
Gestion des processus
► Processus
► modèle simple et efficace pour représenter l'exécution concurrente de
tâches au sein d'un système d'exploitation multi- tâches.
► Le terme de processus a été utilisé pour la première fois au sein du
système Multics, et popularisé depuis.
► Tout le travail effectué par l'ordinateur est réalisé par des processus
séquentiels, qui représentent chacun une instance d'un programme
séquentiel en train de s'exécuter.
37
Gestion des processus
► Un processus n’est créé qu'au moyen d'un appel système, c'est-à-dire par
un autre processus ayant réalisé cet appel
► Création et développement d'arborescence des processus, à partir d'un
ancêtre commun à tous, créé au démarrage du système (processus init
sous Unix).
► Notion de groupes de processus « process groups », définis comme des
sous arborescences, est également utilisée par certains systèmes pour
limiter la portée des commandes de contrôle de processus
► par exemple la commande kill lancée à partir de l'interpréteur de commandes,
sous Unix.
42
Gestion des processus
► Prêt s'il est suspendu en faveur d'un autre. Un processus est prêt s'il ne lui
manque que la ressource processeur pour s'exécuter ;
► Elu (en exécution) s'il est en cours d'exécution sur le processeur.
Dans le cas d'une machine multiprocesseurs, plusieurs processus
peuvent être élus en même temps, mais il y a toujours au plus autant de
processus élus que de processeurs
► Bloqué (en attente)s'il est en attente d'un événement externe (bloc disque,
frappe clavier, ...).
43
Gestion des processus
44
Gestion des processus
► Le système d’exploitation dispose d’une table de processus, permettant de gérer de manière globale chaque
processus.
► Chaque processus possède une entrée, appelée bloc de contrôle de processus (PCB). Il contient diverses
informations, comme :
▪ son PID ;
▪ son PPID ;
▪ son état ;
▪ son contexte processeur (état des registres) et mémoire (adresses de l’espace d’adressage) ;
▪ ses critères d’ordonnancement ;
▪ des informations sur les ressources utilisées
▪ mémoire principale
▪ temps d'exécution
▪ périphériques d'E/S en attente
▪ files d'attente dans lesquelles le processus est inclus, etc...
▪ et toutes les informations nécessaires pour assurer la reprise du processus en cas d'interruption
45
Gestion des processus
► Afin que cette table ne soit pas trop énorme, la plupart des systèmes
disposent de deux zones par processus.
► La première, jamais swappée, contient les informations critiques dont le
système a toujours besoin.
► La deuxième, contenue dans l'espace de chaque processus et donc
swappable, contient l'information dont le processus n'aura besoin que
lorsqu'il passera effectivement de l'état prêt à l'état élu
46
Gestion des processus
► The process ID or PID: a unique identification number used to refer to the process.
► The parent process ID or PPID: the number of the process (PID) that started this process.
► Terminal or TTY terminal to which the process is connected.
47
Gestion des processus
► Le traitement des interruptions par le système s'effectue en appelant une routine de traitement
associée à chaque type d'interruption
► Son adresse est stockée dans les cases d'un tableau indexé par le type d'interruption, appelé
vecteur d’interruptions.
► Le traitement d'une interruption par le système s'effectue de la façon suivante :
► Le processeur sauvegarde la valeur de son compteur ordinal dans la pile courante,
détermine le type de l'interruption, passe en mode noyau, et charge la nouvelle valeur du compteur
ordinal à partir de la valeur contenue dans le vecteur d'interruptions pour le type considéré ;
► La routine de traitement de l'interruption, écrite en langage machine, sauvegarde les registres du
processeur dans la pile courante, ou bien construit une autre pile dédiée au traitement de
l'interruption, puis appelle la procédure principale de gestion de l'interruption
51
Gestion des interruptions
A 3 0
B 6 1
C 4 4
D 2 6
E 1 7
Calculer le temps de sejour moyen et le temps d’attente moyen selon les algorithmes FIFO et SJF
61
Algorithmes préemptifs
Donner le diagramme de GANTT et les temps de séjour moyen et d’attente moyen selon:
1- FIFO et SJF
2- SRT et Round Robin (quantum =1)
69
Chap. 3
Gestion de fichiers
70
Système de fichiers
► Une erreur très courante chez les informations est la confusion entre un
système de fichier et un système de gestion de fichier.
► Le SGF est un module du noyau qui sert à gérer un système de fichier.
► Un SF est une représentation de bas niveau des données sauvegardées
(fichiers et répertoires)
72
Les fichiers
► Les fichiers (comme bien d'autres composants) ont un cycle de vie. Ils sont
créés (ou ouverts), on les fait modifier (écrire), on lit à partir d'eux, et
finalement, peut-être, ils meurent (sont effacés).
74
Types de fichiers
(La racine)
(l'amorçage)
(Les commandes) (Les bibliothèques)
(La configuration)
(Le répertoire temporaire)
(Les périphériques)
(le répertoire du super utilisateur) (Les journaux systèmes)
► L’utilisation d’une unité de stockage (par exemple un disque dur) soit pour
l’installation d’un système d’exploitation ou le stockage de données
nécessite que celle-ci soit préalablement préparée d’abord par le
partitionnement puis par le formatage logique.
► Le partitionnement consiste à créer des zones sur le disque dont les
données ne seront pas mélangées. Cela sert donc si l'on veut, par
exemple, installer des systèmes d'exploitation différents n'utilisant pas le
même système de fichiers. Il y aura donc au minimum autant de partitions
que de systèmes d'exploitation utilisant des systèmes de fichiers différents.
80
Objectif du partitionnement
Formatage
Formatage
fichiers
fichiers
fichiers
► Tous les supports de données (les disques durs locaux ou réseaux, les lecteurs de disquette, de
CDROM) doivent être "montés" afin que les données qu'elles stockent soient accessibles pour les
utilisateurs d'un système Linux. Pour lire les données d'un CDROM ou d'une disquette, il
faut monter le périphérique correspondant. De même pour retirer un CDROM ou une disquette
de son lecteur, il faut au préalable démonter le périphérique correspondant.
► Pour pouvoir utiliser un système de fichiers, celui-ci doit être monté sur un point de montage de
l'arborescence Linux : son contenu est alors accessible comme un simple répertoire.
► La commande mount accepte deux arguments :
► Le premier est le fichier spécial correspondant à la partition contenant le système de fichiers.
► Le second est le répertoire sous lequel il sera monté (point de montage).
Montage de systèmes de 89
fichiers
fichiers
Informations sur le FS
Principales commandes
Principales commandes
Principales commandes
► # introduit un commentaire.
► $ introduit un nom de variable.
► & lance la commande en background.
► ; sépare 2 commandes tapées sur une même ligne.
► !! relance la commande précédente.
► !ch relance la dernière commande commençant par ch.
► !n relance la commande numéro n.
► <, <<, >, >> et | sont des caractères utilisés pour les redirections des
entrées-sorties.
Caractères spéciaux 97
Octal Binaire
777 111 111 111 Permissions maximum
XOR (ou -) 021 000 010 001 Masque (umask)
= 756 111 101 110 Permissions appliquées
114
Chap. 4
Gestion de mémoire
117
Gestion de mémoire
► étant donné que les processus sont chargés à différentes adresses, les
adresses relatives générées par les compilateurs et les éditeurs de liens sont
différentes des adresses physiques, alors comment réaliser la translation
d'adresses ?
► La cohabitation de plusieurs processus en mémoire doit assurer leur
protection :
► il ne faut pas permettre à un processus d'un utilisateur d'adresser la mémoire
des processus des autres utilisateurs.
► Quelle est la meilleure manière d'assurer la protection des processus
contre les intrusions des autres ?
124
Conversion d’adresse
► En fonction de l’algorithme
choisi, on choisirait le trou T1,
T2 ou T3.
► Algorithme First-Fit : trou T1.
► Algorithme Best-Fit : trou T3.
► Algorithme Worst-Fit : trou
T2
135
Fragmentation
► Les pages (de processus) ne sont pas toutes simultanément actives ; elles ne sont
donc pas nécessairement toutes présentes simultanément dans la mémoire
principale.
► Les pages inactives attendent sur le disque.
► L'espace d'adressage est donc virtuel sa taille peut être supérieure à celle de la
mémoire réelle.
► Les processeurs disposent actuellement d’un dispositif, le MMU « Memory
Manager Unit » qui permet de placer des processus en mémoire sans
nécessairement placer les pages de processus dans des cadres de pages
contigus.
► On distingue les adresses logiques qui se réfèrent aux pages de processus des
adresses physiques qui se réfèrent aux cadres de pages.
139
Pagination
► Que se passe-t-il si un processus essaie d’utiliser une page qui n’est pas en
mémoire ?.
► L’accès à une page marquée invalidé provoque un défaut de page. En
essayant d’accéder à cette page, il y a un déroutement vers le SE.
► La procédure permettant de traiter ce défaut de page est la suivante :
► • S’assurer que la référence de la page est correcte.
► • S’assurer que la page désirée est bien en mémoire auxiliaire.
► • Trouver un cadre de page libre et charger la page.
145
Remplacement des cadres
► Lorsque le SE se rend compte au moment de charger une page qu’il n’existe aucun
cadre de page disponible, il peut faire recours à un remplacement de page.
► 1. Trouver l’emplacement de la page désirée sur disque.
► 2. Trouver un cadre de page libre. S’il existe un cadre de pages libre, l’utiliser, sinon
utiliser un algorithme de remplacement de pages pour sélectionner un cadre de
page victime.
► 3. Enregistrer la page victime dans le disque et modifier la table de page.
► 4. Charger la page désirée dans le cadre de page récemment libéré et modifier la
table de pages.
► 5. Redémarrer le processus utilisateur.
146
Algorithmes de remplacement
► Il est dès lors possible d’attribuer des protections adaptées à chaque type
de segment :
► un segment de code peut être déclaré en exécution seule, une table de
constantes en lecture seule mais pas en écriture ni en exécution.
► La segmentation permet aussi le partage, par exemple du code d’un
éditeur entre plusieurs processus. Ce partage porte alors sur un ou plusieurs
segments.
► Cela se fait par exemple pour des bibliothèques de sous-programmes.
154
segmentation
► https://www.eclipse.org/downloads/packages/release/indigo/sr1/eclipse-
classic-371