Académique Documents
Professionnel Documents
Culture Documents
Système d’exploitation
L2_Tous/ESIS
User
Contenu |2
Contenu
Contenu ............................................................................................................................................... 2
Objectifs ............................................................................................................................................... 5
Fiche de la matière.................................................................................Erreur ! Signet non défini.
Prérequis ............................................................................................................................................... 5
Discipline à respecter .............................................................................Erreur ! Signet non défini.
Principes à respecter ..............................................................................Erreur ! Signet non défini.
Evaluations................................................................................................Erreur ! Signet non défini.
Introduction ......................................................................................................................................... 6
0.1. Définition des concepts..................................................................................................... 6
0.1.1. Informations ...................................................................................................................... 6
0.1.2. Messages .......................................................................................................................... 6
0.1.3. Donnée : ........................................................................................................................... 6
0.1.4. Informatique ou information automatique ............................................................... 6
0.1.5. Ordinateur ........................................................................................................................ 6
0.1.6. Programme....................................................................................................................... 7
0.2. Système informatique ........................................................................................................ 7
0.3. Système d’information ....................................................................................................... 8
0.4. Ordinateur et changements technologique ................................................................ 9
0.4.1. Ordinateur ........................................................................................................................ 9
0.4.2. Structure d’un ordinateur .............................................................................................. 9
0.4.3. Changement technologique .....................................................................................12
1.1.1. Première génération: Tubes électroniques ou lampe à vide (1945 - 1955) ..12
1.1.2. Deuxième génération: Transistors et systèmes par lots (1955 - 1965) .............12
1.1.3. Troisième génération: circuits intégrés (1965 - 1980)..........................................13
1.1.4. Quatrième génération: microprocesseurs (1980 – à nos jours) .......................14
1.1.5. Cinquième génération: intelligence artificielle (Actuellement en cours) .....15
0.5. Machine de Von Neumann............................................................................................16
0.6. Schéma général d’un ordinateur..................................................................................17
Chapitre.1 Généralités sur le système d’exploitation ...............................................................19
User
Contenu |3
User
Contenu |4
User
Objectifs |5
Objectifs
Prérequis
• Architecture des ordinateurs
• Logiques
• Algorithme
• Connaissance nécessaire à la compréhension abstraite des
ordinateurs
User
Introduction |6
Introduction
Aujourd’hui, la technologie évolue et les ordinateurs aussi en s’adaptant aux
besoins de l’utilisation de l’homme dans différent secteur de travail.
Ce cours se propose donc d’introduction aux concepts de base des systèmes
informatiques ainsi que leur fonctionnement, leur utilisation, ainsi que leur
installation.
0.1.2. Messages
Ensemble de données destinées à être transmises par un système informatique
0.1.3. Donnée :
Représentation conventionnelle d'une information en vue de son
traitement informatique.
0.1.5. Ordinateur
Un ordinateur est défini comme une machine à calculer appeler autre fois
calculateur ou de nos jours comme un dispositif électronique programmable de
traitement automatique de l’information qui est dotée de mémoires, de moyens
de traitement des informations qui est capable de résoudre des problèmes grâce
à l’exploitation automatique de programme enregistres. Il renferme également
de circuits électroniques qui lui permettent de manipuler les données sous forme
binaires.
User
Introduction |7
0.1.6. Programme
Un programme informatique est une liste d'ordres indiquant à un ordinateur ce
qu'il doit faire. Il se présente sous la forme d'une ou plusieurs séquences
d'instructions, comportant souvent des données de base, devant être exécutées
dans un certain ordre par un processeur ou par processus informatique.
▪ Exemple de logiciel :
o Logiciel de Gestion de relation client (CRM)
o Logiciel de comptabilité
o Navigateur web (Mozilla, Google chrome, Internet Explorer)
o Etc.
L’exemple ci-dessus représente des logiciels plutôt que des programmes, car ils
sont le fruit de la concaténation de multiple programme exécutant différents
actions et fonctions.
User
Introduction |8
User
Introduction |9
puces de silicium et des transistors montés sur eux, des dispositifs d'entrée
comme le clavier et la souris, et des dispositifs de sortie tels que des
imprimantes et des moniteurs.
▪ Logiciel : Le matériel informatique ne fonctionne que s'il n'y a pas de
logiciel, c'est-à-dire un programme qui indique au matériel quoi faire. Il
existe différents niveaux de logiciels, y compris le système d'exploitation
(comme Windows ou Mac OS) et les applications (comme un
traitement de texte ou un programme de comptabilité).
User
I n t r o d u c t i o n | 10
User
I n t r o d u c t i o n | 11
• La souris
• Scanner
• Microphone
• Etc.
▪ Les périphériques de sortie :
• L’écran
• L’imprimante
• Les Enceintes
• Etc.
▪ Un système de bus permettant de véhiculer l’information entre
l’unité centrale et les autres unités : Est l’organe qui constitue le
schéma fonctionnel d’un ordinateur.
User
I n t r o d u c t i o n | 12
User
I n t r o d u c t i o n | 13
Une machine 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).
User
I n t r o d u c t i o n | 14
User
I n t r o d u c t i o n | 15
▪ Exemple :
o Les systèmes experts aident les médecins à réaliser
des diagnostics en appliquant les prescriptions qu'un
médecin utiliserait pour répondre aux besoins d'un
patient.
User
I n t r o d u c t i o n | 16
Il fait remarquer que puisque les instructions sont codées en binaire, elles
peuvent prendre place dans la mémoire de l'ordinateur au côté des données.
Ces instructions s'exécutent en suivant l'ordre dans lequel elles sont écrites mais il
est possible d'imaginer des instructions de sauts de programme qui ordonnent à
l'unité de commande de reprendre la lecture des instructions ailleurs en mémoire
autorisant de cette manière les ruptures de séquences automatiques, les sauts
conditionnels et les boucles de programmes. L'unité de contrôle peut dès lors
reprendre une séquence d'instructions et « prendre des décisions » sans l'aide
d'un opérateur humain.
Elle est constituée de cinq sous-ensembles qui permettent la mise n’œuvre des
fonctions de base d’un ordinateur :
▪ Le stockage de données,
▪ Le traitement des données,
▪ Le mouvement des données et
▪ Le contrôle des périphériques.
User
I n t r o d u c t i o n | 17
L'unité centrale (appelée aussi UC) des périphériques (ce qu'il y a autour de
l'ordinateur). Les périphériques permettent de fournir à l'ordinateur les données à
traiter et de les récupérer.
User
I n t r o d u c t i o n | 18
▪ La mémoire
▪ L'unité de traitement
▪ L'unité arithmétique
User
C h a p i t r e . 1 G é n é r a l i t é s s u r l e s y s t è m e d ’ e x p l o i t a t i o n | 19
User
C h a p i t r e . 1 G é n é r a l i t é s s u r l e s y s t è m e d ’ e x p l o i t a t i o n | 20
1.3. Terminologie :
Un programme est une suite statique d'instructions
Un processeur est l'agent qui exécute les instructions d'un programme
Un processus est un programme en cours d'exécution.
Un programme peut avoir plusieurs exécutions simultanées. Pour faire tourner
un processus il faut donc, non seulement chercher le code et les données mais il
User
C h a p i t r e . 1 G é n é r a l i t é s s u r l e s y s t è m e d ’ e x p l o i t a t i o n | 21
faut aussi lui réserver un espace mémoire, le gérer les accès aux ressources, la
sécurité etc. C'est un des rôles de l'OS.
- Au temps du DOS déjà, le rôle du système d'exploitation était de charger
les programmes d'application en mémoire avant de leur passer la main.
- - Actuellement les systèmes d'exploitation sont multitâches. Le temps
processeur est partagé par plusieurs processus qui semblent tourner
simultanément.
1.3.1. Multitâche
Le S.E. est multitâche s'il permet à l'ordinateur de faire tourner simultanément
plusieurs processus. Il s'arrange pour que chaque processus ait à tour de rôle un
court laps de temps pour s'exécuter partiellement. Cette méthode, aussi
appelée multiprogrammation, donne l'impression que tous ces programmes
s'exécutent simultanément et surtout, maximise l'occupation du processeur. Dès
qu'un programme s'interrompt pour attendre la réalisation d'une fonction plus
lente, telle qu'une opération d'entrées/sortie, le processeur passe sans plus
attendre à l'exécution d'un autre processus.
Multitâche coopératif
Chaque processus dispose des ressources du système puis les libère pour
permettre au processus qui suit dans une file d'attente d'en disposer à son tour
=> Chaque tâche dépend des autres. Une tâche programmée de manière peu
rigoureuse va compromettre la bonne marche de l'ensemble.
Multitâche préemptif
Chaque processus dispose du processeur pendant un laps de temps déterminé à
l'avance ou jusqu'à ce qu'un autre ait une priorité supérieure à celle du processus
en cours.
L'ordonnancement, (l'attribution du temps processeur aux processus) est fait par
l'OS sans que les applications soient consultées.
=> Si une application "se plante", elle est mise de côté sans bloquer le système.
1.3.2. Multithreading
Une application multithread est un logiciel qui dès sa conception a été partagé
en différentes unités d'exécutions ou threads dont la gestion est confiée au
système d'exploitation. Exemple : la correction orthographique dans WORD.
Nous avions vu dans le cadre du multitâche que chaque processus dispose d'une
partie distincte de la mémoire pour s'exécuter indépendamment des autres.
Dans le cas du multithreading au contraire, le même espace d'adressage est mis
en commun par tous les threads d'une application.
User
C h a p i t r e . 1 G é n é r a l i t é s s u r l e s y s t è m e d ’ e x p l o i t a t i o n | 22
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 23
2.1. Processus
Un processus est un programme en cours d'exécution.
• Un programme est une suite d'instructions ; c'est du texte, un code statique.
• Le processus est un concept dynamique, il représente le déroulement d'une
tâche faisant partie d'une application ou un programme système
quelconque.
La notion de processus est essentielle pour décrire le fonctionnement des
systèmes multiprogrammés aussi appelés multitâches ou plus simplement
multiprocessus.
Parmi les avantages de la multiprogrammation, citons :
• Le fractionnement des applications qui peut en simplifier le développement,
• L’avantage pour l'utilisateur de savoir faire tourner plusieurs applications
simultanément
• Et surtout l'optimalisation de l'utilisation du (ou des) processeurs(s)
Un processeur n'est capable de traiter qu'un seul processus à la fois. Un sous-ensemble
du système d'exploitation, appelé ordonnanceur, organise les tâches et les fait
commuter tout à tour pour donner l'impression qu'elles s'exécutent toutes
simultanément.
Le système d'exploitation conserve des informations sur chaque processus pour
pouvoir les interrompre et les relancer selon ce que décide l'ordonnanceur. Ces
informations regroupent entre autres :
• Un numéro d'identification du processus (PID)
• L’état du processus, son compteur ordinal et les autres registres
• L’emplacement mémoire du code, des données et de la pile
• Des pointeurs vers les ressources utilisées, fichiers, E/S, ...
• Et une quantité innombrable d'informations : pointeur vers le processus
parent, priorité, compteur de threads, durée d'exécutions, informations
d'attentes etc.
Toutes ces informations peuvent être regardées comme les composants
d'un processeur virtuel agent d'exécution du processus.
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 24
(quand tous les processus attendent des E/S) sans pour autant être trop
abondants et saturer la mémoire principale du système.
- Dans un traitement par lots, les processus attendent sur le disque dans une file
d'attente jusqu'à ce que le scheduler ou ordonnanceur d'admission décide de
les prendre en charge.
- Dans un système interactif à temps partagé, le système accepte en principe
toutes les requêtes de processus que les utilisateurs provoquent en lançant leurs
applications
Une fois le processus admis dans le système, il n'en sort que lorsqu'il est terminé ou s'il
est détruit par le système d'exploitation suite à une erreur grave ou à la demande de
l'utilisateur (commande kill sous Unix ou via le gestionnaire des tâches sous Windows)
2. L'ordonnancement à moyen terme est assuré par l'ordonnanceur de
mémoire aussi appelé permutateur ou swapper. Son rôle est de permuter les
processus placés en mémoire et ceux qui, faute de place, ont été
temporairement entreposés sur le disque.
Ces permutations ne peuvent toutefois pas être trop fréquentes pour ne pas gaspiller
la bande passante des disques.
3. L'ordonnanceur à court terme aussi appelé dispatcher, répartiteur
ou ordonnanceur du processeur choisit à quel processus sera alloué le processeur
et pour quel laps de temps.
Ces commutations des processus sont très fréquentes.
2.3. Les états d'un processus
Les processus, puisqu'ils sont concurrents et doivent se partager le processeur,
ne peuvent être continuellement actifs. Ils ont donc, si on ne considère pour
commencer que l'ordonnancement à court terme, trois niveaux fondamentaux
et quatre transitions possibles.
Elu signifie en cours d'exécution. L'exécution n'est interrompue que par les conditions
suivantes :
Transition 1 : Le processus se bloque, faute de données pour l'alimenter
ou en attendant une opération d'entrée/sortie.
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 25
L'état Prêt est un état provisoire pour permettre aux autres processus de s'exécuter
quasi simultanément.
L'état Bloqué est un état d'attente d'un événement extérieur, tel qu'une
entrée/sortie, nécessaire à la poursuite de l'exécution du processus.
Ajoutons deux états qui correspondent à l'ordonnancement à long terme : les états
" Nouveau " et " Terminé ".
Nouveau : le processus vient d'être créé mais n'existe pas encore qu'à l'état de
requête de processus en attendant d'être admis par le scheduler en tant que
processus activable.
Terminé : le processus est désormais inactif car il a achevé sa tâche. Il sera détruit
prochainement par le système d'exploitation pour libérer de la place en mémoire. Il
est parfois conservé pendant un temps à l'état terminé en attendant qu'une
entrée/sortie s'achève ou que les données de ce processus soient exploitées par un
autre. On parle alors de processus " zombie".
Pour être complet il faut aussi envisager les états permutés qui résultent de
l'ordonnancement à moyen terme. Le swapper range les processus prêts ou bloqués
sur le disque ou en mémoire.
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 26
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 27
- Le temps de réponse
C'est la vitesse de réaction aux interventions extérieures. Les programmes d'avant-
plan doivent pour cela avoir priorité sur les tâches de fond.
- La prévisibilité
Un système qui d'habitude réagit rapidement aux commandes mais qui parois prend un temps beaucoup plus long
sera perçu comme moins stable que s'il répondait à chaque fois dans un temps
comparable même s'il est globalement plus lent.
Le système semblera aussi plus convivial s'il respecte l'idée parfois fausse que les
utilisateurs se font de la complexité des tâches.
2.4.2. Algorithmes d'ordonnancement " scheduling algorithms "
a. FCFS - Fist-come First-served = Premier arrivé / Premier servi
Les jobs attendent dans une file. Le premier arrivé est admis
immédiatement et s'exécute tant qu'il n'est pas bloqué ou terminé. Lorsqu'il
se bloque, le processus suivant commence à s'exécuter et le processus
bloqué va se mettre au bout de la file d'attente.
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 28
P P2 P
1 3
0 2 2 3
Temps d’attente pour P1= 0 ; P2= 24; P3= 27 4 7 0
Temps attente moyen : (0 + 24 + 27) /3 = 17
Si les mêmes processus arrivent à 0 mais dans l’ordre : P2 , P3 , P1 .
Le diagramme de Gantt est :
P P P
2 3 1
0 3 6 30
Temps d’attente pour P1 = 6 P2 = 0 P3 = 3
Temps moyen d’attente : (6 + 0 + 3) /3 = 3
Beaucoup mieux
Donc pour cette technique, le temps d’attente moyen peut varier
grandement
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 29
P1 0 7
P2 2 4
P3 4 1
P4 5 4
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 30
Inconvénient : les jobs les plus courts sont favorisés. Si des processus courts
arrivent sans cesse, les processus plus longs n'auront jamais le temps de
s'exécuter
c. SRT - Shorted Remaining Time = l'algorithme du temps restant le plus court
C'est la version préemptive de l'algorithme précédent.
P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (préemptive)
◦ P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 31
Processus Cycle
P1 53
P2 17
P3 68
P4 24
Normalement,
◦ Temps de rotation (turnaround) plus élévé que SJF
◦ Mais temps attente moyen meilleur
Doit être un peu plus grand que le cycle typique (pour donner le temps à la
plupart des processus de terminer leur cycle, mais pas trop pour éviter de
pénaliser les processus courts)
Exemple de la priorité :
Supposons que la valeur du quantum est fixée à 50 ms. Un processus
qui n'utilise que 1 ms avant d'être bloqué aurait droit à une priorité
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 32
User
C h a p i t r e . 2 G e s t i o n d e s p r o c e s s u s | 33
PRIO = 0
PRIO = 1
PRIO = 2
Exemple de la priorité :
Trois files :
◦ Q0: tourniquet, quantum 8 msecs
◦ Q1: tourniquet, quantum 16 msecs
◦ Q2: FCFS
Ordonnancement :
◦ Un nouveau processus entre dans Q0, il reçoit 8 msecs d ’UCT
◦ S ’il ne finit pas dans les 8 msecs, il est mis dans Q1, il reçoit 16
msecs additionnels
◦ S ’il ne finit pas encore, il est interrompu et mis dans Q2
◦ Si plus tard il commence à demander des quantums plus petits,
il pourrait retourner à Q0 ou Q1
En pratique :
Les méthodes que nous avons vues sont toutes utilisées en pratique (sauf plus
court servi pur qui est impossible)
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 34
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 35
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 36
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 37
repeat
section d’entrée
section critique
section de sortie
section restante
forever
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 38
repeat
La SC de Ti est exécutée ssi turn = i
while(turn!=i){};
Ti est occupé à attendre si Tj est dans SC.
SC
Fonctionne pour l’exclusion mutuelle!
turn = j;
Mais critère du progrès n’est pas satisfait car
l’exécution des SCs doit strictement alterner SR
forever
Initialisation de turn a 0 ou 1 :
repeat repeat
while(turn!=0){}; while(turn!=1){};
SC SC
turn = 1; turn = 0;
SR
SR
forever
forever
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 39
SC
flag[i] = faux;
SR
forever
section restante
forever
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 40
3.4.2. Blocage
Le blocage ou interblocage (deadlock) peut se produire quand les ressources
requises pour certains processus sont utilisées par d'autres qui en revanche attendent
eux aussi des ressources utilisées par les premiers.
Le système d'exploitation doit être capable de prévenir ou d'atténuer l'effet des
blocages
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 41
3.4.3. Famine
La famine (starvation) est la situation d'un processus qui reste indéfiniment bloqué
dans l'attente d'une ressource sans pour autant être en situation d'interblocage.
Cette situation dépend des autres processus alors que dans le cas de l'interblocage
il faut que le système d'exploitation intervienne d'autorité en retirant une ressource à
l'un des processus.
3.5. Mécanismes d'exclusion mutuelle
3.5.1. Désactiver les interruptions
Nous savons que dans un système monoprocesseur c'est un ordonnanceur qui
tour à tour passe la main à chaque processus pour donner une impression de
parallélisme. Il est possible d'éviter l'intervention de l'ordonnanceur dans une
section critique en s'interdisant d'exécuter des instructions susceptibles de
provoquer le déroutement et en désactivant momentanément les interruptions.
DisableInterrupt()
. // Section critique
EnableInterrupt()
Le processus qui entre dans la section critique monopolise ainsi le processeur en
excluant tout autre processus.
Inconvénients de ce mécanisme :
- Il ne convient pas s'il y a plusieurs processeurs
- Certaines interruptions risquent d'être perdues si elles ne sont pas traitées à
temps
- Les processus qui attendent risquent la famine
User
C h a p i t r e . 3 S y n c h r o n i s a t i o n d e s p r o c e s s u s | 42
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 43
Il faut s'assurer que les adresses générées par chaque processus ne concernent
que la zone mémoire qui lui est impartie, sans quoi, l'intégrité du système
d'exploitation et des autres processus n'est pas garantie.
Certaines zones mémoire doivent pourtant servir simultanément à plusieurs
processus : le code de fonctions servant à plusieurs applications qui tournent en
parallèle ou les données utilisées simultanément par divers processus
• La segmentation de l'espace d'adressage
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 44
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 45
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 46
4.4. La pagination
Les processus requièrent des espaces d'adresses continus. On a vu que cela est
difficilement réalisable en découpant la mémoire en partions dont les tailles
correspondent à celles des processus. La pagination est une technique d'allocation
de la mémoire bien plus efficace. Elle fournit aux processus des espaces
d'adresses séquentiels à partir d'espaces mémoire discontinus.
La pagination consiste à diviser la mémoire et les processus en blocs de mêmes tailles
appelés pages. Les pages mémoire sont souvent
appelées "frames" ou "cadres" tandis que les pages de processus sont simplement
appelées "pages".
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.
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 47
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 48
Le nombre de pages étant souvent très grand les tables des pages deviennent
volumineuses et peuvent même occuper ... plusieurs pages. On les fractionne donc
en plusieurs niveaux : une table de page de niveau supérieur dont chaque élément
pointe vers une table de niveau inférieur. L'adresse logique contient dès lors deux
nombres pour aboutir au numéro de page. Le premier sert d'index dans la table de
niveau supérieur, le second sert d'index dans la table du niveau suivant.
Ces accès multiples à différentes pages pour aboutir à l'adresse finale ralentissent
fortement l'adressage. On évite de répéter ces recherches en notant les
correspondances trouvées entre les adresses logiques et les adresses physiques dans
une mémoire associative. Ce qui permet ensuite de retrouver presque
immédiatement les correspondances les plus récentes
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 49
NB. L'espace d'adressage est perçu par le programmeur comme une suite continue
d'octets. La subdivision de l'adresse en numéros de page et d'offset est transparente.
Elle est prise en charge par le matériel.
4.5. La segmentation
Chaque processus est constitué d'un ensemble de segments. Chaque segment est
un espace linéaire.
Les segments sont des espaces d'adressages indépendants de différentes longueurs
et qui peuvent même varier en cours d'utilisation. Ils correspondent à des subdivisions
logiques déterminées par le programmeur ou par le compilateur.
Les segments contiennent des informations de même nature : le code, les données,
la pile, des tables, etc. 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.
Certaines zones de code en exécution seule peuvent être partagées par plusieurs
processus ; cela se fait par exemple pour des bibliothèques de sous-programmes.
L'accès aux segments se fait via une table de segments.
Chaque entrée de la table comporte l'adresse de départ du segment et sa taille.
L'adresse logique est constituée du numéro de segment et d'un offset. Contrairement
aux pages dont le fonctionnement est transparent pour le programmeur, les
segments sont des entités logiques qu'il connaît et manipule. Il distingue les deux
informations contenues dans l'adresse : le numéro du segment et l'offset.
Le numéro de segment sert d'index pour retrouver l'adresse du début du segment
dans la table de segment. Cet offset doit être inférieur à la taille du segment
consignée elle aussi dans la table de segment. Si ce n'est pas le cas, une erreur est
générée qui provoque l'abandon du programme. L'offset est ensuite ajouté à
l'adresse de début de segment pour former l'adresse physique.
User
C h a p i t r e . 4 G e s t i o n d e l a m é m o i r e | 50
Un segment peut contenir plusieurs pages mais toutes ne doivent pas nécessairement
être présentes en mémoire à tout moment. On ne garde en mémoire que celles qui
sont réellement utilisées. Chaque segment a sa propre table de pages.
User
B i b l i o g r a p h i e | 51
Bibliographie
User