Vous êtes sur la page 1sur 24

Université Amar Telidji Laghoaut

Faculté des sciences

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

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 :

1ère génération (45-55)


Les 1ère machines avaient des tubes à vide, la taille des machines était très importante :
(ENIAC 20 tons et 60 m2).
 Les machines n’ont pas de mémoire.
 La programmation est en langage machine.
 Charger les données manuellement dans les registres (des jours).
 Le programmeur gère lui-même les opérations d’E/S, on doit donc connaître les
caractéristiques de chaque machine.

2ème génération (55-65)


L’arrivée des transistors permet de réduire la taille et le coût des machines : apparition de
l’ordinateur central (Main frame), et utilisation des cartes perforées :
Les jobs sont présentés à l’opérateur sous forme de cartes perforées, après la lecture des
cartes, le calcul est lancé, et le résultat est imprimé à la fin du calcul.

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.

3ème génération (65-80)


 Apparition des circuits intégrés.
 Apparition des disques.
 Naissance de la multiprogrammation
Cette méthode consiste à charger plusieurs programmes sur le disque et dans la mémoire
centrale, cette technique vise l’élimination du temps d’attente de l’unité du traitement
pendant les opérations d’E/S :
 L’UC exécute l’un des programmes.
 Si ce programme nécessite une E/S, alors lancer un autre programme.
La multiprogrammation permet de rétablir l’interactivité entre l’utilisateur et l’exécution de
son programme par l’intermédiaire des systèmes temps partagés (Time sharing) : Plusieurs
utilisateurs travaillent simultanément, chacun avec son propre terminal et l’UC est attribuée
successivement à chacun d’eux pendant une fraction du temps appelé Quantum. La rapidité
du temps de réponse peut donner à l’utilisateur l’impression qu’il est seul à posséder
(disposer) l’ordinateur.

4ème génération (80-Aujourd’hui)


 Développement des circuits intégrés à haute densité (LSI).
 Apparition de MS-DOS.
 Succès de Macintosh avec l’interface graphique.
 Développement des systèmes d’exploitation récents
 Les systèmes d’exploitation distribués.

4. La structure matérielle d’un ordinateur


Un ordinateur est composé de :
 Processeur
 Mémoire centrale
 Périphériques
Le processeur
Le CPU (Cetral Processing Unit) est le cerveau de l’ordinateur, il exécute les instructions des
programmes.

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. Les concepts de base d’un SE


Certains concepts communs sont partagés par tous les SE
Les processus
Sont des programmes en cours d’exécution
La gestion de la mémoire
C’est une activité permet de
 Résider plusieurs programmes dans la mémoire.
 Gérer l’espace d’adressage des processus.
La gestion des E/S
Pour la communication entre l’ordinateur et le monde extérieur.
Le système de fichiers
Ordonner les données sur disques pour permettre un accès rapide aux données.
La sécurité
Le SE assure la sécurité de telle sorte que les fichiers ne sont accessibles que par les
utilisateurs autorisés.

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.

4. Les états d’un processus


Quand un processus s’exécute, il change d’états. Un processus peut prendre un des trois états
suivants :
 En exécution : le processus utilise l’UC.
 Prêt : le processus détient toutes ses ressources sauf l’UC.
 Bloqué : le processus ne peut pas être exécuté en attendant des événements
externes (des données par exemple).

9
En exécution

1
3
2
4
Bloqué Prêt

Figure 1 : états d’un processus

1. L’ordonnanceur choisit un processus prêt de la file d’attente.


2. L’ordonnanceur suspende l’exécution du processus en cours et choisit un autre
processus
3. Processus est bloqué, il est en attente des données supplémentaires ou il réalise une
entrée -sortie
4. Le processus revient à l’état prêt.
5. Bloc de contrôle de processus
A chaque processus dans le système, est associé un bloc de contrôle (BCP), ce bloc contient
toutes les informations concernant le processus et son exécution telles que :

 L’identité du processus : Chaque processus a une identité unique dans le système,


généralement cette identité est représentée par un numéro.
 L’état du processus : L’état actuel du processus.
 La valeur de CO : cette valeur indique l’adresse de la prochaine instruction à
