Академический Документы
Профессиональный Документы
Культура Документы
Département d’Informatique
Cours du module :
Système d’exploitation I
2ème année Informatique
Tahar ALLAOUI
t.allaoui@lagh-univ.dz
Chapitre 1:
Introduction générale
2
Chapitre1 : Introduction générale
1. Introduction
Les systèmes informatiques sont composés de plusieurs processeurs, de la mémoire centrale,
des disques,…. Ces éléments forment un système complexe.
Afin de réaliser ses tâches, l’utilisateur doit interagir avec le système informatique, mais
l’interaction directe est impossible. Pour cette raison, l’utilisateur doit utiliser un
intermédiaire permettant d’exploiter le matériel, les ordinateurs sont équipés donc d’une
couche logicielle appelée Système d’exploitation.
2. Définition
Un système d’exploitation est un ensemble de programmes qui réalisent l’interface entre le
matériel de l’ordinateur et les utilisateurs.
Autrement dit, un système d’exploitation est l’ensemble de programmes qui gèrent toutes les
ressources d’une machine.
3. Historique
Les systèmes d’exploitation sont fortement liés à l’architecture des machines sur lesquelles
ils étaient implémentés.
On peut distinguer 4 générations des systèmes d’exploitation :
3
Chapitre1 : Introduction générale
Pour minimiser le temps d’exécution, les jobs sont traités par lots (système par lots), et les
opérations d’E/S et de calcul sont séparées.
4
Chapitre1 : Introduction générale
Tous les processeurs contiennent : une unité arithmétique et logique, une unité de commande,
et des registres permettant de stocker des variables et des résultats temporaires.
La mémoire
C’est un dispositif qui en magasine les informations et les restitues à la demande, elle se
caractérise par :
Temps d’accès
Capacité
Nature
Les périphériques d’E/S
Un périphérique travaille sous la commande du processeur, et permet la communication de
l’ordinateur avec le monde extérieur. Généralement, chaque périphérique possède son propre
contrôleur.
Les bus
C’est un ensemble de lignes transportant les signaux qui permettent au processeur de
communiquer avec ses mémoires et ses périphériques.
5
Chapitre1 : Introduction générale
6. Modes d’exécution
Pour un SE, on peut avoir deux modes d’exécution : mode superviseur et mode utilisateur
Le mode superviseur est un ensemble de programmes protégés de toutes les modifications.
Le mode utilisateur représente les tâches réalisées par l’utilisateur.
7. Noyau d’un SE
Le noyau (Kernel) du SE est le code conçu pour être exécuté pendant que le matériel
s’exécute en mode superviseur.
8. Déroutements et interruptions
Les déroutements et les interruptions sont des événements qui suspendent le déroulement
séquentiel des instructions exécutées par l’UC.
Un déroutement (Trap) est provoqué par une cause directement liée au déroulement de
l’instruction (cause interne).
Le déroutement est une anomalie détectée par l’UC, il peut être causé généralement par une
erreur : donnée incorrecte, débordement, division par zéro,…
L’interruption est un signal envoyé par un périphérique vers l’UC (externe). L’interruption
indique la suspension des activités de l’UC pour répondre à la cause d’interruption, l’UC doit
donc traiter après la fin de l’instruction en cours et avant de passer à une autre instruction.
6
Chapitre 2:
Gestion de processus
4
Chapitre2 : Gestion de processus
1. Introduction
Les SE actuels peuvent réaliser plusieurs tâches simultanément, ses tâches sont exécutées
généralement par un seul processeur. Cette exécution nécessite des moyens permettant de
gérer les tâches et les données qu’elles utilisent afin d’avoir une exploitation optimale de
l’UC.
2. Notion de processus
Les processus correspondent à l’exécution des tâches par le SE : les programmes des
utilisateurs, les E/S,…
Le terme processus fait référence à un jeu d’instructions machine en cours d’exécution.
Un processus correspond à ce jeu d’instructions qui prend vie : c’est une entité dynamique
qui réalise des actions décrites par les instructions.
3. Le modèle de processus
Un SE doit en général traiter plusieurs tâches en même temps, une tâche représente un
processus qui s’exécute avec les valeurs de CO, de registres et de la mémoire.
Comme il n’a la plupart du temps qu’un seul processus, les tâches sont exécutées en Pseudo
parallélisme : le processus traite une tâche à la fois, la suspende, et bascule à une autre tâche.
Pour mettre en place le pseudo parallélisme, on fait appel à des algorithmes
d’ordonnancement pour déterminer à quel moment arrêter un processus pour en servir un
autre.
9
En exécution
1
3
2
4
Bloqué Prêt
10
Outre le fait de sélectionner le bon processus à exécuter, l’ordonnanceur doit également se
soucier de faire un usage efficace du processeur, car les passages d’un processus à un autre
sont coûteux en temps du traitement.
Quand ordonnancer ?
A l’arrivée d’un nouveau processus.
Lorsqu’un processus se termine.
Lorsqu’un processus est bloqué sur une E/S.
11
9. Algorithmes d’ordonnancement préemptifs
9.1 Algorithme SRT
C’est la version préemptive de l’algorithme SJF, cet algorithme choisit le processus dont le
temps d’exécution restant est le plus court.
A l’arrivée d’un nouveau processus, on compare son temps d’exécution avec le temps
d’exécution restant du processus en cours d’exécution, si ce nouveau processus est le plus
court, le processus en cours sera suspendu.
9.2 Algorithme à tourniquet (Round Robin)
Cet algorithme est similaire à FCFS, mais on peut réquisitionner l’UC pour basculer d’un
processus à un autre.
L’UC est allouée à chaque processus pendant un intervalle du temps appelé quantum, si le
processus dépasse son quanta, il sera suspendu, un autre processus sera exécuté.
Exemple
Processus Date d’arrivée Temps d’exécution
P1 0 6
P2 0 5
P3 3 1
FCFS
P1 P2 P3
0 6 11 12
SJF
P2 P3 P1
0 5 6 12
SRT
P2 P3 P2 P1
0 3 4 6 12
Round Robin
12
P1 P2 P1 P3 P2 P1 P2
0 2 4 6 7 9 11 12
13
Chapitre 3:
Gestion de la mémoire
centrale
9
Chapitre3 : Gestion de la mémoire
1. Introduction
2. Hiérarchie de la mémoire
On peut classer les mémoires selon 3 caractéristiques :
La vitesse d’accès.
Le coût.
La capacité de stockage.
Ces critères permettent de regrouper les mémoires en deux catégories : les mémoires volatiles
et les mémoires permanentes.
2.1 Mémoire volatile
Formée de circuits intégrés.
Accès très rapide.
Capacité limitée.
Coût élevé.
Exemple
Les registres et la mémoire centrale.
2.2 Mémoire permanente
Temps d’accès plus long.
Capacité importante.
Coût moins élevé.
Registre
Volatile
Cache Coût Capacité
Vitesse
M.C.
Disque
Permanent
e Bande M
21
Chapitre3 : Gestion de la mémoire
4. Méthodes d’allocation
4.1 Allocation (partition) contiguë
Ce modèle consiste à charger tout le processus à des adresses consécutives.
L’espace mémoire est divisé en deux parties : la 1ère partie est allouée au système
d’exploitation, la 2ème partie est allouée à un processus d’exécution.
Le modèle de partition contiguë permet l’exécution d’un seul programme à la fois, pour
charger plusieurs processus, on doit diviser la mémoire en partitions multiples.
4.2 Partition multiple
Dans ce modèle, plusieurs processus sont stockés dans la mémoire, chacun occupe une
partition.
Partition fixe : l’espace mémoire est divisé en partitions de taille fixe, le nombre de
partitions et la taille de chaque partition sont fixés à la génération du système.
L’espace qui n’est pas utilisé à la fin d’une partition est perdu, on parle alors de la
fragmentation interne.
Partition variable : afin d’éviter le problème de la fragmentation interne, la mémoire
sera divisée dynamiquement à la demande, c à d, l’espace alloué à un processus
correspond exactement à l’espace dont il a besoin. A la fin de ce processus, la partition
est récupérée par le SE pour être alloué complètement ou partiellement à un autre
processus.
Si la taille d’un nouveau processus dépasse la taille de partition non allouée, alors le
programme ne peut pas être chargé dans cette partition, on parle alors de la fragmentation
externe.
22
Chapitre3 : Gestion de la mémoire
6. Pagination simple
Sur un système utilisant la pagination simple, la mémoire physique est divisée en blocs de
taille fixe appelés pages physiques ou cadre e pages, les processus sont divisés en blocs
appelés pages logiques de même taille que les pages physiques.
A l’exécution d’un processus, on charge ses pages dans les cadres de pages disponibles, ces
cadres n’ont pas besoin d’être contigus.
La correspondance entre pages logiques et pages physiques est réalisée selon le schéma
suivant :
23
Chapitre3 : Gestion de la mémoire
p d
@ de base
Cadre de page
7. Segmentation simple
24
Chapitre3 : Gestion de la mémoire
s d
Oui
+
b m Non
Cadre de
page
Erreur d’adresse
Table de pages Mémoire centrale
Exemple
Soit la table de segments d’un processus :
Limite Base
1000 1400
400 6300
400 4300
1100 3200
25
Chapitre3 : Gestion de la mémoire
8. Segmentation paginée
La segmentation et la pagination peuvent être combinées pour donner la segmentation
paginée.
L’adresse est composée de deux niveaux, le niveau segment et le niveau page.
Un segment est une suite de pages, alors que la page est un bloc mémoire physique.
L’entrée de la table de segment contient l’adresse de base de la table de pages correspondant
au segment, le déplacement segment est converti en adresse paginée.
9. Mémoire virtuelle
La mémoire virtuelle (MV) est une technique autorisant l’exécution du processus qui ne peut
pas être chargé entièrement dans la mémoire.
L’avantage de ce schéma est que les programmes peuvent avoir une taille plus grande que
celle de la mémoire physique.
L’idée de la MV consiste à placer tout ou une partie d’un processus dans la mémoire, l’espace
adressable d’un ou de plusieurs programme n’est alors plus limité par la capacité de la
mémoire centrale.
9.1. Pagination à la demande
Cette méthode consiste à échanger dynamiquement des pages entre le disque et la MC en
fonction des besoins du processus en cours d’exécution.
Défaut de page
Certaines pages du processus sont chargées, tandis que les autres sont conservées en mémoire
secondaire.
Il peut arriver qu’une adresse logique fait référence à un n° de page qui n’est pas chargée en
MC, dans ce cas, il se produit un défaut de page.
Il faut donc choisir une page à remplacer comment choisir la page victime.
9.2. Algorithmes de remplacement de pages
Lorsque la MC devient pleine, il faut retirer une page de la MC pour charger une autre.
Si la page physique correspondante n’a pas été modifiée, il suffit de libérer la page, sinon, il
faut copier son contenu sur disque.
Plusieurs algorithmes ont été mis en œuvre pour choisir la page victime :
Stratégie FIFO.
26
Chapitre3 : Gestion de la mémoire
Stratégie optimale.
Stratégie LRU.
Algorithme de la seconde chance.
Stratégie FIFO
Le principe de cette méthode est simple, la page à remplacer est celle qui était chargée en
mémoire le plus longtemps.
Exemple
Soit la chaîne de référence w =70120304230321201701, la mémoire est composée de trois
cadres de pages initialement vides.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 0 0 1 2 3 0 4 2 2 2 3 0 0 0 1 2 7
0 0 1 1 2 3 0 4 2 3 3 3 0 1 1 1 2 7 0
1 2 2 3 0 4 2 3 0 0 0 1 2 2 2 7 0 1
C (FIFO, 3, w) = 15
Remarque : Anomalie de Belady
Si on a : C (A, x+1, w) C (A, x+1, w), on dit que l’algorithme est stable, sinon, on dit qu’on
a une anomalie de Belady.
Stratégie optimale
Son principe consiste à remplacer la page qui ne sera pas utilisée pour une plus grande
période dans le futur.
Cette méthode donne le plus petit nombre de défauts de pages.
Exemple
Même chaîne de référence de FIFO
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7
0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0
1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1
C (Optimale, 3, w) = 9
Stratégie LRU
On remplace la page qui n’a pas été utilisée pendant la plus longue période du temps.
LRU associe à chaque page le moment de sa dernière utilisation.
27
Chapitre3 : Gestion de la mémoire
Exemple
On va prendre le même exemple précédent.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
C (LRU, 3, w) = 12
Algorithme de la seconde chance
Pour supprimer une page, cet algorithme sélectionne la plus ancienne page et la remplace si
son bit de référence est 0 (le bit de référence est mis à 1 à chaque fois que la page est
référencée).
Si le bit de référence est 1, on lui donne une seconde chance, en changeant son temps
d’arrivée par le temps courant et en mettant sont bit de référence à 0.
On sélectionne la prochaine page selon FIFO.
28
Chapitre 4:
21
Chapitre4 : Gestion de disque dur
1. Introduction
La gestion des entrées/sorties (E/S) est une tâche importante de SE, elle doit assurer l’utilisation
optimale des différents périphériques, et doit assurer également la communication entre ces
périphériques.
Le disque dur est un périphérique permettant à conserver les données de manière permanente,
il est basé sur l’utilisation de plusieurs disque plats ayant le même axe, chaque disque est
composé d’un ensemble de cercle concentriques appelé pistes, et chaque piste est divisée en
unités élémentaires de stockage appelées secteurs.
Les disques tournent près de plusieurs têtes de Lecture/ Ecriture, ces têtes se déplacent d’une
piste à une autre, et chaque position de tête forme un cylindre virtuel.
Pour lire un secteur, la tête se déplace vers la position correcte et attend que l’enregistrement
désiré se trouve sous la tête.
22
Chapitre4 : Gestion de disque dur
3. Ordonnancement du disque
Tout processus ayant besoin d’E/S vers ou à partir du disque envoie une requête vers le SE
indiquant le numéro de piste qui contient les données cherchées.
Le disque est doté d’une file d’attente des requêtes en cours, lorsqu’on a plusieurs requêtes à
servir, on doit utiliser des algorithmes permettant de choisir la première requête à servir.
3.1.FIFO
Cet algorithme simple et juste consiste à satisfaire les requêtes selon leur ordre d’arrivée.
3.3.SCAN
Dans cette algorithme, la tête se déplace entre les deux extrémités, c’est-à-dire entre la tête la
plus interne et celle la plus externe, les requêtes rencontrées sont traitées au fur et à mesure.
3.4.Look
Cet algorithme a le même principe de Scan, mais la tête ne déplace pas jusqu’à l’extrémité,
mais elle se déplace vers la dernière requête dans un sens, ensuite elle repart dans l’autre sens.
3.5.C-SCAN et C-Look
Dans ces algorithmes, la tête se déplace dans un seul sens, une fois la dernière piste est atteinte,
la tête se déplace vers la première piste de départ.
Exemple
Soit un disque contenant 20 pistes (0...19), et la file d’attente contient les requêtes suivantes :
17, 18, 4, 11, 2, 12.
Calculer le nombre de pistes parcourues avec chaque algorithme sachant que la tête se trouve
initialement sur la piste 14.
1. Fifo : 44 pistes
2. SSTF : 12, 11, 17, 18, 4, 2 : 26 pistes.
3. SCAN : la tête se déplace vers la piste 19 : 17, 18, 19, 12, 11, 4, 2, 0 : 24 pistes.
4. Look : 17, 18, 12,11,4, 2 : 20 pistes.
23