exécuter.
 Les registres de l’UC : Le contenu de tous registres de l’UC, la pile et les registres
à usage.
 Informations utiles : Le BCP contient également des informations utiles concernant
les E/S (les périphériques alloués au processus et les fichiers ouverts).

6. Ordonnancement des processus


En multiprogrammation, un ordinateur possède plusieurs processus en concurrence pour
obtenir le temps du processeur.
Un processus particulier du SE s’appelle l’ordonnanceur (scheduler) définit l’ordre dans
lequel les processus prêts acquirent l’UC.

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.

7. Catégories des algorithmes d’ordonnancement


On peut classer les algorithmes d’ordonnancement en deux catégories :
 Les algorithmes non préemptifs (sans réquisition) : sélectionner un processus
puis le laisse s’exécuter jusqu’à ce qu’il bloque ou se termine.
 Les algorithmes préemptifs (avec réquisition) : sélectionner un processus et le
laisse s’exécuter pendant un délai déterminé, si le processus est en cours
d’exécution à l’issue de ce délai, il est suspendu et un autre processus sera lancé.
Informations
Généralement, on associé à tout processus deux valeurs : la durée d’exécution et la date
d’arrivée. En utilisant ces valeurs, on peut calculer les valeurs suivantes :
1. Le temps de rotation : la durée moyenne qu’il faut pour qu’un processus puisse
s’exécuter :
T rot = date de fin d’exécution – date d’arrivée.
2. Le temps d’attente : la durée moyenne qu’un processus a passé en attente :
T att = temps de rotation – temps d’exécution.

8. Algorithmes d’ordonnancement non préemptifs


8.1 Algorithme FCFS
C’est la méthode la plus simple, les processus sont insérés dans une file d’attente selon leur
ordre d’arrivée, quand l’UC est disponible, l’ordonnanceur va choisir le 1er processus dans
la file d’attente, ce dernier va consommer toute sa durée d’exécution.
8.2 Algorithme SJF
Son principe est de choisir le processus ayant le plus court temps d’exécution sans tenir
compte de l’ordre d’arrivée.
En cas d’égalité, on utilise FCFS.

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

10. Algorithme avec priorité


Dans les algorithmes d’ordonnancement cités, on a supposé que tous les processus du
système ont la même priorité, mais ce n’est pas le cas réel, dans un système d’exploitation,
les processus n’ont pas le même niveau de priorité, certains processus doivent être exécutés
avant les autres. Chaque processus a donc sa propre priorité.
Pour définir le niveau de priorité, on peut affecter à chaque processus un numéro de priorité,
cette priorité peut être statique ou dynamique.
Pour la priorité statique, le processus garde son niveau de priorité durant toute sa vie dans le
système, cette méthode est simple, mais on risque d’avoir un problème de famine : un
processus avec une très faible priorité risque de ne jamais être exécuté si des processus
prioritaire se présentent constamment.
La priorité dynamique consisté à recalculer périodiquement le numéro de priorité pour éviter
le problème de la famine, la priorité des processus qui se trouvent dans la file d’attente est
incrémentée d’une unité périodiquement, ainsi, un processus qui avait au départ une faible
priorité devient le plus prioritaire au bout d’un temps fini.
L’ordonnancement dans un algorithme à priorité peut être préemptif ou non préemptif.

11. Algorithme utilisant plusieurs files d’attente MFQ


Cet algorithme tante de réduire le temps d’attente des processus en utilisant plusieurs files
d’attente avec des niveaux de priorité différents.
Un nouveau processus est mis dans la file de niveau le plus élevé, une fois sélectionné, ce
processus reçoit une tranche du temps relativement courte. A l’expiration de ce temps, le
processus est placé dans la file de niveau inférieur.
Pour garantir l’équité, les tranches du temps s’allongent au fur et à mesure que le niveau
décroît.

13
Chapitre 3:

Gestion de la mémoire
centrale

9
Chapitre3 : Gestion de la mémoire

Chapitre 3 : 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

Figure1 : Hiérarchie de mémoire

21
Chapitre3 : Gestion de la mémoire

3. objectifs de la gestion de mémoire


3.1 L’organisation
Le SE assure la structuration de l’espace physique.
L’organisation revient à diviser l’espace physique en zones qui peuvent être de taille fixe ou
variable.
3.2 La gestion
Dans une organisation donnée, le SE attribut certaines zones de l’espace mémoire à un ou
plusieurs processus, il utilise pour cela des stratégies d’allocation.
A la fin d’un processus, il doit libérer les zones qu’il a occupé, le SE va les allouer à d’autres
processus, il doit aussi suivre des stratégies de libération.

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

5. les algorithmes de placement


Lorsque plusieurs zones libres de mémoire sont disponibles, le SE doit utiliser un algorithme
pour sélectionner la zone mémoire dans laquelle le processus sera chargé.
Algorithme de la 1ère zone libre (Fisr fit)
Le processus sera chargé dans la 1ère zone qui satisfait sa demande, rapidité de choix.
Algorithme de la zone libre suivante (Next fit)
Dans l’algorithme précédent, toutes les recherches commencent au début de la mémoire. Les
zones au début sont plusieurs fois prises en compte que celles de la fin.
L’algorithme Next fit tente d’améliorer la performance en distribuant les recherches sur
l’ensemble de la mémoire, pour cela, la recherche suivante commence à partir de la dernière
zone allouée et non pas au début
Algorithme de meilleur ajustement (Best fit)
Choisir la plus petite zone de taille suffisante. C’est une méthode lente car elle nécessite un
examen complet de la liste des zones libres et un classement permanant de cette liste par
taille.
Algorithme de plus grand résidu (Worst fit)
La zone la plus grande sera choisie, on a donc un problème de l fragmentation.

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

Table de pages Mémoire centrale

Chaque adresse logique est composée de deux parties :


 Un numéro de page p.
 Un déplacement dans la page d.
Le n° de page est utilisé comme indice dans une table de pages, cette table contient l’adresse
de base de chaque page dans la mémoire centrale, cette adresse de base est combinée avec le
déplacement pour définir l’adresse mémoire physique.
Exemple
Soit la table de page d’un processus :
500
700
et soit l’adresse logique (1, 30).
L’adresse physique correspondant à cette adresse logique est 700+30=730
Adresse logique paginée
Si P est la taille d’une page, et U une adresse logique, alors l’adresse paginée (p,d) est déduite
par le calcul suivant :
p = U div P
d = U mod P
La table de pages
A chaque processus est associée une table de pages, le nombre d’entrée de cette table est le
nombre de pages logiques du processus, et chaque entrée contient l’adresse de base de cadre
de pages contenant la page logique.

7. Segmentation simple

24
Chapitre3 : Gestion de la mémoire

Comme la pagination, la segmentation divise un programme en un certain nombre de blocs


appelés segments, chacun étant alloué indépendamment à la mémoire.
Les segments sont de taille variable, et chaque segment dispose un nom et une taille
(longueur).
Dans une adresse logique, on trouvera :
 Le nom du segment.
 Et le déplacement dans le segment, (s, d).
L’adresse physique est calculée à l’aide d’une table appelée table de segments, telle que, les
indices sont les n° de segments.
Chaque entrée de la table de segments contient :
 L’adresse physique de début de segment, b (base).
 La longueur de segment, m (limite).
Le déplacement dans une adresse logique doit être tel que : 0  d  m, dans le cas contraire,
une erreur d’adresse sera générée, si d est correct, l’adresse physique sera b + d.

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

Pour l’adresse logique (2.53), l’adresse physique correspondante est 4353.


Pour l’adresse logique (0,1222), on a une erreur d’adresse.

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:

Gestion de disque dur

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.

Dans ce chapitre, on s’intéresse à la gestion du disque dur


2. Structure matérielle de disque dur

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.

Le problème de cette méthode est le nombre élevé de pistes parcourues.


3.2.SSTF (Shortest Seek Time First)
Afin de minimiser le parcours, cet algorithme consiste à satisfaire en premier la requête la plus
proche de la position courante.

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