Système d`exploitation

publicité
Système Informatique :
Vue d’ensemble
Chapitre 1
Système d’Exploitation
Yann MORÈRE 2004
1/703
2/703
Définition du SE
Système d’Exploitation - programme qui fait
la liaison entre l’utilisateur et le matériel.
• Il permet une exécution pratique et
efficace des programmes.
• Il assure le fonctionnement correct du
système informatique.
• Il fournit aussi certains services aux
programmes et aux utilisateurs (faciliter
la programmation par exemple).
Système d’Exploitation
Yann MORÈRE 2004
3/703
Elements de Bases
• Processeur
• Mémoire Principale (RAM)
La mémoire réelle, ou mémoire primaire
volatile
• Modules d’ES
Dispositifs de mémoire secondaire
Equipement de communications
Terminaux
• Système d’interconnection entre les éléments (BUS)
communication entre les processeurs, mémoire et
modules d’ES
Système d’Exploitation
Yann MORÈRE 2004
4/703
Registres
• Mémoire très petite mais très rapide (en
comparaison avec la mémoire principale
• Sert à stocker temporairement les
données pendant le traitement
Système d’Exploitation
Yann MORÈRE 2004
5/703
Composants de haut niveau (Registres)
• Registre d’Adresse Mémoire
Adresse pour la prochaine lecture/écriture
• Registre de Mémoire Tampon,
Données qui vont être écrites en mémoire
Reçoit les données lues de la mémoire
• Adresse d’E/S
spécifie une adresse d’E/E particulière
• Tampon d’E/S
Echange de données entre un module d’E/S et le
processeur
Système d’Exploitation
Yann MORÈRE 2004
Composants de l’ordinateur:
Vue de haut niveau
Mémoire
..
.
CPU
PC Reg. Adr. Mem.
IR Reg. Buf. Mem.
Reg. Adr. E/S
Reg. Buf. E/S
Module E/S
Instruction
Instruction
Instruction
..
Data
Data
Data
Data
..
.
..
Tampons
Système d’Exploitation
Yann MORÈRE 2004
6/703
7/703
Registres Processeurs
• Registres visibles par l’utilisateur
Accessible par langage machine (asm)
Disponible pour tous les programes. :
programmes d’applications et programmes
systèmes
Types de registres
• Données
• Adresse
• Drapeaux
Système d’Exploitation
Yann MORÈRE 2004
Registres visibles par
l’utilisateur
• Registres de données
Peuvent être remplis par le programmeur
• Registres d’Adresses
Contiennent l’adresse en mémoire centrale des
données et instructions
Peuvent contenir une portion d’adresse qui peut être
utilisée pour calculer une adresse complète
• Registre d’index
• Pointeur sur segment
• Pointeur de pile
Système d’Exploitation
Yann MORÈRE 2004
8/703
Registres visibles par
l’utilisateur
• Registres d’Adresses
Index
• Effectue l’ajout d’un index à une valeur de base
pour calculer une adresse
Pointeur sur Segment
• Quand la mémoire est divisée en segment, celle
est référencée par un segment et un offset
Pointeur de pile
• Pointe sur le haut de la pile
Système d’Exploitation
Yann MORÈRE 2004
9/703
Registres visibles par
l’utilisateur
• Code condition ou drapeaux (Flags)
Bits modifié par le processeur physique pour le
résultat d’une opération
Accès possible par les programmes mais seulement
en lecture
Exemples
•
•
•
•
Résultat positif
Résultat negative
Zéro
Overflow (dépassement)
Système d’Exploitation
Yann MORÈRE 2004
10/703
Registres de contrôle et
d’état
• Compteur Programme Program Counter (PC)
Contient l’adresse de l’instruction qui va être
exécutées
• Registre d’instruction Instruction Register (IR)
Contient l’instruction le plus récente chargée
• Mot d’Etat de Programme Program Status Word
(PSW)
Codes condition ou drapeau
Activation/Desactivation interruption
Superviseur
Système d’Exploitation
Yann MORÈRE 2004
11/703
12/703
Exécution d’Instruction
• Le processeur exécute les instructions
dans un programme
• Les Instructions sont chargées de la
mémoire à chaque
Cycle de Chargement
START
START
Charge
Chargeprochaine
prochaine
Instruction
Instruction
Système d’Exploitation
Cycle d’Exécution
Exécute
Exécute
Instruction
Instruction
STOP
STOP
Yann MORÈRE 2004
Chargement d’Instruction
et Exécution
• Le processeur charge l’instruction de la
mémoire
• Le Program counter (PC) sauvegarde
l’adresse de la prochaine instruction à être
exécutée
• Le Program counter est incrémenté après
chaque chargement
Système d’Exploitation
Yann MORÈRE 2004
13/703
14/703
Registre d’Instruction
• Les instructions chargées sont placées ici
• Types d’instructions
Processeur-Mémoire
• Transfert de données entre le processeur et la mémoire
Processeur-E/S
• Données transférées de ou à un périphérique
Traitement de données
• Opérations arithmétiques et logiques sur une données
Contrôle
• Change une séquence d’éxécution
Système d’Exploitation
Yann MORÈRE 2004
Exemple d’exécution d’un
programme
Memory
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
Memory CPU Registers
CPU Registers
3 0 0 PC 300 1 9 4 0
3 0 0 PC
AC 301 5 9 4 1
0 0 0 3 AC
1 9 4 0 IR 302 2 9 4 1
IR
1940
940 0 0 0 3
941 0 0 0 2
Step 1
940 0 0 0 3
941 0 0 0 2
Step 2
Memory CPU Registers
CPU Registers
PC
3 0 1 PC 300 1 9 4 0
301
0 0 0 5 AC
0 0 0 3 AC 301 5 9 4 1
5941
IR 302 2 9 4 1
5 9 4 1 IR
Memory
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Step 3
Memory
300 1 9 4 0
301 5 9 4 1
302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Step 4
CPU Registers Memory
3 0 2 PC 300 1 9 4 0
0 0 0 5 AC 301 5 9 4 1
2941
IR 302 2 9 4 1
940 0 0 0 3
941 0 0 0 2
Step 5
Système d’Exploitation
3+2=5
CPU Registers
330022 PC
0 0 0 5 AC
IR
2941
940 0 0 0 3
941 0 0 0 2
Step 6
Yann MORÈRE 2004
15/703
Accès Direct Mémoire Direct Memory Access
(DMA)
• Les échanges E/S sont fait directement
avec la mémoire
• Le processeur autorise le module E/S de
lire ou d’écrire directement en mémoire
• Décharge le processeur de cette tâche
• Le processeur est libre de faire autre
chose
Système d’Exploitation
Yann MORÈRE 2004
16/703
17/703
Interruptions
• Une interruption est le fonctionnement
normal d’un processeur
• Améliore l’efficacité de traitement
• Permet au processeur d’exécuter d’autres
instructions pendant qu’une E/S est en cours
• Permet la suspension d’un evènement causé
par un evènement externe à ce processus et
le reprise de ce dernier sans perte de
données
Système d’Exploitation
Yann MORÈRE 2004
18/703
Classes d’Interruption
• Programme
Dépassement arithmétique - arithmetic overflow
division par zéro
Exécution d’instruction illégale
référence à un espace mémoire externe à celui de
l’utilisateur
• Timer
• E/S
• Défaillance matériel - Hardware failure
Système d’Exploitation
Yann MORÈRE 2004
Cycle d’Instruction avec
Interruptions
Cycle de charge ment
Cycle d’Exécution
19/703
Cycle d’Interruption
Désactivation
Inte rruptions
START
START
Charge
Chargeprochaine
prochaine
Instruction
Instruction
Exécution
Exécution
Instruction
Instruction
Test
Testpour
pour
Inte
rruption
Inte rruption: :
Exécution Interruption
Exécution Interruption
Activation
Inte rruptions
HALT
Système d’Exploitation
Yann MORÈRE 2004
20/703
Gestionnaire d'Interruption
• Un programme qui détermine la nature de
l’interruption et exécute l’action
appropriée
• Le contrôle est transféré à ce programme
• Généralement une partie de système
d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
21/703
Cycle d’Interruption
• Le processeur vérifie la présence
d’interruptions
• Si aucune interruption, il charge la
prochaine instruction du programme
courant
• Si une interruption apparaît, l’exécution
est suspendue, et le gestionnaire
d’interruption est exécuté
Système d’Exploitation
Yann MORÈRE 2004
Traitement d’une interruption
simple
22/703
Contrôleur de périphérique
Ou autre système matériel
Provoquent une interruption
Processeur termine
L’exécution de l’instruction
courante
Processeur signale
l’accepation de
l’interruption
Sauvegarde de l’état
du processus
Exécution interruption
Processeur stocke le PSW
et le PC sur la pile de
contrôle
Restauration de l’état
du processus
Processeur charge un
nouveau PC basé sur
l’interruption
Restauration des anciens
PSW et PC
Système d’Exploitation
Yann MORÈRE 2004
Interruptions Multiples
Ordre Séquentiel
• Désactivation des interruptions, permet au
processeur de réaliser une tâche complète
• L’interruption reste active jusqu’à ce que
le processeur réactive les interruptions
• Après la fin d’exécution des routines du
gestionnaire d’interruption, le proccessuer
contrôle la présence d’interruption
Système d’Exploitation
Yann MORÈRE 2004
23/703
Interruptions Multiples
Priorités
• Les interruptions à haute priorité force les
interruptions à basse priorité à attendre
• Le gestionnaire d’interruptions à basse
priorité peuvent alors être interrompues
• Exemple : quand des données arrive par
une ligne de communication, il est
nécessaire de les traiter rapidement pour
faire de la place pour d’autres données
Système d’Exploitation
Yann MORÈRE 2004
24/703
Hierarchie de la
mémoire
25/703
Registres
Cache
Mémoire Principale RAM
Cache Disque
Disque Magnétique
Bande Magnétique
Système d’Exploitation
Disque Optique
Yann MORÈRE 2004
26/703
Hierarchie :
du haut vers le bas
•
•
•
•
Diminution du coût par octet
Augmentation capacité
Augmentation du temps d’accès
Diminution de la fréquence d’accès à la
mémoire par le processeur
Système d’Exploitation
Yann MORÈRE 2004
27/703
Cache Disque
• Une partie de la mémoire principale est utilisée
comme tampon (buffer) afin de stocker
temporairement des données destinées au
disque
• Les écritures disque sont groupées
• Certaines des données écrites peuvent être
nécessaires à nouveau. Les données sont
rechargées rapidement du cache logiciel plutôt
que rechargées de manière plus lente du disque
Système d’Exploitation
Yann MORÈRE 2004
28/703
Mémoire Cache
•
•
•
•
Invisible pour le système d’exploitation
Utilisée comme de la mémoire virtuelle
Accroît la rapidité de la mémoire
La vitesse processeur est plus rapide que
le vitesse de la mémoire
Système d’Exploitation
Yann MORÈRE 2004
29/703
Mémoire Cache
• Contient une partie de la mémoire
principale
• Le processeur cherche ses données dans
cette mémoire en premier
• Si il ne les trouve pas dans le cache, le
block mémoire contenant les informations
nécessaire est chargé dans le cache
Système d’Exploitation
Yann MORÈRE 2004
Structure de la Mémoire
Cache/Principale
Memory
Address
0
1
2
3
Block
(k words)
Slot
Number Tag
0
1
2
Block
C -1
Block Length
(k words)
(b) Cache
Block
2n - 1
Word
Length
(a) Main Memory
Système d’Exploitation
Yann MORÈRE 2004
30/703
31/703
Conception du Cache
• Taille du Cache
De petits cache ont un impact significatif sur les
performance
• Taille du Block
C’est l’unité de donnée échangée entre le cache
et la mémoire principale
« hit » signifie que l’information a été trouvée
dans le cache
Plus le block est grand, plus le nombre de « hit »
est grand avant que la probabilité d’utiliser des
données nouvellement chargées devienne plus
faible que la probabilité de réutiliser les données
qui ont été déchargées
Système d’Exploitation
Yann MORÈRE 2004
32/703
Conception du Cache
• Fonction « Mapping »
détermine quel endroit du cache le clock va
occuper
• Algorithme de replacement
détermine quel block à replacer
Algorithme du moins récemment utilisé LeastRecently-Used (LRU)
Système d’Exploitation
Yann MORÈRE 2004
33/703
Conception du Cache
• Politique d’Écriture
Écrit un block du cache dans la mémoire
principale
La mémoire principale doit être accessible en
DMA par les modules d’E/S et les processeurs
multiples
Système d’Exploitation
Yann MORÈRE 2004
34/703
E/S Programmées
• Le module d’E/S effectue l’action et non le
processeur
• Fixe les bits appropriés dans le registre
d’état des E/S
• Les interruptions ne sont pas prises en
compte
• Le processeur teste continuellement l’état
(attente active)
Système d’Exploitation
Yann MORÈRE 2004
35/703
E/S Programmées
Insert Read
command to CPU I/O
I/O Module
Read Status
of I/O
Module
Not
Ready
Check
Status
I/O CPU
Error
Condition
Ready
Read word
from I/O
Module
I/O CPU
Write word
CPU Memory
into memory
No
Done?
Yes
Next Instruction
Système d’Exploitation
Yann MORÈRE 2004
36/703
E/S par interruption
• Le processeur est interrompu quand le module
d’E/S est prêt à échanger les données
• Le processeur est libre de faire une autre
traitement
• Pas d’attente active du processeur
• Consomme beaucoup de temps processeur
parce que chaque mot écrit ou lu, passe par le
processeur
Système d’Exploitation
Yann MORÈRE 2004
37/703
E/S par interruption
Insert Read
command to CPU I/O
Do something
I/O Module
else
Read Status
of I/O
Module
Interrupt
I/O CPU
Error
Condition
Check
Status
Ready
Read word
from I/O
Module
I/O CPU
Write word
CPU Memory
into memory
No
Done?
Yes
Next Instruction
Système d’Exploitation
Yann MORÈRE 2004
Accès Direct à la Mémoire
Direct Memory Access (DMA)
• Transfert un block de donnée directement
de ou dans la mémoire principale
• Une interruption est envoyée quand la
tâche est terminée
• Le processeur est seulement impliqué au
début et à la fin du transfert
Système d’Exploitation
Yann MORÈRE 2004
38/703
Accès Direct à la Mémoire
Direct Memory Access
(DMA)
Issue Read
block command
to I/O module
CPU DMA
Do something
else
Issue Read
block command
to I/O module
Read status
of DMA
module
Interrupt
DMA CPU
Next Instruction
Read status
of DMA
module
CPU DMA
Do something
else
Inte rrupt
DMA CPU
Next Instruction
Système d’Exploitation
39/703
Yann MORÈRE 2004
40/703
Système d’Exploitation
Vue d'ensemble
Chapitre 2
Système d’Exploitation
Yann MORÈRE 2004
41/703
Système d’Exploitation
• Un programme qui contrôle l’exécution
des programmes d’applications
• Une interface entre l’utilisateur et le
matériel
• Masque les détails du matériel à
l’utilisateur
Système d’Exploitation
Yann MORÈRE 2004
Couches et Vues d’un
système informatique
Utilisateur
final
Programmeur
Programmes
d’Applications
Utilitaires
Concepteur
Système
d’Exploitation
Système d’Exploitation
Matériel
Système d’Exploitation
Yann MORÈRE 2004
42/703
Services fournis par le
système d’exploitation
• Création de programme
Editeurs et debuggeurs
•
•
•
•
Exécution de programmes
Accès au périphériques d’E/S
Accès contrôlé au fichiers
Accès au système
Système d’Exploitation
Yann MORÈRE 2004
43/703
Services fournis par le
système d’exploitation
• Détection et réponse d’erreur
Erreurs matériels internes et externes
• Erreurs mémoire
• Défaillance de périphérique
Erreurs logicielles
• Dépassement arithmétique
• Accès interdit à des plages mémoires
Dans ces cas, le système d’exploiation ne
peut pas autoriser la demande de l’application
Système d’Exploitation
Yann MORÈRE 2004
44/703
Services fournis par le
système d’exploitation
• Comptabilité
Collecte de données statistiques
Analyse de la performance par moniteur
Utilisée pour anticipée les futurs
perfectionnements
Système d’Exploitation
Yann MORÈRE 2004
45/703
46/703
Système d’Exploitation
• C’est un programme
• Dirige le processeur dans l’utilisation des
ressources système
• Dirige le processeur quand il exécute les
programmes
• Le processeur arrête d’exécuter le
système d’exploitation de manière à
exécuter d’autres programmes
Système d’Exploitation
Yann MORÈRE 2004
Système d’Exploitation comme
gestionnaire de ressources
47/703
Système Informatique
Mémoire
Système
D’Exploitation
Logiciel
Programmes
Et Données
Contrôleur E/S
Contrôleur E/S
.
.
.
Contrôleur E/S
Processeur
. ..
Processeur
O/S
Programmes
Données
Système d’Exploitation
Yann MORÈRE 2004
Évolution d’un système
d’exploitation
• Mise à jour matériel et nouveaux types de
matériel
• Nouveaux services
• Corrections de bugs
Système d’Exploitation
Yann MORÈRE 2004
48/703
49/703
Gestionnaires
• Logiciels qui contrôlent l’exécution des
programmes
• Système d’exploitation par lot
• Les travaux sont traités par lot
• Un gestionnaire résident est en mémoire
centrale et disponible à l’exécution
• Les utilitaires des gestionnaires sont
chargés si nécessaires
Système d’Exploitation
Yann MORÈRE 2004
Disposition mémoire pour
un gestionnaire résident
Traitement
D’interruption
Pilotes de
périphériques
Séquencement
Des travaux
Interpréteur
de langage
de contrôle
Gestionnaire
Frontière
Zone de
Programme
utilisateur
Système d’Exploitation
Yann MORÈRE 2004
50/703
Langage de contrôle de
travaux - Job Control
Language (JCL)
• Type spécial de langage de
programmation
• Fournit des instructions au gestionnaire
Quel compilateur utiliser
Quelles données utiliser
Système d’Exploitation
Yann MORÈRE 2004
51/703
52/703
Dispositifs matériels
• Protection mémoire
Ne permet pas à une zone mémoire
contenant le gestionnaire d’être modifiée
• Timer
Évite à un travail de monopoliser lesystèmed
Une interruption apparaît quand le quantum
de temps se termine
Système d’Exploitation
Yann MORÈRE 2004
53/703
Dispositifs matériels
• Instructions privilégiées
Seulement exécuté par le gestionnaire
Une interruption apparaît si un programme
essaie d’exécuter ces instructions
• Interruptions
Fournit de la flexibilité pour contrôler les
programmes utilisateur
Système d’Exploitation
Yann MORÈRE 2004
Multiprogrammation ou
Multitâche
Permet au processeur d’exécuter un autre programme pendant
qu’un programme est obligé d’attendre un périphérique d’E/S
Run
Run
Wait
Wait
Time
Run
A
Run
B
Wait
Run
A
Run
B
Wait
Time
Système d’Exploitation
Yann MORÈRE 2004
54/703
55/703
Exemple
JOB1
JOB2
Type de travail
Calcul lourd
E/S lourd
E/S lourd
Durée
5 min.
15 min.
10 min.
Mémoire requise 50K
100 K
80 K
Besoin disque
No
No
Yes
Besoin terminal
No
Yes
No
No
Yes
Besoin imprimanteNo
Système d’Exploitation
JOB3
Yann MORÈRE 2004
56/703
Effets de la Multiprogrammation
Monoprogrammation Multiprogrammation
Utilisation CPU
17%
33%
Utilisation Mémoire 30%
67%
Utilisation Disque
33%
67%
Utilisation Imprim.
33%
67%
Temps écoulé
30 min.
15 min.
Taux de traitement
6 jobs/hr
12 jobs/hr
Temps réponse moyen18 min.
Système d’Exploitation
10 min.
Yann MORÈRE 2004
57/703
Temps partagé
• Ultilisation de la multiprogrammation pour
manipuler de plusieurs travaux interactifs
• Le temps processeur est partagé parmi les
multiple utilisateurs
• Plusieurs utilisateurs accèdent
simultanément le système grace au
terminaux
Système d’Exploitation
Yann MORÈRE 2004
58/703
Processus
• Terme plus générique qu’un travail
• Consiste en un programme exécutable,
des données qui lui sont associées et un
contexte d’exécution
Système d’Exploitation
Yann MORÈRE 2004
Difficultés avec la
conception d’un système
logiciel
• Synchronisation inexacte
Assurer qu’un process attendant un périphérique
d’E/S reçoive le signal
• Exclusion mutuelle échouée
• Opération de programme non prévue
Un programme devrait toujours dépendre seulement
de ses entrées, et ne pas dépendre des zones de
mémoire communes
• Impasses - Deadlocks
Système d’Exploitation
Yann MORÈRE 2004
59/703
60/703
Gestion de Mémoire
•
•
•
•
•
Isolement de processus
Attribution et gestion automatiques
Support pour programmation modulaire
Protection et contrôle d'accès
Stockage à long terme
Système d’Exploitation
Yann MORÈRE 2004
61/703
Mémoire Virtuelle
• Permet à des programmeurs d'adresser la
mémoire d'un point de vue logique
• Tandis que le programme fonctionne des
parties du programme et des données
sont maintenues dans les blocs sur le
disque
Système d’Exploitation
Yann MORÈRE 2004
62/703
Système de fichier
• Implémente le stockage à long terme
• L'information est stockée dans des objets
appelés « fichiers »
Système d’Exploitation
Yann MORÈRE 2004
Catégories de sécurité et
de protection
• Contrôle d’accès
réglez l'accès d'utilisateur au système
• Contrôle du flux d’information
réglez le flux des données dans le système et
de sa livraison aux utilisateurs
• Certification
Prouvant que l’exécution du contrôle de flux
et d’accès est faite par rapport à des
spécifications
Système d’Exploitation
Yann MORÈRE 2004
63/703
Gestion de ressource et
d’ordonnancement
• Equitabilité
donne l'accès égal et juste à tous les
processus
• Réponse différentielle
Distinction de différentes classes des travaux
• Efficacité
Maximiser le nombre de sortie, minimiser le
temps de réponse, et adaptation à autant
d'utilisations que possibles
Système d’Exploitation
Yann MORÈRE 2004
64/703
Éléments Principaux D’un
système d'exploitation
Système d'exploitation
Demande de service
Des processus
Interruption
D’un processus
Interruption
D’une E/S
Gestionnaire de
demande de Service
Gestionnaire
D’Interruption
File à File à
long court
terme Terme
File
E/S
Ordonanceur
à court terme
Donne le contrôle
au processus
Système d’Exploitation
Yann MORÈRE 2004
65/703
66/703
Structure Du Système
• Vision du système comme série de niveaux
• Chaque niveau exécute un sous-ensemble relatif
de fonctions
• Chaque niveau se base sur le niveau inférieur
pour exécuter des fonctions de plus bas niveaux
• Ceci décompose un problème en un nombre
plus important de sous problèmes que l’on peut
traiter
Système d’Exploitation
Yann MORÈRE 2004
Hiérarchie De Conception
d’un système d'exploitation
NiveauNom
Objets
Exemple d’Opérations
13
Shell
Envirronement de
programmation
structure en langage shell
12
processus User
Processus User
Quit, kill, suspend, resume
11
Répertoires
Répertoires
Create, destroy, attach, detach,
search, list
10
Périphériques
Périphérique Externes Create, destroy, open, close,
Ecran, Imprimante
read, write
et clavier
9
Système fichier
Fichiers
Create, destroy, open, close
read, write
8
Communications
tubes
Create, destroy, open. close,
read, write
Système d’Exploitation
Yann MORÈRE 2004
67/703
Hiérarchie De Conception
d’un système d'exploitation
NiveauNom
Objets
Exemple d’Opérations
7
Mémoire virtuelle
Segments, pages
Read, write, fetch
6
Stockage secondaire Blocks de données
Read, write, allocate, free
local
canaux des périphériques
5
Processus primaires Processus primaire, Suspend, resume, wait, signal
sémaphores, liste des
processus prêts
Système d’Exploitation
Yann MORÈRE 2004
68/703
Hiérarchie De Conception
d’un système d'exploitation
NiveauNom
4
Interruptions
5
Objets
Exemple d’Opérations
programmes de gestion Invoke, mask, unmask, retry
d’interruption
3
Procédures
Procédures, call stack Mark stack, call, return
2
Instruction Set
Évaluation pile, micro- Load, store, add, subtract
program interpreter, branchement
scalar and array data
1
Circuits Électronique Registrer, portes, bus, Clear, transfer, activate,
etc.
Système d’Exploitation
Yann MORÈRE 2004
69/703
Caractéristiques des systèmes
d'exploitation modernes
70/703
• Architecture à Micronoyau Microkernel
assigne seulement quelques fonctions
essentielles au noyau
• Espace d’adresse
• Communication interprocessus (IPC)
• Ordonnancement simpliste (basic)
Système d’Exploitation
Yann MORÈRE 2004
Caractéristiques des systèmes
d'exploitation modernes
71/703
• Multi-threading
le processus est divisé en « threads » qui peuvent
fonctionner simultanément
• Thread
unité dispatchable de travail
s'exécute séquentiellement et est interruptable
• Un processus est un ensemble d’un ou plusieurs
thread
Système d’Exploitation
Yann MORÈRE 2004
Caractéristiques des systèmes
d'exploitation modernes
72/703
• Multi-processing symétrique (SMP)
Il existe plusieurs processeurs
Ces processeurs partagent la même mémoire
principale et équipements d’E/S
Tous les processeurs peuvent exécuter les
mêmes fonctions
Système d’Exploitation
Yann MORÈRE 2004
Caractéristiques des systèmes
d'exploitation modernes
73/703
• Systèmes d’exploitation distribués
fournit l'illusion d'une mémoire centrale
unique
utilisé pour un système de fichiers réparti
Système d’Exploitation
Yann MORÈRE 2004
Caractéristiques des systèmes
d'exploitation modernes
74/703
• Conception orientée objet
utilisé pour ajouter des extensions modulaires
à un microkernel
permet aux programmeurs d’adapter le
système d'exploitation aux besoins du client
sans perturber l’intégrité du système
Système d’Exploitation
Yann MORÈRE 2004
75/703
Windows NT
• Exploite la puissance des microprocesseur
d’aujourd’hui
• Fournit le traitement multitâche dans un
environnement mono utilisateur
• Peut s'exécuter sur différent type de
plateformes matérielles
• Supporte des applications écrites pour
d’autres systèmes d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
76/703
Windows NT
• NT « Executive »
Architecture microkernel modifiée
• De nombreuses fonctions systèmes en dehors du
microkernel s’exécute en mode kernel
Utilise une structure en couche
• Couche d’abstraction matérielle - Hardware
abstraction layer (HAL)
Rend les matériels semblable pour le kernel
Fournit un support pour symmetric multiprocessing
Système d’Exploitation
Yann MORÈRE 2004
77/703
Windows NT
• NT « Executive »
Utilise une structure en couche
• microkernel
Composants les plus utilisés
Ne s’exécute pas en « threads »
Non preemptible et pas de pagination
• Services « executive «
Fournit une interface pour les programmes en mode
utilisateur
Système d’Exploitation
Yann MORÈRE 2004
78/703
Avantages du Client/Server
• Simplifie le système d’exploiation de base, NT
executive
Possibilité de construire plusieurs APIs (application
programming interface)
• Améliore la fiabilité
Chaque serveur s’exécute comme un processus
séparé avec ses propres parties de mémoire
Les serveurs ne peuvent pas directement accèder au
matériel
• Fournit les bases pour les calculs distribués
Système d’Exploitation
Yann MORÈRE 2004
Dispositifs Windows NT
pour le SMP
• Les routines du système d'exploitation peuvent
fonctionner sur n'importe quel processeur
• Les différentes routines peuvent s'exécuter
simultanément sur différents processeurs
• Plusieurs threads d’exécution à l’intérieur d’un
seul processus
• Les serveurs utilise plusieurs threads pour traiter
les demandes supplémentaires sur le client
simultanément
• Communication interprocessus flexible
Système d’Exploitation
Yann MORÈRE 2004
79/703
80/703
Objets Windows NT
• Toutes les entités ne sont pas des objets
• Les entités représentées par des objets sont les
fichiers, les threads, les processus, les
sémaphores, les unités de temps et les fenêtres.
• Le gestionnaire d’Object dans le kernel est
responsable de la création et destruction
d’objets, et pour l’autorisation d’accès aux
services et aux données d’un objet
Système d’Exploitation
Yann MORÈRE 2004
81/703
Architecture UNIX
• Le matériel est entouré par le système
d'exploitation
• Le système d'exploitation s'appelle le
kernel
• Délivre un nombre de services et
d’interfaces pour l’utilisateur
shell
Compilateur C
Système d’Exploitation
Yann MORÈRE 2004
82/703
Architecture UNIX
Application Programs
Compiler Components
Compiler
Shell Editors, and
Private User Programs
Kernel
Hardware
Système d’Exploitation
Yann MORÈRE 2004
83/703
Description et contrôle de
processus
Chapitre 3
Système d’Exploitation
Yann MORÈRE 2004
Spécificités requises d’un
système d’exploitation
• Ordonnancer l'exécution de plusieurs
processus pour maximiser l'utilisation du
processeur tout en fournissant un temps
de réponse raisonnable
• Allouez des ressources aux processus
• Supporter la communication inter
processus et la création de processus par
les utilisateurs
Système d’Exploitation
Yann MORÈRE 2004
84/703
85/703
Processus
• Aussi appelé une tâche
• Exécution d'un programme individuel
• Peut être tracé
Liste la séquence d’instructions qui s’exécute
Système d’Exploitation
Yann MORÈRE 2004
86/703
Ordonnanceur
• Programme qui passe le processeur d’un
processus à un autre
• Évite qu’un seul processus monopolise le
temps processeur
Système d’Exploitation
Yann MORÈRE 2004
87/703
Modèle de processus à 2 états
Ordonnanceur
Entrée
Non
Exécution
Exécution
Sortie
Pause
(a) Schéma de transition d’état
File
Entrée
Ordonnanceur
Sortie
Processeur
Pause
(a) Schéma de la file
Système d’Exploitation
Yann MORÈRE 2004
88/703
Création De processus
• Soumission d'un traitement par lots
• L'utilisateur de « logue »
• Créer pour fournir un service tel que
l'impression
• Engendrer par un processus existant
Système d’Exploitation
Yann MORÈRE 2004
89/703
Arrêt De processus
• Le traitement par lot provoque une
instruction Halt
• L’utilisateur se « delogue »
• Le processus exécute une demande de
service pour se terminer
• Conditions d’erreur ou de faute
Système d’Exploitation
Yann MORÈRE 2004
Raisons de terminaison de
processus
•
•
•
•
•
Arrêt normal
Limite de temps excédé
Mémoire non disponible
Violation des limites mémoire
Erreur de protection
Exemple de l’écriture d’un fichier en lecture seule
• Erreur Arithmétique
• Dépassement du temps
Le processus a attendu plus longtemps qu’une valeur
fixée pour cet évènement
Système d’Exploitation
Yann MORÈRE 2004
90/703
Raisons de terminaison de
processus
• Défaillance d’E/S
• Instruction invalide
Intervient quand on essaie d’exécuter des données
• Instruction privilégiée
• Mauvaise utilisation des données
• Intervention du système d’exploitation
Tel que l’apparition de blocage « deadlock »
• Le processus Parent se termine forçant le
processus enfant à se terminer
• Demande du processus parent
Système d’Exploitation
Yann MORÈRE 2004
91/703
92/703
Processus
• Non-exécutant
Prêt à s’exécuter
• Bloqué
Attente d’E/S
• L’Ordonnanceur ne peut pas simplement
choisir le processus qui a été dans la file
d'attente le plus longtemps parce qu'il
peut être bloqué
Système d’Exploitation
Yann MORÈRE 2004
93/703
Un modèle à 5 états
•
•
•
•
•
Exécution
Prêt
Bloqué
Nouveau
Terminé
Système d’Exploitation
Yann MORÈRE 2004
94/703
Modèle de processus à 5 états
Ordonnanceur
Release
Admission
Nouveau
Prêt
Exécution
Time-out
Apparition
Evènement
Attente
évènement
Bloqué
Système d’Exploitation
Yann MORÈRE 2004
Sortie
95/703
File Processus bloqués
simple
Files des P prêts
Relâchement
Ordonnanceur
Admission
Processeur
Time-out
Attente Évènement
Apparition
Evènement
File des P bloqués
Système d’Exploitation
Yann MORÈRE 2004
96/703
File Processus bloqués
Multiple
File des P. Prêts
Relâchement
Ordonnanceur
Admission
Processeur
Time-out
Attente Évènement 1
Apparition
Évènement 1
Files Évènement 1
Attente Évènement 2
Apparition
Évènement 1
File Évènement 2
Système d’Exploitation
Yann MORÈRE 2004
97/703
Processus Suspendus
• Le processeur est plus rapide que les E/S, donc
tous les processus pourraient attendre des E/S
• Déplacement de ces processus sur le disque
pour libérer de la mémoire centrale
• Les états bloqués deviennent des états
suspendus quand ils sont déplacés sur le disque
• Deux nouveau états
Bloqué, suspendu
Prêt, suspendu
Système d’Exploitation
Yann MORÈRE 2004
98/703
Schéma de transistion d’états de
processus avec 2 états suspendus
Prêt
Admission
Admission
Suspension
Ordonnanceur
Activation
Prêt,
suspendu
Exécution
Prêt
Suspension
Time out
Apparition
Évènement
Apparition
Évènement
Attente
Évènement
Activation
Bloqué,
suspendu
Bloqué
Système d’Exploitation
Yann MORÈRE 2004
Sortie
Structures De Contrôle Du
Système d'exploitation
• Le processeur réalise l’ordonnancement et le
répartition pour l’exécution des processus
• Allocation de ressources pour les processus
• Réponses aux demandes des programmes
utilisateurs
• Des tableaux sont construits pour chaque entité
que gère le système d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
99/703
100/70
Tableaux mémoire
• Allocation de la mémoire principales aux
processus
• Allocation de la mémoire secondaire aux
processus
• Attributs de protection pour l’aacès au
zones partagées de la mémoire
• Besoin d’information pour la gestion de la
mémoire virtuelle
Système d’Exploitation
Yann MORÈRE 2004
101/70
Tables d’E/S
• Le périphérique d’E/S est disponible ou
assigné à un processus
• État des l’opération d’E/S
• Position utilisée dans la mémoire centrale
pour le transfert des données d’E/S
(source, destination)
Système d’Exploitation
Yann MORÈRE 2004
102/70
Tableaux de fichiers
•
•
•
•
•
Existence des fichiers
Position sur la mémoire secondaire
État courant
Attributs
Quelques fois ces données sont
maintenues par le système de fichier
Système d’Exploitation
Yann MORÈRE 2004
103/70
Tableaux des processus
• L’image d’un processus est composée d’un
programme, de donnée, le pile et les
attributs
• Attributs
Block de contrôle du processus - process
control block (PCB)
Système d’Exploitation
Yann MORÈRE 2004
104/70
Block de contrôle du processus
Identification du processus
• Identifiant numérique unique
Peut être un index dans la tables de
processus initiaux
• Identifiant utilisateur
Qui est le responsable du travail
Système d’Exploitation
Yann MORÈRE 2004
Information d’état du
processus
• Contenu des registres du processeur
Registres visibles par l’utilisateur
Registres de contrôle et d’ état
Pointeurs de Pile
• Mot d’état Programme - Program status word
(PSW)
Contient les informations d’état
Exemple: registre EFLAGS sur les machines Pentium
Système d’Exploitation
Yann MORÈRE 2004
105/70
Information de contrôle de
processus
• Informations additionnelles nécessaire au
système d’exploitation pour contrôler et
coordonner les différents processus actifs
Information d’ordonnancement et d’état
Structuration des données
Communication inter processus
Privilèges des processus
Gestion de la mémoire
Appartenance et utilisation des ressource
Système d’Exploitation
Yann MORÈRE 2004
106/70
107/70
Fonctions typiques d’un noyau
de système d’exploitation
•
•
•
•
•
Gestion de Processus
Création et destruction de processus
Ordonnancement et répartition de processus
Permutation de processus
Synchronisation de processus et communication
inter processus
Gestion des bloques de contrôle de processus
(PCB)
Système d’Exploitation
Yann MORÈRE 2004
108/70
Fonctions typiques d’un noyau
de système d’exploitation
Gestion Mémoire
• Allocation d’un espace d’adresse pour les
processus
• « Swapping »
• Gestion de la pagination et de la
segmentation
Système d’Exploitation
Yann MORÈRE 2004
Fonctions typiques d’un noyau
de système d’exploitation
109/70
•
•
•
•
•
Gestion d’E/S
Gestion des tampons « Buffer »
Allocation des canaux et périphériques d’E/S
aux processus
Fonctions de Support
Gestion des interruptions
Comptabilité
Supervision
Système d’Exploitation
Yann MORÈRE 2004
110/70
Création de processus
•
•
•
•
Assignation d’un identifiant unique au processus
Allocation d’espace mémoire pour le processus
Initialisation du PCB
Réglage des liens appriopriés
Ex: ajouter un nouveau processus à la liste associée
à la file d’attente d’ordonnancement
• Autre
mettre à jour un fichier statistique
Système d’Exploitation
Yann MORÈRE 2004
111/70
Quand changer de processus
• Interruptions
Horloge
• Le processus est exécuté jusqu’à la fin du temps
imparti
E/S
• Erreur Mémoire
L’adresse mémoire est dans la mémoire
virtuelle, donc elle doit être chargée en
mémoire centrale
Système d’Exploitation
Yann MORÈRE 2004
112/70
Quand changer de processus
• Piège
Apparition d’une erreur
Peut causer la mise à l’état « sortie » du
processus
• Appel superviseur
Tel que l’ouverture d’un fichier
Système d’Exploitation
Yann MORÈRE 2004
Changement de l’état du
processus
• Sauver le contexte du processeur en incluant le
compteur programme et les autres registres
• Mettre à jour le PCB avec le nouvel état et les
autres informations
• Déplacer le PCB dans la file prêt-bloqué
appropriée
• Selectionner un autre processus pour exécution
Système d’Exploitation
Yann MORÈRE 2004
113/70
Changement de l’état du
processus
• Mettre à jour le PCB du processus
sélectionné
• Mettre à jour les structures de données
du gestionnaire de mémoire
• Restaurer le contexte du processus
sélectionné
Système d’Exploitation
Yann MORÈRE 2004
114/70
Exécution du système
d’exploitation
• Noyau non processus
Le noyau est exécuté en dehors de tout processus
Le code du système d’exploitation est exécuté
comme une entité séparée qui opère dans un mode
privilégié
• Exécution à l’intérieur des processus utilisateurs
Logiciel du système d’exploitation à l’intérieur du
contexte d’un processus utilisateur
Le processus s’exécute dans un mode provilégié
quand il exécute du code du système d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
115/70
Exécution du système
d’exploitation
• Système d’exploitation basé sur les
processus
Les fonctions principales du noyau sont des
processus séparés
Un processus est invoqué par le systèmes
d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
116/70
Schéma de transition des
états des processus UNIX
fork
Crée
Préempté
return
to user
Mémoire
suffisante
Exécution
Utilisateur
Mise en mémoire
disque (swap out)
préemption
retour
Appel système,
interruption
Interruption,
Retour interruption
Pas assez de mémoire
Prêt à exécuter
Processus de
réordonnancement en mémoire
Exécution
Noyau
Prêt à exécuter,
Swappé
Mise en mémoire
centrale (swap in)
Endormi
réveil
sortie
Zombie
Système d’Exploitation
Endormi,
en mémoire
réveil
Mise en mémoire
disque (swap out)
Endormi,
Swappé
Yann MORÈRE 2004
117/70
118/70
Threads, SMP, et
Microkernels
Chapitre 4
Système d’Exploitation
Yann MORÈRE 2004
119/70
Processus
• Propriété des ressources – le processus est
assigné à un espace de mémoire virtuel qui
maintiendra l’image du processus
• Réparti – le processus est composé d’un ou
plusieurs programmes
L’exécution peut être intercalée avec d’autres
processus
• Ces deux caractéristiques sont traitées
indépendamment par le SE
Système d’Exploitation
Yann MORÈRE 2004
120/70
Processus
• La répartition en sous programmes est
connue sous le nom de thread
« threading »
• Propriété des ressources est connue sous
le nom de tâches ou processus
Système d’Exploitation
Yann MORÈRE 2004
121/70
« Multithreading »
• Les système d’exploitation permettent
l’exécution de plusieurs threads
d’exécution dans un même processus
• MS-DOS permet seulement un seul thread
• UNIX permet plusieurs processus
utilisateur et plusieurs threads par
processus
• Windows NT permet plusieurs threads
Système d’Exploitation
Yann MORÈRE 2004
122/70
Threads et Processus
Un processus
Un thread
Un processus
Plusieurs threads
Plusieurs processus
Un thread par processus
Plusieurs processus
Plusieurs threads par processus
Système d’Exploitation
Yann MORÈRE 2004
123/70
Processus
• Possèdent un espace d’adresse virtuel qui
contient l’image du processus
• Accès protégés aux processeurs, aux
autres processus, aus fichiers et aux
ressources d’E/S
Système d’Exploitation
Yann MORÈRE 2004
124/70
Threads
• Possède un état d’exécution (exécution, prêt,
etc.)
• Sauvegarde du contexte du thread quand il est
bloqué
• Possède une pile d’exécution
• Possède un stockage statique intra-thread des
variables locales
• Possède un accès à la mémoire et au ressources
du processus
Tous les threads du processus partagent mémoire et
ressources
Système d’Exploitation
Yann MORÈRE 2004
Modèles de processus
MonoThreadé et MultiThreadé
Modèle de processus
Multithreadé
Modèle de processus
monothreadé
PCB
Thread
Thread
Thread
Control
Block
Thread
Control
Block
Thread
Control
Block
PCB
Pile
Util.
Pile
Util.
Pile
Util.
Espace
Adresse
Utilisateur
Pile
Kernel
Pile
Kernel
Pile
Kernel
Pile
Util.
Espace
Adresse
Utilisateur
Thread
Pile
Kernel
Système d’Exploitation
Yann MORÈRE 2004
125/70
126/70
Intérêt des Threads
• Moins de temps à créer un thread, qu’un
nouveau processus
• Moins de temps pour stopper un thread qu’un
processus
• Moins de temps pour permuter entre deux
threads qu’entre deux processus
• Comme les threads sont à l’intérieur d’un même
processus et partage la mémoire et les
ressources, ils peuvent communiquer entre eux
sans faire intervenir le noyau
Système d’Exploitation
Yann MORÈRE 2004
127/70
Threads
• Suspendre le processus implique de
suspendre tous les treads du processus,
comme il partage le même espace
d’adresse
• Terminer un processus, termine tous les
threads du processus
Système d’Exploitation
Yann MORÈRE 2004
128/70
Threads utilisateurs
• Toute la gestion des threads est faite
dans l’application
• Le noyau n’est pas averti de l’existence de
ces threads
• La commutation entre threads ne
demande pas de mode privilégiés
• L’ordonnancement est propre à
l’application
Système d’Exploitation
Yann MORÈRE 2004
129/70
Threads Kernel
• Windows NT et OS/2 sont des exemples
de cette approche
• Le noyau maintient les informations de
contexte pour les processus et les threads
• La commutation entre 2 threads nécessite
l’intervention du noyau
Système d’Exploitation
Yann MORÈRE 2004
Approches combinées pour
les threads
• Exemple de Solaris (Sun)
• La création de thread est faite dans
l’espace utilisateur
• L’ordonnacement et la synchronisation
sont faits dans l’espace utilisateur
Système d’Exploitation
Yann MORÈRE 2004
130/70
Relation entre Threads et
Processus
Threads:Processus
Description
131/70
Exemple de système
1:1
Chaque thread d’exécution
Est un processus unique
Avec son propre espace
D’adresse et ressources.
La plupart des implémentations
d ’Unix
M:1
Un processus définit un espace
D’adresse et une allocation
Des ressources. Plusieurs
Threads peuvent être crées et
Exécutés dans u processus.
Windows NT, Solaris, OS/2,
OS/390, MACH
Système d’Exploitation
Yann MORÈRE 2004
Relation entre Threads et
Processus
Threads:Processus
1:M
M:M
Description
Un thread peut migrer d’un
processus vers un autre. Ceci
permet à un thread d’être
facilement déplacé parmi des
systèmes différents
Combine les caractéristiques
des cas M:1 et 1:M
Système d’Exploitation
Exemple de système
Ra (Clouds), Emerald
TRIX
Yann MORÈRE 2004
132/70
Categories de systèmes
informatiques
• Instruction Unique, Donnée Unique - Single
Instruction Single Data (SISD)
Un seul processeur exécute un seul flux d’instruction
pour manipuler la donnée dans une mémoire
• Instruction Unique, Données Multiples - Single
Instruction Multiple Data (SIMD)
Une instruction est exécutée sur des jeux de données
différents sur des processeurs différents
Système d’Exploitation
Yann MORÈRE 2004
133/70
Categories de systèmes
informatiques
• Instructions Multiples, Donnée Unique - Multiple
Instruction Single Data (MISD)
Une sequence de données est transmisse à un jeu de
processeurs, chacun d’eux exécute une séquence
d’instruction différente. N’a jamais été implémenté
• Instructions Multiples, Données Multiples Multiple Instruction Multiple Data (MIMD)
Un jeu de processeurs exécute simultanément
différentes séquences d’instruction sur différents jeux
de données
Système d’Exploitation
Yann MORÈRE 2004
134/70
Symmetric Multiprocessing
(SMP)
• Le Kernel peut s’exécuter sur n’importe
quel processeur
• Tipiquement chaque processeur réalise un
auto-ordonnancement à partir du groupe
de processus ou threads disponibles
Système d’Exploitation
Yann MORÈRE 2004
135/70
Organisation du SMP
(Symmetric Multiprocessing)
Processor
Cache
Processor
Cache
Main
Memory
Système d’Exploitation
. .
.
Processor
Cache
I/O
Subsystem
Yann MORÈRE 2004
136/70
137/70
Microkernel - Micronoyau
• Petit noyau de système d'exploitation
• Ne contient que quelques fonctions essentielles
d’un SE
• Beaucoup de services traditionnellement inclus
dans le SE sont maintenant externes
Pilotes de périphériques
Système de fichiers
Gestionnaire de mémoire virtuelle
Système de fenêtrage et services de sécurité
Système d’Exploitation
Yann MORÈRE 2004
Avantages de
l’organisation Microkernel
• Uniformisation de l’interface pour les
processus demandeurs
Tous les services sont fournis par passage de
message
• Évolution
Permet l’ajout de nouveaux services
• Flexibilité
Les dispositifs existants peuvent être enlever
Système d’Exploitation
Yann MORÈRE 2004
138/70
Avantages de
l’organisation Microkernel
• Portabilité
Les changements nécessaires au portage du
système sur une nouvelle architecture sont
effectués dans le microkernel – pas dans les
autres services
• Fiabilité
Conception modulaire
De petit microkernel peuvent être testé
rigoureusement
Système d’Exploitation
Yann MORÈRE 2004
139/70
Avantages de
l’organisation Microkernel
• Support pour système distribué
Message envoyé sans connaître la machine
cible
• SE orienté objet
Les composants sont des objets avec des
interfaces définies clairement. Ils peuvent
être interconnectés pour former un logiciel
Système d’Exploitation
Yann MORÈRE 2004
140/70
141/70
Conception Microkernel
• Gestionnaire de la mémoire primaire
Faire correspondre chaque page virtuelle à
une trame de page physique
• Communication Inter--processus
• Gestionnaire E/S et interruption
Système d’Exploitation
Yann MORÈRE 2004
142/70
Processus Windows NT
• Implémentés en objets
• Un processus exécutable peut contenir un
ou plusieurs threads
• Les processus et les threads ont des
capacités intrinsèques de synchronisation
Système d’Exploitation
Yann MORÈRE 2004
Processus Windows NT
Attributs de l’objet
Process ID
Security Descriptor
Base priority
Default processor affinity
Quota limits
Execution time
I/O counters
VM operation counters
Exception/debugging ports
Exit status
Système d’Exploitation
Yann MORÈRE 2004
143/70
Thread Windows NT
Attributs de l’objet
Thread ID
Thread context
Dynamic priority
Base priority
Thread processor affinity
Thread execution time
Alert status
Suspension count
Impersonation token
Termination port
Thread exit status
Système d’Exploitation
Yann MORÈRE 2004
144/70
145/70
États des threads NT
Exécutable
Choisi pour exécution
Veille
Preempté
Prêt
Débloqué/Reprise
Resource Disponible
Resource
Disponible
Commutation
Transition
Attente
Exécution
Bloqué/
Suspendu
Terminate
Terminé
Débloqué
Ressource non disponible
Non exécutable
Système d’Exploitation
Yann MORÈRE 2004
146/70
Solaris
• Les processus intègrent l’espace d’adresse
utilisateur, la pile et le PCB
• Threads utilisateurs
• Processus poids légers
• Threads kernel
Système d’Exploitation
Yann MORÈRE 2004
147/70
Threads utilisateur Solaris
Stop
Runnable
Wakeup
Continue
Preempt
Stop
Stopped
Sleeping
Dispatch
Stop
Sleep
Active
Système d’Exploitation
Yann MORÈRE 2004
Processus poids légers
Solaris
Timeslice
or Preempt
Running
Wakeup
Dispatch
Stop
Stopped
Runnable
Blocking
System
Call
Continue
Wakeup
Active
Système d’Exploitation
Stop
Yann MORÈRE 2004
148/70
Concurrence: Exclusion
Mutuelle et
Synchronisation
Chapitre 5
Système d’Exploitation
Yann MORÈRE 2004
149/70
150/70
Concurrence
•
•
•
•
Communication parmi les processus
Partage de ressources
Synchronisation de plusieurs processus
Allocation du temps processeur
Système d’Exploitation
Yann MORÈRE 2004
151/70
Problèmes liés à la
Concurrence
• Partage des ressources globales
• Gestion de l’allocation des ressources
• Les erreurs de programmation sont
difficiles à trouver
Système d’Exploitation
Yann MORÈRE 2004
152/70
Un exemple simple (pascal)
procedure echo;
var out, in: character;
begin
input(in, keyboard);
out := in;
output(out, display)
end.
Système d’Exploitation
Yann MORÈRE 2004
153/70
Concernant le SE
• Garder la trace des processus actif
• Alloue et désalloue les ressources
Temps processeur
Mémoire
Fichier
Périphériques d’E/S
• Protection des données et des ressources
• Le résultat du processus doit être indépendant
de la vitesse d’exécution puisque d’autres
processus partagent le temps processeur
Système d’Exploitation
Yann MORÈRE 2004
Interaction entre
processus
154/70
• Les processus s’ignorent les uns les autres
• Les processus sont indirectement avertis
des uns des autres
• Les processus sont directement avertis
des uns des autres
Système d’Exploitation
Yann MORÈRE 2004
155/70
Compétition parmi les
processus pour les ressources
• L’exécution d’un processus peut affecter le
comportement des processus en compétition
• Si deux processus désirent accéder à une
ressource unique, la ressource sera allouée à
l’un des processus et l’autre devra attendre
• Il est aussi possible que le processus bloqué
n’accède jamais à la ressource et ne se termine
jamais
Système d’Exploitation
Yann MORÈRE 2004
156/70
Problèmes de Contrôle
• Exclusion Mutuelle
Sections critiques
• Seulement un programme à un instant donné est
autorisé dans la section critique
• Exemple : seulement un programme à un instant
est autorisé à envoyer des commandes à
l’imprimante
• Deadlock
• Famine - Starvation
Système d’Exploitation
Yann MORÈRE 2004
Coopération par partage
parmi les processus
• Les processus utilisent et mettent à jour
des données partagées telles que des
variables, des fichiers et bases de
données
• L’écriture doit être mutuellement exclusive
• Les sections critiques sont utilisées pour
assurer l’intégrité des données
Système d’Exploitation
Yann MORÈRE 2004
157/70
Coopération par
communication parmi les
processus
• Le communication fournit un moyen de
synchroniser, ou coordonner les différentes
activités
• Possibilité d’avoir un « deadlock »
Chaque processus attend un message d’un autre
processus
• Possibilité de famine
Deux processus qui s ’envoie des messages pendant
qu’un autre processus attend un message
Système d’Exploitation
Yann MORÈRE 2004
158/70
Conditions d’exclusion
mutuelle
• Seulement un seul processus à la fois est
autorisé à entrer en section critique pour une
ressources
• Si un processus s’arrête dans sa section critique,
il ne doit pas interférer sur d’autres processus
• Un processus qui a besoin de la section critique
ne doit pas être indéfiniment retardé; pas de
« deadlock » ni de famine
Système d’Exploitation
Yann MORÈRE 2004
159/70
Condition d’exclusion
mutuelle
• Un processus ne doit pas être retardé
pour accéder à la section critique quand il
n’y a pas d’autres processus qu’il l’utilise
• Aucune supposition ne doit être faite à
propose des vitesses des processus et du
nombre des processus
• Un processus ne peut rester en section
critique que pour un temps fini seulement
Système d’Exploitation
Yann MORÈRE 2004
160/70
Attente Active : BusyWaiting
Exemple :
Un Igloo a une petite entrée. Seulement un
processus à la fois peut entrer pour vérifier une
valeur écrite sur le tableau noir. Si la valeur
écrite sur le tableau noir est la même que le
processus, ce dernier peut entrer en section
critique.
Si la valeur écrite sur le tableau noir n’est pas
celle du processus, le processus quitte l’igloo
pour attendre. De temps en temps, le processus
rentre de nouveau dans l’igloo pour contrôler le
tableau noir
Système d’Exploitation
Yann MORÈRE 2004
161/70
Attente Active : BusyWaiting
• Les processus accède à chacun leur tour
(strictement) à la section critique
• Si un processus échoue, l’autre processus est
bloqué de manière permanente
• Chaque processus devrait avoir sa propre clé à
la section critique de manière à ce que quand
un processus est éliminé, les autres puissent
toujours accéder à la section critique
Système d’Exploitation
Yann MORÈRE 2004
162/70
Attente Active : BusyWaiting Seconde tentative
163/70
• Chaque processus peut examiner le statut de l’autre
sans pouvoir le modifier
• Quand un processus désire entrer en section
critique, il vérifie l’état des autres processus en
premier
• Si aucun autre processus n’est en section critique, il
met à jour son état pour l’accès à la section critique
• Cette méthode ne garantie pas l’exclusion mutuelle
• Chaque processus peut vérifier les drapeaux et alors
entrer en section critique dans le même temps
(action atomique)
Système d’Exploitation
Yann MORÈRE 2004
Attente Active : BusyWaiting troisième tentative
• Modifier le drapeau pour entrer en section
critique avant de vérifier les autres processus
• Si un autre processus est en section critique
alors que le drapeau est modifié, le processus
est bloqué jusqu’à ce que l’autre processus
libère la section critique
• Un « Deadlock » est possible quand deux
processus modifient leurs drapeaux pour entrer
en section critique. Maintenant chaque
processus doit attendre que l’autre processus
libère la section critique
Système d’Exploitation
Yann MORÈRE 2004
164/70
Attente Active : Busy-Waiting
quatrième tentative
• Un processus modifie son drapeau pour indiquer
qu’il désire entrer en section critique, mais est
préparé à réinitialiser le drapeau
• Les autres processus sont vérifiés. S’ils sont en
section critique, le drapeau est réinitialiser et
repositionner plus tard pour indiquer qu’il désire
entrer en section critique. Ceci est répété
jusqu’à ce que le processus puisse entrer en
section critique
Système d’Exploitation
Yann MORÈRE 2004
165/70
Attente Active : Busy-Waiting
quatrième tentative
• Il est possible pour chaque processus de
modifier leur drapeau, vérifier les autres
processus et initialiser leurs drapeaux. Ce
scénario ne dure pas très longtemps, il
n’est donc pas bloquant. Mais ceci n’est
pas désirable
Système d’Exploitation
Yann MORÈRE 2004
166/70
Attente Active : BusyWaiting Solution correcte
• Chaque processus attends son tour pour
accéder en section critique
• Si un processus désire la section critique,
il modifier son drapeau et devra attendre
son tour
Système d’Exploitation
Yann MORÈRE 2004
167/70
Exclusion Mutuelle –
Désactivation d’interruption
• Un processus s’exécute jusqu’à ce qu’il fasse
une demande de service au SE ou qu’il soit
interrompu
• Désactiver les interruptions garantit l’exclusion
mutuelle
• Le processeur est limité sa capacité à permuter
les programmes
• L’efficacité d’exécution peut être dégradée de
manière sensible
• Multi-processing
Désactiver les interruptions sur un processeur
ne garantit pas l’exclusion mutuelle
Système d’Exploitation
Yann MORÈRE 2004
168/70
Exclusion Mutuelle –
Instructions machine
• Une seule instruction est utilisée pour
mettre à jour un emplacement mémoire
de telle sorte que les autres instructions
ne peuvent pas interférer
• Ceci peut être utilisé pour les systèmes
mono et multi processeurs
• Ceci peut être utilisé pour les sections
critiques multiples
Système d’Exploitation
Yann MORÈRE 2004
169/70
Exclusion Mutuelle –
Instructions machine
170/70
• Inconvénients
L’attente active consomme du temps processeur
La famine est possible quand un processus quitte
la section critique et que plusieurs processus
attendent. Qui est le suivant?
« Deadlock »
• Si un processus à basse priorité est en section critique
et qu’un processus de plus haute priorité l’attend, le
processus de haute priorité va obtenir le processeur
pour attendre la section critique
Système d’Exploitation
Yann MORÈRE 2004
171/70
Sémaphores
• Une variable spéciale appelée sémaphore est
utilisée pour caractériser la section critique
(signal)
• Si un processus attend un signal, il est suspendu
jusqu’à ce que le signal soit envoyé
• Les opérations d’attente et de transmission de
signal ne peuvent pas être interrompu
• Une file est utilisée pour conserver la liste des
processus qui attendent le sémaphore
Système d’Exploitation
Yann MORÈRE 2004
Problème du
producteur/consommateur
• Un ou plusieurs producteurs produisent des items
et les placent dans un tampon
• Un consommateur prend les items dans le tampon
un par un
• Seulement un seul producteur ou consommateur
peut accéder au tampon à la fois
• Deux sémaphores sont utilisés
Un, représentant la quantité d’items dans le tampon
Un pour signaler qu’il est possible de d’utiliser le tampon
Système d’Exploitation
Yann MORÈRE 2004
172/70
173/70
Fonction producteur
producer:
repeat
produce item v;
b[in] := v;
in := in + 1
forever;
Système d’Exploitation
Yann MORÈRE 2004
174/70
Fonction consommateur
consumer:
repeat
while in <= out do { nothing };
w := b[out];
out := out + 1;
consume item w
forever;
Système d’Exploitation
Yann MORÈRE 2004
Producteur avec tampon
circulaire
producer:
repeat
produce item v;
while ( (in + 1) mod n = out) do {
nothing };
b[in] := v;
in := (in + 1) mod n
forever;
Système d’Exploitation
Yann MORÈRE 2004
175/70
Consommateur avec
tampon circulaire
consumer
repeat
while in = out do { nothing };
w := b[out];
out := (out + 1) mod n;
consume item w
forever;
Système d’Exploitation
Yann MORÈRE 2004
176/70
177/70
Tampon infini
b[1] b[2] b[3] b[4] b[5]
out
. . . .
in
Note: les zones cachées indiquent les portions du tampon occupés
Système d’Exploitation
Yann MORÈRE 2004
178/70
Le barbier
Chaises du Barbier
Caisse
Entrée
Salle d’attente
Sortie
Sofa
Système d’Exploitation
Yann MORÈRE 2004
179/70
Moniteurs
• Procédures Software
• Seulement un seul processus peut
s’exécuter dans le moniteur à la fois. Les
autres processus sont suspendus pendant
qu’ils attendent le moniteur
• Les processus peuvent être suspendus
lorsqu’ils sont dans le moniteur
Système d’Exploitation
Yann MORÈRE 2004
180/70
Passage de message
• Impose l’exclusion mutuelle
• Échange d’information
send (destination, message)
receive (source, message)
Système d’Exploitation
Yann MORÈRE 2004
Passage de message Synchronisation
• Expéditeur et récepteur peuvent ou pas
être bloquant (attente de message)
• Envoi bloquant, réception bloquante
Expéditeur et récepteur sont bloqués jusqu’à
ce que le message soit délivré
Appelé un « rendez-vous »
Système d’Exploitation
Yann MORÈRE 2004
181/70
Passage de message Synchronisation
• Envoi non bloquant, réception bloquante
L’expéditeur continue d’expédier les
messages le plus rapidement possible
Le récepteur est bloqué jusqu’à ce que le
message demandé soit reçu
• Envoi non bloquant, réception non
bloquante
Système d’Exploitation
Yann MORÈRE 2004
182/70
183/70
Adressage
• Adressage Direct
Les primitives d’envoi inclus un identifiant
spécifique du processus déstination
La primitive de réception peut connaître à
l’avance pour quel processus est destinée ce
message
La primitive de réception peut utiliser le
paramètre source pour retourner un valeur
lorsque l’opération de réception est réalisée
Système d’Exploitation
Yann MORÈRE 2004
184/70
Adressage
• Adressage
Les messages sont envoyés à une structure
de données partagée constituées de files
Les files sont appelées « Boîtes aus lettres
« mailboxes »
Un processus envoie un message à la boîte
aux lettres et l’autre processus récupère le
message de la boîte aux lettres
Système d’Exploitation
Yann MORÈRE 2004
Format général d’un
message
Message Type
Destination ID
Entête Header
Source ID
Message Length
Control Info.
Corps Body
Message Contents
Système d’Exploitation
Yann MORÈRE 2004
185/70
Problème
Lecteurs/Écrivains
186/70
• Un nombre indéterminé de lecteurs peut
lire simultanément le fichier
• Seulement un Écrivain à la fois peut écrire
dans le fichier
• Si un écrivain écrit dans le fichier, aucun
lecteur ne peut y accéder
Système d’Exploitation
Yann MORÈRE 2004
187/70
Concurrence: « Deadlock »
et famine
Chapitre 6
Système d’Exploitation
Yann MORÈRE 2004
188/70
« Deadlock »
• Le blocage permanent un ensemble
complet de processus qui sont en
compétition pour l’accès à des ressources
systèmes ou pour communiquer entre eux
• Met en jeu des besoins conflictuels à des
ressources par deux ou plusieurs
processus
Système d’Exploitation
Yann MORÈRE 2004
189/70
Exemple de « Deadlock »
Progress
of Q
2
1
Release
A
A
Required
P and Q
want A
Release
B
Get A
3
B
Required
deadlock
inevitable
P and Q
want B
5
Get B
4
6
Get A
Get B Release ARelease B
Progress
of P
A
Required
B Required
Système d’Exploitation
Yann MORÈRE 2004
190/70
Exemple de « No Deadlock »
Progress
of Q
1
2
3
Release
A
A
Required
Release
B
4
P and Q
want A
Get A
P and Q
want B
B
Required
5
Get B
6
Get A
Get B Release A Release B
Progress
of P
A
Required
B Required
Système d’Exploitation
Yann MORÈRE 2004
191/70
Ressources réutilisables
• Utilisée par un seul processus à la fois et n’est
pas épuisée par l’utilisation de ce processus
• Les processus obtiennent les ressources qui les
libèrent plus tard pour une réutilisation par
d’autres processus
• Le temps processeur, les canaux d’E/S, mémoire
primaire et secondaire, fichiers, bases de
données et sémaphores
• Des « Deadlock » apparaissent si chaque
processus conservent une ressource et
demande une autre
Système d’Exploitation
Yann MORÈRE 2004
192/70
Exemple de « Deadlock »
• Il y a de la mémoire disponible pour une
allocation de 200Ko, et la séquence suivante
d’évènements apparaît
P1
P2
...
...
Request 80K bytes;
Request 70K bytes;
Request 60K bytes;
Request 80K bytes;
...
...
• Un « Deadlock » apparaît si les deux processus
réalisent leurs secondes requêtes
Système d’Exploitation
Yann MORÈRE 2004
193/70
Ressources consommables
• Crée (produite) et détruite (consommée)
par un processus
• Interruptions, signaux, messages, et
information dans les tampons d’E/S
• Un « Deadlock » peut apparaître si un
message de réception est bloqué
• Seulement une certaine combinaison
d’évènements peut faire apparaître un
« deadlock »
Système d’Exploitation
Yann MORÈRE 2004
194/70
Exemple de « Deadlock »
• Un « Deadlock » apparaît si le message
« receive » est bloqué
P1
P2
...
...
Receive(P2);
Receive(P1);
Send(P2);
Send(P1);
...
Système d’Exploitation
...
Yann MORÈRE 2004
Conditions pour avoir un
« Deadlock »
• Exclusion mutuelle
Seulement un seul processus peut utiliser une
ressource à un instant donné
• Prise-et-Attente
Un processus peut conserver des ressources allouées
tout en attendant l'attribution d'autres
• Pas de préemption
aucune ressource ne peut être de force enlevée d'un
processus la tenant
Système d’Exploitation
Yann MORÈRE 2004
195/70
Conditions pour avoir un
« Deadlock »
• Attente circulaire
Si il existe une chaîne fermée de processus
telle que chaque processus possède au moins
une ressource nécessaire par le processus
suivant dans la chaîne
conséquence des 3 premières conditions
• Les autres conditions sont nécessaires mais pas
suffisantes pour obtenir un « deadlock »
Système d’Exploitation
Yann MORÈRE 2004
196/70
197/70
Attente circulaire
Resource
A
sts
e
u
Re q
Process
P1
Hel
dB
Hel
db
y
sts
e
u
Req
y
Resource
B
Système d’Exploitation
Yann MORÈRE 2004
Process
P2
Empêchement de
« Deadlock »
198/70
• Exclusion mutuelle
ne peut pas être empêchée
• Prise-et-Attente
Nécessite qu’un processus demande toues ses
ressources nécessaires en même temps
Bloque le processus jusqu’à ce que toutes les
demandes puissent être accordées simultanément
le processus peut être retardé pendant longtemps
en attente de toutes ses demandes
Les ressources allouées à un processus peuvent
rester inutilisées très longtemps. Ces ressources
pourraient être utilisées par d’autres processus
Système d’Exploitation
Yann MORÈRE 2004
199/70
Empêchement de
« Deadlock »
• Pas de préemption
Si un processus est refusé pour sa requête suivante,
le processus doit libérer les ressources qu’il possédait
si un processus ne peut pas obtenir une ressource, le
processus peut devoir libérer ses ressources. Doit
avoir les capacités de reconstituer l'état courant.
Pratiquement, seulement quand l’état peut être
facilement sauvé et restauré plus tard, tel que le
processeur.
Système d’Exploitation
Yann MORÈRE 2004
200/70
Empêchement de
« Deadlock »
• Attente circulaire
Définit un ordonnancement linéaire pour les
ressources
Une fois que la ressource est obtenue,
seulement les ressources en haut de liste
peut être accédées
Peut rejeter les ressources non nécessaires
Système d’Exploitation
Yann MORÈRE 2004
201/70
Détection de « Deadlock »
• Le système d’exploitation vérifie les
« deadlock »
• Vérification à la demande de ressource
détection à l’avance de « deadlock »
Vérifications fréquentes du temps processeur
consommé
• Vérification périodique
Système d’Exploitation
Yann MORÈRE 2004
202/70
Évitement de « Deadlock »
• Ne pas démarrer un processus si sa demande
peut conduire à une impasse « deadlock »
• Ne pas autoriser une demande incrémentale de
ressource à un processus si cette allocation peut
conduire à une impasse « deadlock »
• Préemption et relâchement de processus non
nécessaire
Système d’Exploitation
Yann MORÈRE 2004
203/70
Évitement de « Deadlock »
• Le besoin maximum de ressource doit être
prévu à l’avance
• Les processus pris en considération doivent être
indépendant; pas de besoin de synchronisation
• Il doit y avoir un nombre fixe de ressources à
allouer
• Aucun processus ne doit se terminer pendant
qu’il possède les ressources
Système d’Exploitation
Yann MORÈRE 2004
Stratégies une fois
l’impasse « deadlock »
détectée
• Abandonner tous les processus en impasse
• Reprendre chaque processus en impasse à la
dernière instruction contrôlée, et reprendre tous
les processus
L’impasse précédente peut lors se reproduire
• Abandonner successivement les processus en
impasse jusqu’à ce qu’il n’y aie plus d’impasse
• Préemption successive des ressources jusqu’à ce
qu’il n’y aie plus d’impasse
Système d’Exploitation
Yann MORÈRE 2004
204/70
Critère de sélection des
processus en impasse
• Le moins de temps processeur consommé
jusqu’ici
• Le moins de lignes de sortie produites
jusqu’ici
• Le plus grand temps restant estimé
• Le moins de ressources totales allouées
jusqu'ici
• Priorité la plus basse
Système d’Exploitation
Yann MORÈRE 2004
205/70
Problème des
philosophes dîneurs
Système d’Exploitation
Yann MORÈRE 2004
206/70
Mécanismes de
concurrence UNIX
207/70
• Tubes « Pipes »
Tampon circulaire permettant à deux processus
de communiquer
File écrite par un processus et lue par un autre
le système d'exploitation impose l'exclusion
mutuelle pour l'écriture et la lecture la pipe
L’écriture des demandes est immédiatement
exécutée s'il y a place dans la pipe, autrement le
processus est bloqué
La demande de lecture est bloquée si elle tente
de lire plus d’octets qu’il n’y en a dans le tube
Système d’Exploitation
Yann MORÈRE 2004
208/70
Mécanismes de
concurrence UNIX
• Messages
block de texte d’un certain type
Le récepteur peut retrouver les messages soit par le
type, soit par l’ordre FIFO
Le processus est suspendu quand il essaie d’envoyé
un message à une file pleine
Le processus est suspendu quand il essaie de lire une
file vide
Si un processus échoue en essayant de lire une
certain type de message, n’est pas suspendu
Système d’Exploitation
Yann MORÈRE 2004
209/70
Mécanismes de
concurrence UNIX
• Mémoire partagée
Block commun de mémoire virtuelle partagée
par plusieurs processus
Forme rapide de la communication interprocessus
L’exclusion mutuelle doit être fournie par les
processus, et non par le système
d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
210/70
Mécanismes de
concurrence UNIX
• Sémaphores
Attente et signaux
Le système d’exploitation fournit toutesces
demandes
• Signaux
Mécanisme logiciel qui informe un processus
sur l’occurrence d’un évènement asynchrone
Système d’Exploitation
Yann MORÈRE 2004
Thread Solaris primitives
de Synchronisation
• Verrou d’exclusion mutuelle
Empêche que plus d’un thread de s’exécuter
quand le verrou est posé
• Sémaphores
Utilisé pour incrémenter et décrémenter (un
nombre de ressources)
Système d’Exploitation
Yann MORÈRE 2004
211/70
Thread Solaris primitives
de Synchronisation
• Verrous Lecteurs multiples, Ecrivain
unique « (readers/writer) locks »
Plusieurs threads ont des accès lecture seule
simultanément
Un seul thread possède l’accès en écriture
• Variables condition
Utilisée pour attendre jusqu’à ce qu’une
condition particulière soit vraie
Système d’Exploitation
Yann MORÈRE 2004
212/70
Mécanismes de
concurrence Windows NT
• Objets de Synchronisation
processus
thread
fichier
Entrée console
Notification de modification fichier
Mutex (exclusion mutuelle)
sémaphore
évènement
Timer d’attente
Système d’Exploitation
Yann MORÈRE 2004
213/70
214/70
Gestion Mémoire
Chapitre 7
Système d’Exploitation
Yann MORÈRE 2004
215/70
Gestion Mémoire
• C’est la tâche gérée par le SE et le matériel pour
permettre l’exécution de plusieurs processus en
mémoire principale
• Si peut de processus peuvent être contenu en
mémoire centrale, alors plus le temps que les
processus devront attendre la CPU ou les E/S
sera long
• Par conséquent, la mémoire doit être allouée de
manière efficace de manière à contenir un
maximum de processus en mémoire
• Dans la plupart des cas, le noyau occupe des
portions fixes de la mémoire principale et le
reste est partagé par les multiples processus
Système d’Exploitation
Yann MORÈRE 2004
Besoins pour la Gestion
Mémoire
• « Relocation »
Le programmeur ne peut pas savoir ou le programme
va être charger en mémoire quand il est exécuté
Un processus peut être (souvent) relogé en mémoire
centrale à cause du « swapping »
Le « swapping » permet au SE d’avoir un plus large
éventail de processus prêt à exécuter
Les référence mémoire dans le code (pour les
instructions et les données) doivent être traduite en
une adresse physique de mémoire
Système d’Exploitation
Yann MORÈRE 2004
216/70
Besoins pour la Gestion
Mémoire
• Protection
Les processus ne doivent pas pouvoir faire
référence à des emplacements mémoire
d’autres processus sans permissions
Il est impossible de vérifier les adresses dans
un programme à la compilation, si celui-ci
être relogé après un « swapping »
Les références d’adresses doivent être
vérifiées par le matériel pendant l’exécution
Système d’Exploitation
Yann MORÈRE 2004
217/70
Besoins pour la Gestion
Mémoire
218/70
• Partage
Doit autoriser plusieurs processus à accéer à
une portion de de mémoire principale
commune en évitant le compromis de
protection
• Les processus coopérant peuvent avoir besoin de
partager un accès à la même structure de données
• Il est meilleur d’autoriser chaque processus
d’accéder à la même copie du programme plutôt que
d’avoir chacun sa propre copie
Système d’Exploitation
Yann MORÈRE 2004
Besoins pour la Gestion
Mémoire
• Organisation logique
Les utilisateurs écrivent des programmes modulaires
avec différentes caractéristiques
• Les modules d’instructions sont en exécution seule
• Les modules de données sont soit en lecture seule soit en
lecture écriture
• Certains modules sont privés, d’autres sont publics
Pour traiter efficacement des programmes utilisateur,
le SE et le matériel doivent supporter une forma basic
de module pour fournir la protection requise et la
partage
Système d’Exploitation
Yann MORÈRE 2004
219/70
Besoins pour la Gestion
Mémoire
• Organisation physique
La mémoire secondaire permet un stockage à long
terme des programmes et des données tandis que le
mémoire principale conserve les programmes et les
données en cours d’exécution
Déplacer des informations entre ces deux niveaux de
mémoire et un point très important de la gestion
mémoire d’un SE
• Il ne faut pas laisser cette responsabilité au programmeur
d’application (inefficacité)
Système d’Exploitation
Yann MORÈRE 2004
220/70
Gestion simple de mémoire
221/70
• Nous étudions ici un cas simple où il n’y a pas
de mémoire virtuelle
• Un processus exécutant doit être complètement
dans la mémoire centrale
• Bien que ces techniques de gestion ne soient
plus utilisées dans les SE modernes, elles
posent les bases pour une bonne
compréhension de la mémoire virtuelle
Partitionnement fixe
Partitionnement dynamique
Pagination simple
Segmentation simple
Système d’Exploitation
Yann MORÈRE 2004
Partitionnement
fixe
222/70
• Partitionnement de la
mémoire principale en un
ensemble de zones
distinctes (qui ne se
recouvrent pas) appelées
Partitions
• Les partitions peuvent
être de taille égale ou non
Système d’Exploitation
Yann MORÈRE 2004
Partitionnement fixe
223/70
• Tous les processus dont la taille est inférieure
ou égal à la taille de la partition peut être
chargé dans la partition
• Si toutes le partitions sont occupées, le SE
peut « swapper » un processus de la partition
• Un programme peut être trop grand pour tenir
partition. Le programmeur doit alors concevoir
le programme avec des recouvrements
« overlays »
Lorsque le module nécessaire n’est pas présent
le programme utilisateur doit être chargé ce
module dans la partition du programme,
recouvrant le programme ou les données qui y
s’y trouvent
Système d’Exploitation
Yann MORÈRE 2004
224/70
Partitionnement fixe
• L’utilisation de la mémoire principale est
inefficace. N’importe quel programme (même
petit) occupe une partition entière. On appelle
cela la fragmentation interne.
• Les partitions de taille inégale diminue ce
problème mais il est toujours existant...
• Les partitions de taille égale ont été utilisées sur
les premiers SE d’IBM MFT (Multiprogramming
with a Fixed number of Tasks)
Système d’Exploitation
Yann MORÈRE 2004
Algorithme de placement
pour partitions
• Partition de taille égale
S’il y a une partition disponible, un processus
peut être chargé dans cette partition
• Parce que toutes les partitions sont de taille
identique, la partition qui est utilisée n’a pas
d’importance
Si toutes les partitions sont occupées par des
processus bloquant, il faut choisir une
processus à « swapper » pour faire de la
place à un nouveau processus
Système d’Exploitation
Yann MORÈRE 2004
225/70
Algorithme de placement
pour partitions
• Partitions de taille inégale :
utilisations de plusieurs files
• Assigne chaque processus à
la partition la plus petite dans
laquelle il tient
Une file pour chaque taille de
partition
Essaie de minimiser la
fragmentation interne
Problème : des files seront vides
si aucun processus ne fait la
bonne taille pour être ranger
dedans
Système d’Exploitation
Yann MORÈRE 2004
226/70
Algorithme de placement
pour partitions
• Partitions de taille
inégale : utilisations
d’une seule file
Quand c’est le moment
de charger un processus
en mémoire, la plus
petite partition qui peut
contenir le programme
est sélectionnée
Accroît le degrès de
multiprogrammation au
dépend de la
fragmentation interne
Système d’Exploitation
Yann MORÈRE 2004
227/70
Partionnement dynamique
228/70
• Les partitions sont en nombre variable et de taille
variable
• A Chaque processus est alloué exactement la
quantité de mémoire dont il a besoin
• Éventuellement des trous apparaissent dans la
mémoire centrale. Cela s’appelle la fragmentation
externe
• Il faut utiliser la défragmentation pour déplacer les
processus de telle manière qu’ils soient contigus en
mémoire et que la mémoire libre soit d’un block
• Utilisé sur le SE d’IBM MVT (Multiprogramming with
a Variable number of Tasks)
Système d’Exploitation
Yann MORÈRE 2004
Partionnement dynamique :
un exemple
• Un trou de 64K reste après le chargement de 3 processus : plus assez
pour une autre processus
• Si les processus 1,2 et 3 sont bloqués, le SE « swappe » le processus 2
pour charger le processus 4
Système d’Exploitation
Yann MORÈRE 2004
229/70
Partionnement dynamique :
un exemple
230/70
• Une autre trou de 96K est crée
• Si les processus 1 et 2 sont bloqués, le SE « swappe » le processus 1 et
ramène le processus 2, et un autre trou de 96K est crée...
• La défragmentation devrait produire un unique trou de 256K
Système d’Exploitation
Yann MORÈRE 2004
Algorithme de placement
• Utilisé pour décider quel
block libre sera utiliser pour
un processus
• But : réduire l’usage de la
défragmentation (temps cpu
utilisé)
• Algorithmes possibles :
Meilleur zone : choisir le plus
petit trou
Première zone : choisir le
premier trou à partir du début
Prochaine zone : choisir le
prochain trou à partir de la
zone de placement
Système d’Exploitation
Yann MORÈRE 2004
231/70
Algorithmes de placement :
remarques
232/70
• Prochaine zone conduit souvent à l’allocation de la
plus grande zone mémoire en fin de mémoire
centrale
• Première zone favorise les allocations en début de
mémoire : occasionne moins de fragmentation que
« prochaine zone »
• Meilleure zone cherche le plus petit block : le
fragment laissé ensuite est le plus petit possible
La mémoire principale contient alors des trous si petits
qu’il n’est plus possible de mettre aucun processus à
l’intérieur : la défragmentation doit être faite plus
souvent
Système d’Exploitation
Yann MORÈRE 2004
233/70
Algorithme de Remplacement
• Quand tous les processus en mémoire
centrale sont bloqués, le SE doit choisir
quel processus remplacer
Un processus doit être « swappé » (état
bloqué-suspendu) et remplacé par un
nouveau processus de la file suspendu-prêt
Ceci sera discuté plus tard lors de la gestion
de la mémoire virtuelles
Système d’Exploitation
Yann MORÈRE 2004
234/70
Système « Buddy »
• Un compromis raisonnable pour surmonter
les inconvénients des deux méthodes de
partitionnement fixe et variable
• Un forme modifiée est utilisée dans Unix
SVR4 pour l’allocation mémoire du noyau
• Les blocks mémoire sont disponibles en
taille de 2^{K} où L <= K <= U et où
2^{L} = taille du plus petit block allouable
2^{U} taille du plus grand block allouable
(généralement, la taille de la mémoire globale)
Système d’Exploitation
Yann MORÈRE 2004
Système « Buddy »
235/70
• On commence avec le block entier de taille 2^{U}
• Quand une demande de taille S est faite :
Si 2^{U-1} < S <= 2^{U} alors allouer le block entier de
taille 2^{U}
Sinon, couper en deux « buddies », chacun de taille 2^{U1}
Si 2^{U-2} < S <= 2^{U-1} alors allouer un des deux
buddies
Sinon un des deux buddies est coupé en 2
• The procédé est répété jusqu’à ce que le plus petit block
supérieur ou égal à S soit généré
• Deux « buddies » sont fusionnés lorsque 2 d’entre eux
sont non alloués
Système d’Exploitation
Yann MORÈRE 2004
236/70
Système « Buddy »
• Les SE maintiennent plusieurs liste de « trou »
La i-list est la liste des trous de taille 2^{i}
Chaque fois qu’il y a une paire de « buddies » dans
la i-list, il sont supprimés de cette liste et fusionnés
en un seul trou dans la (i+1)-list
• Présentation d’une requête de taille k telle que
2^{i-1} < k <= 2^{i}:
La i-list est examinée en premier
Si la i-list est vide, la (i+1)-list est examinée...
Système d’Exploitation
Yann MORÈRE 2004
Exemple de système Buddy
Système d’Exploitation
Yann MORÈRE 2004
237/70
Système Buddy : remarques
• En moyenne, la fragmentation interne est de
internal
Chaque block mémoire est occupé au moins à 50%
• Les programmes ne sont pas déplacés en
mémoire
Simplifie la gestion mémoire
• La plupart du temps efficace quand la taille M de
la mémoire utilisée par la système « buddy » est
une puissance de 2
M = 2^{U} octets où U est un entier
Alors la taille de chaque blocks est une puissance de 2
Le plus petit block est de taille 1
Ex: si M = 10, alors le plus petit block serait de taille 5
Système d’Exploitation
Yann MORÈRE 2004
238/70
239/70
Relogement
• A cause du « swapping » et défragmantation, un
processus peut occupé différent emplacement
mémoire pendant sa durée de vie
• Par conséquent, les références de la mémoire
physique ne peuvent pas être détermminée par
le processus
• Ce problème est résolu par la distinction entre
adresse physique et adresse logique
Système d’Exploitation
Yann MORÈRE 2004
Type d’adresses
240/70
• Une adresse physique (adresse absolue) est un
emplacement physique en mémoire centrale
• Une adresse logique est une référence à un
emplacement mémoire indépendant de la
structure/organisation physique de la mémoire
• Les compilateurs produisent du code dans lequel
toutes les références mémoires sont des adresses
logiques
• Une adresse relative est un exemple d’adresse
logique dans laquelle l’adresse est exprimée
comme un emplacement relatif à un point connu
du programme (ex.: le début)
Système d’Exploitation
Yann MORÈRE 2004
Traduction d’adresse
• Une adresse relative est le type le plus
fréquent d’adresse logique utilisées dans les
modules programmes (fichiers exécutables)
• De tels modules sont chargés dans la mémoire
centrale avec toutes les références mémoire
sous forme relatives
• Les adresses physiques sont calculées « à la
volée » lorsque les instructions sont exécutées
• Pour une bonne performance, la traduction de
la forme relative à l’adresse physique doit être
faite par le matériel
Système d’Exploitation
Yann MORÈRE 2004
241/70
Exemple simple de traduction
matériel d’adresse
242/70
• Lorsqu’un processus passe à l’état exécutant, un
registre de base (en CPU) est chargé avec
l’adresse physique de début du processus
• Un autre registre de borne est chargé avec
l’adresse physique de fin du processus
• Quand une adresse relative est rencontrée, elle est
ajoutée au contenu du registre de base pour
obtenir une adresse physique qui est comparée au
contenu du registre de borne
• Ceci fournit une protection matériel : chaque
processus peut uniquement accéder à la mémoire
qui lui est allouée
Système d’Exploitation
Yann MORÈRE 2004
Exemple simple de traduction
matériel d’adresse
Système d’Exploitation
Yann MORÈRE 2004
243/70
244/70
Pagination simple
• La mémoire principale est partionnée en morceau
de taille fixes (relativement petite)
• Astuce : chaque processus est aussi divisé en
morceau de la même taille appelés pages
• Les pages du processus peuvent être assignées
aux morceaux disponibles de la mémoire centrale
appelés trames (ou trame de pages)
• Conséquence : un processus n’a pas besoin
d’occuper des portions contiguës de la mémoire
Système d’Exploitation
Yann MORÈRE 2004
Exemple de chargement de
processus
245/70
• Maintenant, supposons que le processus B est « swappé »
sur disque
Système d’Exploitation
Yann MORÈRE 2004
Exemple de chargement de
processus (suite)
• Quand le processus A et
C sont bloqués, le
gestionnaire de
pagination charge un
nouveau processus D de
composé 5 pages
• Le processus D n’occupe
pas des parties
contiguës de la mémoire
• Il n’y a pas de
fragmentation externe
• La fragmentation interne
est seulement produite
par la dernière page de
chaque processus
Système d’Exploitation
Yann MORÈRE 2004
246/70
Tables des pages
247/70
• Le SE a maintenant besoin de conserver (en mémoire
centrale) une table de pages pour chaque processus
• Chaque entrée de la table de page est composée d’un
numéro de trame ou la page est physiquement localisée
• La table de page est indexée par le numéro de page pour
obtenir le numéro de trame
• Une liste des trames libres (disponibles pour des pages) est
aussi maintenue
Système d’Exploitation
Yann MORÈRE 2004
Adresse logique utilisée en
pagination
248/70
• A l’intérieur de chaque programme, chaque adresse
logique doit être composée d’un numéro de page et
d’un offset à l’intérieur de la page
• Un registre CPU conserve toujours l’adresse de
départ de la table de page du processus exécutant
courant
• Quand une adresse logique est présentée (numéro
de page, offset), le processeur accède à la table de
page pour obtenir l’adresse physique (numéro de
trame, offset)
Système d’Exploitation
Yann MORÈRE 2004
Adresse logique
en pagination
249/70
• L’adresse logique devient une adresse
relative lorsque la taille de la page est
une puissance de 2
• Ex. : si des adresse 16 bits sont utilisée
et que la taille de la page est de 1K, nous
avons besoin de 10 bits pour l’offset et
nous avons 6 bits disponibles pour le
numéro de page
• Alors l’adresse de 16 bits est obtenue
avec les 10 bits de poids faible pour
l’offset, et les 6 bits de poids fort pour le
numéro de page, et est une zone relative
au début de la zone mémoire du
processus
Système d’Exploitation
Yann MORÈRE 2004
250/70
Adresse logique en pagination
• En utilisant une puissance de 2 pour la taille de
page, les pages sont invisibles pour le
programmeur, compilateur/assembleur et
l’éditeur de lien
• La conversion d’adresse en temps réel (en
exécution) est facile à implémenter de manière
matériele
Les adresses logique (n,m) seront converties en
adresse physiques (k,m) par l’indexation de la table
de page et en lui rajoutant le même offset m au
numérode trame k
Système d’Exploitation
Yann MORÈRE 2004
Conversion d’adresse logiquephysique en pagination
Système d’Exploitation
Yann MORÈRE 2004
251/70
Segmentation simple
252/70
• Chaque programme est divisé en blocks de taille
inégale nommée segments
• Lorsqu’un processus est chargé en mémoire, ces
différents segments peuvent être localisé n’importe
où.
• Chaque segment contient un ensemble complet
d’instructions/données : il n’y a pas de
fragmentation interne
• Il y a de la fragmentation externe; elle est réduit si
on utilise des segments de petite taille
Système d’Exploitation
Yann MORÈRE 2004
Segmentation simple
253/70
• Au contraire de la pagination, la segmention
est visible pour le programmeur
Elle est fournie comme une a facilité pour
organiser logiquement des programmes (ex :
données dans un segment, code dans un autre)
Doit avoir la connaissance de la taille limite du
segment
• Le SE conserve une table de segment pour
chaque processus. Chaque entrée contient :
L’adresse physique de départ de ce segment
La longueur de ce segment (pour la protection)
Système d’Exploitation
Yann MORÈRE 2004
Adresse logique utilisée en
segmentation
254/70
• Quand un processus passe à l’état exécution, un
registre CPU est chargé avec l’adresse de la table
de segments du processus
• Lorsqu’on présente une adresse logique (numéro
de segment, offset)=(n,m), la CPU indexe (avec n)
la table de segment pour obtenir l’adresse physique
de départ k et la longueur l de ce segment
• L’adresse physique est obtenue en ajoutant m à k
(différent de la pagination)
Le matériel compare aussi l’offset m avec la longueur l
du segment pour vérifier que l’adresse soit valide
Système d’Exploitation
Yann MORÈRE 2004
Conversion d’adresse logiquephysique en segmentation
Système d’Exploitation
Yann MORÈRE 2004
255/70
Comparaison de la pagination
simple et de la segmentation
256/70
• La segmentation demande un matériel plus compliqué pour
la conversion d’adresse
• La segmentation souffre de fragmentation externe
• La pagination possède seulement une petite fragmentation
interne
• La segmentation est visible par le programmeur alors que
la pagination est transparente
• La segmentation peut être vue comme une commodité
offerte au programmeur pour organiser logiquement un
programme en segments et utiliser différents type de
protection (ex. : exécution seul pour le code,
lecture/écriture pour les données)
Pour cela il est nécessaire d’utiliser les bits de protection dans
les entrées de la table
Système d’Exploitation
Yann MORÈRE 2004
257/70
Linking and Loading
Annexe au chapitre 7
Système d’Exploitation
Yann MORÈRE 2004
Étapes pour le chargement
d’un processus en mémoire
• L’éditeur de lien fusionne les fichiers objets en un fichier
exécutable unique (programme exécutable)
• Le chargeur place le programme exécutable en mémoire
Système d’Exploitation
Yann MORÈRE 2004
258/70
259/70
Fichier objet (sans segmentation)
• Seulement le code et les données seront
chargés en mémoire
Le reste est utilisé par l’éditeur de lien et
ensuite enlevé
• Les noms publiques sont utilisables par
d’autres fichiers objets
• Les noms externes sont définis dans
d’autres fichiers objets
Inclus la liste des instructions qui possèdent
ces noms comme opérandes
• Toutes les adresses sont relatives à un
point de référence dans le fichier
• Dictionnaire de readressage :
Possède la liste des instructions des
opérandes qui sont adressés (puisqu’ils sont
réadressables)
Système d’Exploitation
End of module
Relocation dictionary
Data
Machine code
External names table
Public names table
Module identification
Yann MORÈRE 2004
260/70
Fichier objet (avec segmentation)
• Nous avons en plus des informations concernant
tous les segments qui sont présents dans le
fichiers objets
Nous avons différents types de segments (ex. :
segments de code, segments de données…)
Chaque segment possède un nom
Pour chaque segment, nous indiquons comment il
va être combiné à d’autres segments de même nom
localisés dans d’autres modules. Nous pouvons
avoir :
• Tous les segments de même nom seront concaténés
en un seul segment
• Tous les segments de même nom resteront intacts
Système d’Exploitation
Yann MORÈRE 2004
Espace d’adresses pour les
fichiers objet
• Initialement, chaque fichier objet
possède sont propre espace d’adresses.
Mais l’éditeur de lien peut modifier cela
• Sans segmentation (voir figure):
Tous les modules seront liés dans le même
espace d’adresses (linéaire)
C’est la cas le plus fréquent (Ex. : Windows
95/98/NT et Unix sur Pentium)
• Avec segmentation:
Chaque segment distinct possédera son
propre espace d’adresses (Ex. : OS/2 sur
Pentium)
Système d’Exploitation
Yann MORÈRE 2004
261/70
Fonction d’édition de liens et
de chargement
• L’éditeur de liens utilise des tables
de les fichiers objet pour lier les
fichiers (modules ou segment de
même nom) en un seul espace
d’adresses linéaire
• Les nouvelles adresse sont
toujours des adresses logiques
(relative au début du fichier
exécutable)
• Le chargeur place le programme
exécutable en mémoire physique
• Les adresses physiques sont
calculées pendant l’exécution , le
programme exécutable est
relogeable en mémoire physique
Système d’Exploitation
Yann MORÈRE 2004
262/70
263/70
La Pile Utilisateur
• Le programmeur peut spécifier la taille de la pile
utilisateur en utilisant une option du programme
d’édition de liens
• Seulement la taille de la pile est stockée dans le
programme exécutable (fichier binaire)
• La pile est effectivement allouée au chargement
Si la segmentation est utilisée, un segment séparé
est utilisé pour la pile
Si la segmentation n’est pas utilisée, la pile est
chargée en mémoire juste après le code et les
données
Système d’Exploitation
Yann MORÈRE 2004
Édition de liens dynamique
264/70
• Dans certain cas, l’édition de liens de certains modules
externes est faite après la création du programme
exécutable
Windows : les modules externes sont les fichiers DLL
Unix: les modules externes sont les fichiers SO (shared Object)
• Le programme exécutable contient des références à un
module externe qui sont réalisées soit :
Au chargement (édition de liens dynamique au chargement)
À l’exécution : quand un appel est fait à une procédure définie dans
le module externe (edition de lien dynamique à l’exécution)
• Dans chaque cas : le SE trouve le module externe et le lie
au programme exécutable
Système d’Exploitation
Yann MORÈRE 2004
Avantages de l’édition de
liens dynamique
• Les modules externes sont souvent des utilitaire
su SE. Les fichiers exécutables peuvent utiliser
un autre version de modules externes sans avoir
besoin d ’être modifiés
• Partage de code : le même module externe a
besoin d’être chargé en mémoire seulement un
seule fois. Chaque processus est lié au même
module externe
Permet de sauver l’espace mémoire et disque
Système d’Exploitation
Yann MORÈRE 2004
265/70
Mémoire virtuelle
Chapitre 8
Caractéristiques de la
pagination et de la
segmentation
• Les références mémoire sont traduites
dynamiquement en adresses physiques à
l’exécution du programme
Un processus peut être « swappé » de telle manière
qu’il occupe différente régions au court du temps
• Un processus peut être divisé en parties qui ne
doivent pas obligatoirement être placées dans les
parties contiguës de mémoire
Toutes les parties du programme n’ont pas besoin
d’être chargées en mémoire pendant l’exécution
Système d’Exploitation
Yann MORÈRE 2004
267/70
268/70
Exécution d’un programme
• Le SE charge en mémoire quelques morceaux
du programme
• C’est la partie résidente qui se trouve alors en
mémoire
• Une interruption est générée quand une adresse
qui n’est pas en mémoire est nécessaire
• Le SE place alors le processus à l’état
suspendu/bloqué
Système d’Exploitation
Yann MORÈRE 2004
269/70
Exécution d’un programme
• Un morceau de processus qui contient l’adresse
logique est chargé en mémoire centrale
Le SE réalise un demande de lecture E/S sur le
disque
Un autre processus est alors passé à l’état exécutant
a lieu
Un interruption apparaît lorsque l’E/S est terminée, le
SE place alors le processus associé à l’état Prêt
Système d’Exploitation
Yann MORÈRE 2004
Avantages du morcellement
de processus
• Plus de processus peuvent être conservés en
mémoire
On charge seulement quelques partie de chaque
processus
• Avec beaucoup de processus en mémoire, il y
aura toujours un processus prêt à être
exécuter en mémoire
• Il est possible d’avoir des processus qui
soient plus grand que la taille mémoire
maximale
Système d’Exploitation
Yann MORÈRE 2004
270/70
Avantages du morcellement
de processus
• Le programmeur utilise la taille du disque
dur comme taille mémoire
• Ce serait inutile de charger en mémoire
les processus complet, alors que
seulement une petite partie est utilisée
• On économise aussi du temps, car les
parties inutilisées ne sont pas
« swappée » de la mémoire
Système d’Exploitation
Yann MORÈRE 2004
271/70
272/70
Types de mémoire
• Mémoire réelle
Mémoire principale
• Mémoire virtuelle
Mémoire sur disque (swap)
Système d’Exploitation
Yann MORÈRE 2004
273/70
« Thrashing »
• « Swapper » hors de la mémoire un
morceau de processus juste avant que ce
morceau soit nécessaire
• Le processeur passe alors le plus clair de
son temps à « swapper » des morceaux
plutôt que d’exécuter des instructions
Système d’Exploitation
Yann MORÈRE 2004
274/70
Principe de Localité
• Les références d’un programme et de ses
données à l’intérieur d’un processus tendent à
se regrouper
• Seulement un petit nombre de morceaux de
processus seront nécessaires sur une courte
période
• Il est possible de deviner intelligemment quel
morceau de programme sera utile dans le futur
• Ceci suggère que la mémoire virtuelle devra
fonctionner efficacement
Système d’Exploitation
Yann MORÈRE 2004
Besoins pour la mémoire
virtuelle
• Le matériel doit supporter la pagination et
la segmentation
• Le SE doit être capable de gérer le
déplacement de pages et/ou de segments
entre la mémoire primaire et secondaire
Système d’Exploitation
Yann MORÈRE 2004
275/70
276/70
Pagination
• Chaque processus a sa propre table de
page
• Chaque entrée de la table de page
contient le numéro de trame qui
correspond à la page en mémoire centrale
• Un bit est nécessaire pour indiquer si la
page est en mémoire ou non
Système d’Exploitation
Yann MORÈRE 2004
Bit de modification dans la
table de page
• Un bit est nécessaire pour indiquer si la
page a été modifiée depuis son
chargement en mémoire principale
• Si aucun changement a été fait, la page
n’a pas besoin d’être sur le disque quand
on a besoin de la « swapper »
Système d’Exploitation
Yann MORÈRE 2004
277/70
278/70
Pagination
Virtual Address
Virtual Address
Page Number
Offset
Page Numbe r
Page Table Entry
P M Other Control Bits
Offset
Frame Number
Page Table Entry
P M Other Control Bits
Système d’Exploitation
Frame Number
Yann MORÈRE 2004
Conversion d’adresse dans
un système à pagination
Virtual Address
Page #
Offset
Frame #
Offset
Register
Page Table Ptr
Page Table
Offset
+
P#
Page
Frame
Frame #
Program
Paging
Système d’Exploitation
Main Memory
Yann MORÈRE 2004
279/70
280/70
Partage de pages
• Si on partage le même code entre différent
utilisateurs, il est suffisant de conserver seulement
une copie en mémoire principale
• Le code partagé doit être ré-entrant(i.e. : pas automodifiant), de telle sorte que deux ou plusieurs
processus puissent exécuter le même code
• Si on utilise la pagination, chaque processus
partageant va avoir une table de page aqvec des
entrées qui pointent sur les mêmes trames : une
seule copie est conservées en mémoire
• Mais chaque utilisateurs doit avoir ses propres
pages de données provées
Système d’Exploitation
Yann MORÈRE 2004
Partage de pages : un
éditeur de texte
Système d’Exploitation
Yann MORÈRE 2004
281/70
282/70
Tables de page
• Les tables de page peuvent nécessiter
trop de mémoire principale
• Les tables de page sont aussi stockées en
mémoire virtuelle
• Quand un processus est exécutant, une
partie de ses pages est en mémoire
principale
Système d’Exploitation
Yann MORÈRE 2004
Tampon de conversion
« Translation Lookaside
Buffer »
• Chaque référence en mémoire virtuelle peut
nécessiter deux accès à la mémoire physique
Un pour retrouver la table de page
Et l’autre pour récupérer la donnée
• Pour éviter ce problème, un cache spécial est
crée pour les entrées de la table de page
Appelé le TLB - Translation Lookaside Buffer
Système d’Exploitation
Yann MORÈRE 2004
283/70
Tampon de conversion
« Translation Lookaside
Buffer »
• Contient les entrées de la table de page
qui ont été récemment les plus utilisées
• Fonctionne de manière similaire au cache
de la mémoire principale
Système d’Exploitation
Yann MORÈRE 2004
284/70
Tampon de conversion
« Translation Lookaside
Buffer »
• Étant donné une adresse virtuelle, le processeur
examine le TLB
• Si l’entrée de la table de page est présente (hit),
le numéro de trame est retrouvé et l’adresse
réelle formée
• Si l’entrée de la table de page n’est pas
présente (misst), le numérode page est utilisé
pour indexé la table de page du processus
Système d’Exploitation
Yann MORÈRE 2004
285/70
Tampon de conversion
« Translation Lookaside
Buffer »
• Teste en premier si une page est déjà en
mémoire
Si pas en mémoire principale, un défaut de
page apparaît
• Le TLB est mis à jour, de manière à
inclure la nouvelle entrée de page
Système d’Exploitation
Yann MORÈRE 2004
286/70
Utilisation du TLB
« Translation Lookaside
Buffer »
Secondary
Memory
Main Memory
Virtual Address
Page # Offset
Translation
Lookaside Buffer
TLB hit
Offset
Load
page
Page Table
TLB miss
Frame # Offset
Real Address
Page fault
Système d’Exploitation
Yann MORÈRE 2004
287/70
288/70
START
Opération du TLB
CPU checks
the TLB
Page
table entry in
TLB?
Yes
No
Access page
table
No
Page fault
handling routing
Page in main
memory?
Yes
Update TLB
Système d’Exploitation
CPU generates
Physical
Address
Yann MORÈRE 2004
289/70
Routine de gestion
de défaut de Page
Memory
full?
Yes
Perform
Page
Replacement
No
OS instructs
CPU to read the
page from disk
CPU activates
I/O Hardware
Page transferred
from disk to
main memory
Page tables
updated
Système d’Exploitation
Yann MORÈRE 2004
290/70
TLB : Commentaires
• TLB utilise un matériel de mappage associatif pour
simultanément interroger toutes les entrées TLB
pour trouver le bon numéro de page
• Le TLB doit être modifié à chaque fois qu’un
nouveau processus passe à l’état exécutant
• La CPU utilise 2 niveaux de cache sur chaque
référence de mémoire virtuelle
En premier le TLB : pour convertir l’adresse logique en
adresse physique
Un fois que l’adresse physique est formée, la CPU
cherche dans le cache l’adresse référencée
Système d’Exploitation
Yann MORÈRE 2004
Tables de pages et
mémoire virtuelle
291/70
• La plupart des ordinateurs supportent un espace d’adresse
très large
32 à 64 bits sont utilisés pour ces adresses logiques
Si (seulement) 32 bits sont utilisés avec des pages de 4Ko,
une table peut contenir 2^{20} entrées
• La table entière de page peut saturer la mémoire principale.
Par conséquent, les tables de pages sont souvent stockées
en mémoire virtuelle et sujettes à la pagination
Quand un processus est exécutant, une partie de sa table de
pages doit être chargées en mémoire principale (incluant
l’entrée de la table de pages de la page courante exécutante)
Système d’Exploitation
Yann MORÈRE 2004
Tables de pages multi-niveaux
292/70
• Puisqu’une table de pages requiert généralement
plusieurs pages pour le stockage. Une des solution est
d’organiser les tables de pages en une hiérarchie multiniveau
Lorsque 2 niveaux sont utilisés (ex: 386, Pentium), le
numéro de page est coupé en deux nombre P1 et P2
P1 indexe la table de page de plus haut niveau (répertoire) en
mémoire principale dont les entrées pointent sur une page
contenant les entrées de la table de pages qui est indexée par
P2. Les tables de pages autres que le répertoire sont
« swappées » si nécessaire
Système d’Exploitation
Yann MORÈRE 2004
Mémoire virtuelle sur Windows
NT (Intel x86)
293/70
• Utilise uniquement la pagination pas de
segmentation) avec des taille de pages de 4KB
• Chaque processus contient 2 niveaux de tables de
pages :
Un répertoire de page contenant 1024 entrées de
répertoire de pages (PDEs) de 4 octets chacune
Chaque entrée du répertoire de pages pointe sur
une table de pages qui contient 1024 entrées de
tables de pages (PTEs) de 4 octets chacune
On a donc 4Mo de tables de pages par processus
Le répertoire de pages est en mémoire principale,
mais les tables de pages qui contiennent les PTEs
sont « swappées » si nécessaire
Système d’Exploitation
Yann MORÈRE 2004
Mémoire virtuelle sur Windows
NT (Intel x86)
294/70
• Les adresses virtuelles (p1, p2, d) utilisent 32 bits où
p1 et p2 ont une longueur de 10 bits
p1 sélectionne une entrée dans le répertoire de pages
qui pointe sur une table de pages
p2 sélectionne une entrée de cette table de page qui
pointe sur la page sélectionnée
• Lors de création, NT donne seulement un certain
nombre de pages virtuelles à un processus et
réserve un certain nombre d'autres pages pour les
futurs besoins
• Par conséquent, un groupes de bits dans chaque
PTE indiquent if la page correspondante est réalisée,
réservée ou non utilisée
Système d’Exploitation
Yann MORÈRE 2004
Mémoire virtuelle sur Windows
NT (Intel x86)
295/70
• Une référence mémoire à une page non utilisée conduit à
une erreur de protection (dans le SE)
• Chaque PTE contient aussi :
Un bit de présence
Si fixé : 20 bits sont utilisés pour l’adresse de trame de la
page sélectionnée
• Sinon ces bits sont utilisés pour localiser la page sélectionnée
dans une fichier de pagination (sur disque)
Quelques bits identifient le fichier de pagination utilisé
Un bit « dirty » (i.e. : une bit de modification)
Quelques bits de protection (ex: lecture seule,
lecture/écriture)
Système d’Exploitation
Yann MORÈRE 2004
Table de pages inversée
296/70
• Une autre solution (PowerPC, IBM Risk 6000) au
problème de conservation de larges tables de
pages est d’utiliser une table de pages inversée
(IPT)
• On a généralement une seule IPT pour la totalité
du système
• Il y a seulement une entrée IPT par trame
physique (plutôt qu’une par page virtuelle)
Ceci réduit beaucoup la quantité de mémoire nécessaire
pour les tables de pages
• La première entrée de l’IPT est pour la trame 1… la
n-ième entrée pour la trame et chaque entrée
contient un numéro depage virtuelle
• Ainsi cette table est inversée
Système d’Exploitation
Yann MORÈRE 2004
Table de pages inversée
• L’ID du processus avec le
numéro de page virtuelle
pourrait être utilisé pour
rechercher l’IPT pour obtenir
la trame
• Pour de meilleure
performance, le hachage est
utilisé pour obtenir une
entrée de la table de hachage
qui pointe sur une entrée IPT
Un défaut de page
apparaît si aucun résultat
n’est trouvé
Le chaînage est utilisé
pour gérer le
dépassement de hachage
Système d’Exploitation
Yann MORÈRE 2004
297/70
298/70
Taille de page
• Plus la taille des pages est petite, plus le taux de
fragmentation interne est petit
• Plus la taille des pages est petite, plus le
nombre de pages par processus est important
• Un plus grand nombre de pages implique des
tables de pages plus grande
• Un plus grand nombre de tables de pages
implique un grande partie de ces tables en
mémoire virtuelle
• La mémoire secondaire doit être conçue de
manière à transférer efficacement de large
blocks de données. Donc des pages plus grande
est est meilleur
Système d’Exploitation
Yann MORÈRE 2004
299/70
Taille de page
• Petite page, un grand nombre de pages sera
trouvé en mémoire principale
• Au fur et à mesure de l’exécution, les pages en
mémoire en mémoire vont toutes contenir des
morceaux de programme avec des références
récentes. Le défaut de page va donc diminuer
• Augmenter la taille de page implique que les
pages vont contenir des adresses au-delà des
références récentes. Le défaut de page va
augmenter
Système d’Exploitation
Yann MORÈRE 2004
300/70
Taille de page
• Des tailles de page multiples offre une
flexibilité nécessaire au bon
fonctionnement de la TLB
• De grande pages peuvent être utilisées
pour les instructions programme
• Les petites pages peuvent être utilisées
pour les threads
Système d’Exploitation
Yann MORÈRE 2004
301/70
Segmentation
• Peut être dynamique
• Simplifie la gestion du grossissement des
structures de données
• Permet la modification de programme
indépendamment de la recompilation
• Utilisée pour la partage de données entre
processus
• Se prête à la protection
Système d’Exploitation
Yann MORÈRE 2004
302/70
Tables de segment
• Chaque entrée contient l’adresse de départ du
segment correspondant en mémoire principale
• Chaque entrée contient la longueur du segment
• Un bit est nécessaire pour déterminer si le
segment est déjà chargé en mémoire
• Un bit est nécessaire pour déterminer si le
segment a déjà été modifié depuis son
chargement en mémoire principale
Système d’Exploitation
Yann MORÈRE 2004
303/70
Segmentation
Virtual Address
Segment Number
Offset
Virtual Address
Number
Segment TableSegment
Entry
Offset
Segment Table Entry
P M Other Control
BitsControl Bits Length
P M Other
Length
Système d’Exploitation
Segment Base
Segment Base
Yann MORÈRE 2004
Conversion d’adresse dans un
système à segmentation
304/70
Virtual Address
Seg #
Segment Table
+
Offset = d
Base + d
Register
Seg Table Ptr
d
+
S#
Segment
Segment Table
Length Base
Program
Segmentation
Système d’Exploitation
Main Memory
Yann MORÈRE 2004
Segmentation : commentaires
305/70
• Dans chaque entrée de la table de segmendu segment
Les segment peut alors grossir ou diminuer
dynamiquement si besoin est
La validité de l’adresse peut être facilement vérifiée avec
l’information de longueur
• Mais les segments de taille variable introduise de la
fragmentation externe et deviennent de plus en plus
difficile à « swapper »…
• Il est naturel de fournir protection et partage au niveau
du segment dès que les segments sont visibles au
programmeur (les pages en le sont pas)
• Bits de protection utiles dans l’entrée de la table de
segments:
Bit de lecture seule/lecture-écriture
Bit administrateur/utilisateur
Système d’Exploitation
Yann MORÈRE 2004
Partage dans les systèmes à
segmentation
• Des segments sont partagés lorsque les
entrées dans les tables de segment de deux
processus différents pointent sur les même
zone physique
• Ex : le même code d’un éditeur de texte peut
être partagé par plusieurs utilisateurs
Seulement un seule copie est conservée en
mémoire principale
• Mais chaque utilisateur aura besoin de
conserver son propre segment de données
privées
Système d’Exploitation
Yann MORÈRE 2004
306/70
Partage de segments :
exemple de l’éditeur de texte
Système d’Exploitation
Yann MORÈRE 2004
307/70
Pagination et
segmentation combinée
• La pagination est transparente pour le
programmeur
• La pagination élimine la fragmentation externe
• La segmentation est visible par le programmeur
• Le segmentation permet le grossissement des
structures de données, la modularité et le
support pour le partage et la protection
• Chaque segment est découpé en pages de taille
fixe
Système d’Exploitation
Yann MORÈRE 2004
308/70
Pagination et
segmentation combinée
Virtual Address
Segment Number
Page Numbe r
Offset
Virtual Address
Segment Number
Page Number
Offset
Segment TableSegment
Entry
Table Entry
Other Control Bits
Length
Other Control Bits
Length
Page Entry Table
P M Other Control Bits
Page Entry Table
P M Other Control Bits
Segment Base
Segment Base
Frame Number
Frame Number
Système d’Exploitation
Yann MORÈRE 2004
309/70
Conversion d’adresse dans
un système à
segmentation/pagination
Seg #
Page #
Frame # Offset
Offset
Seg Table Ptr
Segment
Table
Page Table
Offset
P#
S#
+
Program
Segmentation
Système d’Exploitation
+
Paging
Page
Frame
Main Memory
Yann MORÈRE 2004
310/70
Segmentation et
pagination sur Intel 386
311/70
• En mode protégé, le 386 et supérieur, utilise un schéma de
segmentation et pagination combinée qui est exploitée par le
système OS/2 (version 32 bits)
• L’adresse logique est formée d’une paire (sélecteur, offset)
• Le sélecteur contient un bit qui sélectionne soit :
La table des descripteurs globaux; accessibles par tous les processus
La table des descripteurs locaux; seulement accessible par le processus
qui le détient (nous avons une LDT par processus
• Deux bits dans le sélecteur sont pour la protection et il reste
13 bits utilisés pour sélectionner une entrée 8-Octet soit dans
la LDT soit dans la GDT appelé descripteur
Système d’Exploitation
Yann MORÈRE 2004
Segmentation et
pagination sur Intel 386
312/70
• Le 386 possède 6 registres de segment avec une
partie visible de 16 bits chacun qui contient le
sélecteur et une partie invisible 8-Octet qui contient
le descripteur correspondant
Ceci évite de lire la GDT/LDT à chaque référence mémoire
• Le descripteur contient l’adresse de base et la
longueur du segment référencé
• L’adresse de base 32 bits est ajoutée à l’Offset 32
bits pour former une adresse linéaire (p1,p2,d) 32
bits qui est sensiblement identique au format
d’adresse logique utilisé par WinNT
2 niveaux de tables de pages indexées par P1 et P2 (10
bits)
Système d’Exploitation
Yann MORÈRE 2004
Conversion d’adresse sur
Intel386
Système d’Exploitation
Yann MORÈRE 2004
313/70
Segmentation et pagination
sur Intel 386 : remarques
• La partie segmentation peut être effectivement
désactivée en effaçant l’adresse de base de
chaque descripteur de segment
• Alors la partie offset de l’adresse logique est
identique à l’adresse linéaire (p1,p2,d)
• Ceci est utilisé par tous les OS fonctionnant sur
386 (et supérieur) qui utilisent seulement la
pagination:
Windows NT
Unix versions: Linux, FreeBSD...
Système d’Exploitation
Yann MORÈRE 2004
314/70
315/70
Protection
• « Ring 0 » contient les instructions kernel du SE
• Un programme peut seulement accéder au
données qui résident sur le même « ring », ou un
« ring » en dessous (au niveau des privilèges)
• Un programme devra appeler des services qui
résident sur le même « ring » », ou un « ring »
en dessous (au niveau des privilèges)
Système d’Exploitation
Yann MORÈRE 2004
Ring Protection : transfert de
contrôle entre programmes
Ring 0
Call Return
Ring 1
Call
Return
Ring 2
Jump
Système d’Exploitation
Yann MORÈRE 2004
316/70
317/70
Ring Protection :
Accès au données
Ring 0
Ring 1
Data
access
Ring 2
Data
access
Système d’Exploitation
Yann MORÈRE 2004
Système d’exploitation
• Le logiciel de gestion mémoire dépend du
support hardware : pagination,
segmentation, les deux
• Les systèmes à segmentation pure sont
rares. Les segments sont paginés la plupart
du temps – la gestion mémoire qui en
résulte est la pagination
• On s’intéresse donc à la pagination
• Pour avoir de bon résultat, on doit avoir un
faible taux de défaut de page
Système d’Exploitation
Yann MORÈRE 2004
318/70
319/70
Politique de recherche
• Détermine si une page doit être chargée en mémoire ou
non. Deux politiques connues :
Demande de pagination charge seulement les pages en
mémoire lorsqu’une référence est faire à un emplacement sur
la page (ie: pagination à la demande seulement)
• Nombreux défauts de page lorsqu’un processus est démarré,
mais diminue au fur et à mesure que les pages sont chargées en
mémoire
La Prépagination charge en mémoire plus de pages que
nécessaire
• La localité des références suggère qu’il est plus efficace de
charger les pages qui sont contiguës sur le disque
• L’efficacité n’est pas définitivement établie : les pages
supplémentaires chargées sont souvant non référencées
Système d’Exploitation
Yann MORÈRE 2004
Politique de recherche
• Détermine où en mémoire réelle, se
trouve un morceau de processus
• Pour les système ) segmentation pure :
first-fit, next fit... Sont des choix possibles
• Pour la pagination (et segmentation
paginée):
Le matériel détermine où placer la page.
L’emplacement de trame choisie n’est pas
valide dès que toutes les trames mémoires
sont équivalentes
Système d’Exploitation
Yann MORÈRE 2004
320/70
321/70
Politique de Remplacement
• Traite de la sélection de la page qui doit
être remplacée lorsqu’une nouvelle page
est chargée en mémoire centrale
• Ceci apparaît toutes les fois que la
mémoire centrale est saturée (pas de
trame libre disponible)
• Apparaît dès que l’OS essaie de chargé
en mémoire centrale un maximum de
processus pour augmenter la
multiprogrammation
Système d’Exploitation
Yann MORÈRE 2004
322/70
Politique de Remplacement
• Toutes les pages ne sont pas disponibles pour un
remplacement
• Certaines trames sont verrouillées (pas de swappe
sur disque) :
La plupart de noyau connaissent les pages verrouillées
ainsi que les buffers d’E/S et les structures de contrôle
• Le SE peut décider que les pages pour le
remplacement sont :
Limitées à celles de processus qui ont eu des défaut de
pages
Toutes les pages dans des trames non verrouillées
Système d’Exploitation
Yann MORÈRE 2004
323/70
Politique de Remplacement
• La décision des pages qui vont être prises en
compte pour le remplacement est dévolue à la
stratégie de gestion des pages résidentes :
Combien de trames de pages seront allouées à
chaque processus?
• Peu importe quelles sont les pages qui vont être
remplacées, la politique de remplacement utilise
des algorithmes qui vont choisir la page à
l ’intérieur d’un ensemble de page
Système d’Exploitation
Yann MORÈRE 2004
Algorithmes de bases pour la
politique de remplacement
324/70
La politique optimale sélectionne la page pour
laquelle le temps à la prochaine référence
est le plus long
Produit le plus petit nombre de défaut de page
impossible à implémenter (besoin de connaître le
futur) mais sert de standard pour comparer les
autres algorithmes :
• Moins récemment utilisé - Least recently used (LRU)
• Premier arrivé – premier sortie, First-in, first-out
(FIFO)
• Horloge, Clock
Système d’Exploitation
Yann MORÈRE 2004
La politique LRU
325/70
• Remplace la page qui n’a pas été référencée depuis le
plus longtemps
D’après le principe de localité, ceci devrait être la page
qui ne devrait pas être référencée dans un futur proche
Fonctionne presque comme la politique optimale
• Exemple: un processus de 5 pages avec un SE qui fixe
le jeu de pages résidentes à 3
Système d’Exploitation
Yann MORÈRE 2004
Note sur le comptage des
défauts de page
326/70
• Lorsque la mémoire centrale est vide,
chaque nouvelle page que nous chargeons
provoque un défaut de page
• Pour le besoin de comparaison des différents
algorithmes, on ne compte pas des défauts
initiaux
Leur nombre est identique pour tous les
algorithmes
Système d’Exploitation
Yann MORÈRE 2004
Implémentation de la
politique LRU
• Chaque page peut être marquée (dans l’entrée de la
table de page) avec le temps de chaque référence
mémoire.
• La page LRU est celle avec la plus petite valeur (valeur
doit être cherchée à chaque défaut de page)
• Ceci demande un matériel coûteux et de long calcul
(surcharge).
• Donc peu de systèmes fournissent un support matériel
suffisant pour réaliser une vraie politique de
remplacement LRU
• D’autres algorithmes sont utilisés à la place
Système d’Exploitation
Yann MORÈRE 2004
327/70
328/70
La politique FIFO
• Traite les trames de pages allouées au
processus comme un tampon circulaire
Quand le tampon est plein, la page la plus
ancienne est remplacée. D’où : first-in, first-out
• Ce n’est pas nécessairement la même page que par
LRU
• Un page fréquemment utilisée est souvent la plus
vielle, d’où un swappe répétitif par FIFO
Simple à implémenter
• Nécessite seulement un pointeur qui scrute de manière
circulaire les trames de page du processus
Système d’Exploitation
Yann MORÈRE 2004
Comparaison de FIFO et LRU
• LRU reconnaît que les pages 2 et 5 sont
référencées plus souvent que les les autres, mais
pas FIFO
• FIFO est relativement pauvre en efficacité
Système d’Exploitation
Yann MORÈRE 2004
329/70
La politique horloge
330/70
• L’ensemble des trames candidates au remplacement est
considère comme un tampon circulaire
• Quand une pages est remplacée, un pointeur est chargé de
pointer la prochaine trame dans le tampon
• Un bit d’utilisation pour chaque trame est fixer à 1 toutes
les fois que :
Une page est chargée pour la première fois dans la trame
La page correspondante est référencée
• Lorsque l’on doit remplacé une page, la première trame
rencontrée avec un bit d’utilisation à 0 est remplacée
Pendant la recherche, tous les bits d’utilisation à 1 sont changés en
0
Système d’Exploitation
Yann MORÈRE 2004
La politique horloge : un
exemple
Système d’Exploitation
Yann MORÈRE 2004
331/70
Comparaison d’horloge avec
FIFO et LRU
332/70
• Une astérisque indique que le bit d’utilisation est
mis à 1
• L’horloge protège les pages souvent référencées
en fixant le bit d’utilisation à 1
Système d’Exploitation
Yann MORÈRE 2004
Comparaison d’horloge avec
FIFO et LRU
• Des tests ont montrés que la performance de
l’algorithme horloge est proche de LRU
• Expériences faites avec un nombre de trames
allouées à chaque processus fixe
Lorsque peut de trames sont allouées au processus
(6 à 8), il y a presque un facteur 2 des d éfauts de
pages entre LRU et FIFO
Cet écart se réduit à 1 lorsqu’il y a plus de trames
allouées (plus de 12)
Système d’Exploitation
Yann MORÈRE 2004
333/70
334/70
Page Buffering
• Les pages qui vont être remplacées sont conservées en
mémoire centrale pendant un moment pour contrer la faible
performance des algorithmes de remplacement tel FIFO
• Deux listes de pointeurs sont conservées : chaque entrée
pointe sur une trame sélectionnée pour le remplacement
Une liste de page libre pour les trames qui n’ont pas été
modifiées depuis leur chargement (pas de swappe sur disque)
Une liste de page modifiée pour les trames qui on été
modifiées (nécessité d’écriture)
• Une trame qui doit être remplacée possède un pointeur
ajouté en fin d’une de ces listes et le bits de présence est
effacé dans l’entrée de la table de page
Mais la page reste dans la même trame mémoire
Système d’Exploitation
Yann MORÈRE 2004
Page Buffering
335/70
• A chaque défaut de page, les deux listes sont examinées
pour voir si les pages nécessaires ne sot pas encore en
mémoire
Si c’est le cas, on doit juste mettre à 1 le bit de présence dans
l’entrée de la table de page correspondante (et enlevé l’entrée dans
la liste de page correspondante)
Si ce n’est pas le cas, alors la page nécessaire est chargée, elle est
placée dans la trame pointée par la tête de la liste des trames libres
(ecrasant la page qui s’y trouvait)
• La tête de la liste des trames libres devient l’entrée suivante de cette
liste
(le numéro de trame dans l’entrée de la table de page pourrait être
utilisée pour scruter les deux listes, ou chaque entrée de liste
pourrrait contenir le process id et le numéro de page de la trame
occupée)
• La liste modifiée sert aussi à écrire les pages modifiées en
cluster sur le disque (pas d’écriture individuelle)
Système d’Exploitation
Yann MORÈRE 2004
336/70
Politique de nettoyage
• Quand une page modifiée doit être écrite sur disque
« swap out »?
• Demande de nettoyage
Une page est écrite seulement lorsque sa trame a été
sélectionnée pour le remplacement
• Mais un processus qui possède un défaut de page peut
avoir à attendre 2 transferts de page
• Pre-nettoyage
Les page modifiées sont écrites avant que leur trame
aient besoins d’être écrites « swap-out »
• Mais cela n’a pas beaucoup de sens d’écrire des pages qui
vont être de nouveau modifiées avant leur remplacement
effectif
Système d’Exploitation
Yann MORÈRE 2004
Politique de nettoyage
• Un bon compromis peut être réalisé par une
mise en tampon des pages
Rappel que les pages choisies pour le
remplacement sont conservées soit dans une
liste non modifiée soit sur une liste modifiée
Les pages de la liste modifiées peuvent être
écrites périodiquement et déplacée vers la liste
non modifiée
Il y a un bon compromis dès que :
• Pas toutes les pages modifiées sont écrites, mais
seulement celles choisie pour remplacement*
• L’écriture est faite par lots
Système d’Exploitation
Yann MORÈRE 2004
337/70
338/70
Taille du jeu résident
• Le SE doit décider du nombre de trame de
pages allouer à un processus
Grand taux de défaut de page si le nombre
de trame est trop petit
Petit niveau de multi programmation si trop
de trames sont allouées
Système d’Exploitation
Yann MORÈRE 2004
Taille du jeu résident
• Politique d’allocation fixe
Alloue un nombre fixe de trames qui reste constant
au cours du temps
• Ce nombre est déterminé au chargement et dépend
du type d’application
• Politique d’allocation variable
Le nombre de trame allouée à un processus peut
varier au cours du temps
• Peut augmenter si le taux de défaut de page est
grand
• Peut diminuer si le taux de défaut de page est très
bas
Demande plus de contrôle du SE pour accéder au
comportement des processus actifs
Système d’Exploitation
Yann MORÈRE 2004
339/70
Portée de remplacement
• Est le jeu de trames à considérer pour le
remplacement quand un défaut de page apparaît
• Politique de remplacement local
Choisit seulement parmi les trames qui sont
allouées au processus qui a engendré le défaut
de page
• Politique de remplacement global
N’importe quelle trame non verrouillée est
candidate pour le remplacement
• Considérons les combinaisons possible de portée
de remplacement et de taille de jeu résident
Système d’Exploitation
Yann MORÈRE 2004
340/70
Allocation fixe + Portée locale
• Chaque processus possède un nombre de pages
fixe
Déterminé au chargement du programme et
dépendant du type d’application
• Quand un défaut de page apparaît : les trames de
pages prises en compte pour le remplacement sont
locales au processus
le nombre de trames allouées est ainsi constant
Les algorithmes précédents de remplacement
peuvent être utilisés
• Problème : difficile de déterminé à l’avance le bon
nombre pour les trames allouées
Si trop bas : taux de défaut de page grand
Si trop grand : taux de multi programmation bas
Système d’Exploitation
Yann MORÈRE 2004
341/70
342/70
Allocation fixe + Portée globale
• Impossible à réaliser
Si toutes les trames non verrouillées sont
candidate pour le remplacement, le nombre
de trames allouées au processus sera
nécessairement variant au cours du temps
Système d’Exploitation
Yann MORÈRE 2004
Allocation variable + Portée
globale
• Simple à implémenter – adopté^par tous les SE (Unix)
• Une liste des trames libres est conservée
Quand un processus engendre un défaut de page, une
trame libre (de la liste) est alloué à celui-ci
Par conséquent, le nombre de trames allouées à un
processus en défaut de page augmente
Le choix du processus qui va perdre une trame est
arbitraire : loin de l’optimum
• La mise en tampon de pages peut alléger ce problème :
une page peut être réclamée si elle est utilisée
prochainement
Système d’Exploitation
Yann MORÈRE 2004
343/70
Allocation variable +
Portée locale
344/70
• Peut-être la meilleure combinaison (utilisé par WinNT)
• Allocation au chargement d’un certain nombre de trames
au nouveau processus (basé sur le type d’application)
Utilise soit la pré pagination, soit la demande de
pagination pour remplir l’allocation
• Quand un défaut de page apparaît, sélection de la page à
remplacer parmi le jeu résident du processus qui possède
le défaut de page
• Ré évaluation périodique de l’aa=llocation faite et
augmentation ou diminution pour augmenter les
performances globales
Système d’Exploitation
Yann MORÈRE 2004
La stratégie du jeu de travail
345/70
• Est la méthode d’allocation variable avec une
portée locale basée sur la supposition de localité
des références
• Le jeu de travail pour un processus à l’instant t,,
W(D,t), est l’ensemble des pages qui a été
référencé dans la dernière unité de temps virtuel D
Temps virtuel = temps écoulé pendant que le
processus était en exécution (ex.: nombre
d’instructions exécutées)
D est une fenêtre temporelle
Quelque soit t, |W(D,t)| est non décroissant par
rapport à D
W(D,t) est une approximation de la localité du
programme
Système d’Exploitation
Yann MORÈRE 2004
346/70
La stratégie du jeu de travail
• Le jeu de travail d’un processus grossit dans un
premier temps, lorsqu’il commence à s’exécuté
• Se stabilise en suite par le principe de localité
• Il grossit de nouveau quand le processus entre
dans une nouvelle localité (période de
transition)
Jusqu’au point ou le jeu de travail comporte les
pages des deux localités
• Diminue ensuite après un temps suffisamment
long dans la nouvelle localité
Système d’Exploitation
Yann MORÈRE 2004
La stratégie du jeu de travail
347/70
• Le concept du jeu de travail siggère la stratégie
suivante pour déterminer la taille du jeu résident
Surveillance du jeu de travail pour chaque processus
Enlever périodiquement du jeu de résident d’un
processus, les pages qui ne sont pas dans le jeu de
travail
Lorsque le jeu de résident d’un processus est plus
petit que son jeu de travail, allouer d’autres trames à
ce dernier
• S’il n’y a pas assez de trames libres, suspendre le
processus (jusqu’à ce que plus de trames soient
disponibles)
ie: un processus ne peut s’exécuter seulement si le jeu de
travail est en mémoire centrale
Système d’Exploitation
Yann MORÈRE 2004
La stratégie du jeu de travail
• Problèmes pratiques avec cette stratégie de jeu
de travail
La mesure du jeu de travail pour chaque
processus n’est pas faisable
• Nécessité de marquer temporellement la page
référencée à chaque référence mémoire
• Nécessité de maintenir une file temporelle des
pages référencées pour chaque processus
La valeur optimale pour D est inconuue et
variante dans le temps
• Solution: plutôt que de surveiller le jeu de
travail, surveiller le taux de défaut de page!
Système d’Exploitation
Yann MORÈRE 2004
348/70
La stratégie de la fréquence
de défait de page
• Définir une borne Sup U et une
borne Inf L pour le taux de
défaut de page
• Allouer plus de trames à un
processus si le taux de défaut est
plus grand que U
• Allouer moins de trames si le taux
de défaut est plus petit que L
• La taille du jeu résident devrait
être proche de celle du jeu de
travail W
• On suspend le processus si le
taus de défaut de page est
supérieur à U et qu’il n’y a plus
de trames disponibles
Système d’Exploitation
Yann MORÈRE 2004
349/70
Contrôle de chargement
• Détermine le nombre de
processus qui sera
résident en mémoire
centrale (ie: niveau de
multi programmation)
Pas assez de processus :
tous les processus seront
souvent bloqués et le
processus sera au ralenti
Trop de processus : la
taille résidente de chaque
programme sera trop
petite et il y aura de
nombreux défaut de
pages
Système d’Exploitation
Yann MORÈRE 2004
350/70
Contrôle de chargement
351/70
• Les algorithmes du jeu de travail et de
fréquence de défaut de page contiennent
implicitement le contrôle de chargement
Seulement les processus qui possède des jeux
résidents suffisamment grand sont autorisés à
s’exécuter
• Une autre approche consiste à ajuster
explicitement le niveau de multi programmation
de telle sorte que le temps moyen entre chaque
défaut de page soit équivalent au temps pour
obtenir un défaut de page
Des études de performance indiquent que c’est
le point où le processeur est à son maximum
Système d’Exploitation
Yann MORÈRE 2004
Suspension de processus
• Le contrôle explicite de chargement nécessite que
des processus soient de temps à autre swappé
(suspendu)
• Critère de sélection de victime possible :
Processus défaillant
• Ce processus peut ne pas avoir son jeu de travail en
mémoire centrale et il sera bloqué
Dernier processus activé
• Ce processus aura son jeu de travail résident moins
volontiers résident
Processus avec le plus petit jeu résident
• Ce processus nécessite le moins d’effort futur pour le
rechargement
Le plus grand processus
• Aura besoin du plus grand nombre de trames libres
Système d’Exploitation
Yann MORÈRE 2004
352/70
Gestion mémoire UNIX et
Solaris
• Système de pagination pour les processus
• Allocateur de mémoire noyau pour
l’allocation mémoire du noyau
Système d’Exploitation
Yann MORÈRE 2004
353/70
Gestion mémoire UNIX et
Solaris
• Structures de données
Table de pages – une par processus
Descripteur de block disque – décrit la copie
sur disque d’une page virtuelle
Table des données de trames de page –
décrit chaque trame de mémoire réelle
Table d’utilisation du Swap – une pour
chaque dispositif de swap
Système d’Exploitation
Yann MORÈRE 2004
354/70
Gestion mémoire UNIX et
Solaris
• Remplacement de page
Amélioration de la politique d’horloge connue
comme l’algorithme « two-handed clock »
• Allocateur de mémoire noyau
La plupart des blocks sont plus petit que la
taille typique d’une page
Système d’Exploitation
Yann MORÈRE 2004
355/70
356/70
Gestion mémoire Windows NT
• Tous les processus partagent les même
2Go d’espace système
• Pages
disponibles
Réservé pour un processus mais ne compte
pas dans la quote-part de la mémoire du
processus
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement
MonoProcesseur
Chapitre 9
Ordonnancement CPU
358/70
• On se concentre sur le problème de
l’ordonnancement de l’utilisation d’un
processeur unique parmi tous les processus
existant sur le système
• Les objectifs à atteindre sont
Utilisation intensive du processeur
« throughput » élevé
• Nombre de processus terminé par unité de temps
Temps de réponse bas
• Temps écoulé entre la soumissiond’une demande et le
début de la réponse
Système d’Exploitation
Yann MORÈRE 2004
Classification des activités
d’ordonnancement
• Long-terme: Quel processus admettre
• Moyen-terme: Quel processus swapper (in out)
• Court-terme: Quel processus prêt exécuter ensuite
Système d’Exploitation
Yann MORÈRE 2004
359/70
Diagramme de files pour
l’ordonnancement
Système d’Exploitation
Yann MORÈRE 2004
360/70
Ordonnancement long-terme
361/70
• Détermine quel programme doit être admis dans le
système pour exécution
• Contrôle le degrés de multi programmation
• Si plus de processus sont admis
Il est moins probable que tous les processus soient
bloqués
• Meilleur usage CPU
Chaque processus à une fraction de la CPU plus petite
• L’ordonnancement long terme doit tenter de garder
un compromis entre utilisation de la CPU et des E/S
Système d’Exploitation
Yann MORÈRE 2004
362/70
Ordonnancement moyen-terme
• Les décision de « swappe » sont basées
sur la nécessité de gérer la multi
programmation
• Réalisé par le programme de la gestion
mémoire
Voir allocation jeu résident et contrôle de
chargement
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement court-terme
363/70
• Détermine quel processus va s’exécuter ensuite
(appelé aussi ordonnancement CPU)
• L’Ordonnanceur à court terme est aussi nommé
dispatcher
• Est appelé sur un évènement qui peut conduire
à la sélection d’un autre processus pour
exécution :
Interruption horloge
Interruption E/S
Appels système et traitement d’erreurs
Signaux
Système d’Exploitation
Yann MORÈRE 2004
Critère d’ordonnancement
court terme
• Orienté utilisateur
Temps de réponse : temps écoulé entre la
soumission d’une demande et le début de la
réponse
Turnaround Time: temps écoulé entre la
soumission d’un processus et sa fin
• Orienté système
Utilisation processeur
equitabilité
throughput: nombre de processus terminé par
unité de temps
Système d’Exploitation
Yann MORÈRE 2004
364/70
365/70
Priorités
• Implémentée par l’intermédiaire de plusieurs files
qui représentent chaque niveau de priorité
• L’ordonnancement va toujours choisir un processus
d’un niveau de priorité plus élévé.
• Les basses priorité peuvent alors souffrir de famine
• On permet alors à un processus de modifier sa
priorité basée sur son âge ou l’historique de
l’exécution
• Le premier algorithme d’ordonnancement n’utilise
pas les priorités
• D’autres algorithmes utilisent des mécanismes de
priorité dynamique
Système d’Exploitation
Yann MORÈRE 2004
Caractérisation des politiques
d’ordonnancement
366/70
• La fonction de sélection : détermine quel processus dans
la file « prêt » sera sélectionné pour exécution
• Le mode de décision : spécifie les instants dans le temps
auxquels la fonction de sélection est réalisée
Non préemptif
• Un fois qu’un processus est exécutant,il va continur jusqu’à ce
qu’il se termine où se bloque lui-même pour une E/S
Préemptif
• Le processus exécutant courant peut être interrompu et
déplacé à l ’état « prêt » par le SE
• Aucun processus ne peut monopoliser le processeur pour un
long moment
Système d’Exploitation
Yann MORÈRE 2004
367/70
Le cycle CPU – E/S
• On observe que les processus demande de
manière alternée et répétitive une utilisation du
processeur et des E/S
• Chaque cycle consiste en une giclée de CPU
« CPU burst » (typiquement de 5 ms) suivie par
une giclée de E/S (généralement plus longue)
« I/O burst »
• Un processus se termine par une giclée de CPU
Système d’Exploitation
Yann MORÈRE 2004
Un exemple de processus en
exécution pour évalué les
politiques d’ordonnancement
Temps d’arrivée
Temps de service
1
0
3
2
2
6
3
4
4
4
6
5
5
8
2
368/70
Processus
Temps de service = temps total processeur nécessaire pendant un cycle (CPU-IO)
Travaux avec temps de service long sont les référencés comme les longs travaux
(CPU-Bound process)
Système d’Exploitation
Yann MORÈRE 2004
Premier arrivé Premier servi
First Come First Served
(PAPS/FCFS)
369/70
• Fonction de sélection : le processus qui
attend depuis le plus de temps dans la file
des processus prêts (-> PAPS)
• Mode de décision : non préemptif
Un processus s’exécute jusqu’à ce qu’il se bloque
Système d’Exploitation
Yann MORÈRE 2004
370/70
Inconvénients du PAPS/FCFS
• Un processus qui ne fait pas d’E/S va monopoliser
le processeur
• Favorise les processus long CPU
Les processus longs I/O doivent attendre jusqu’à ce
que les processus long CPU soient terminé
Ils peuvent même attendre lorsque leur E/S sont
terminée (utilisation périphérique pauvre)
On aurait pu gardé les processus E/S actif en leur
donnant un peu plus de priorité au processus long
E/S
Système d’Exploitation
Yann MORÈRE 2004
371/70
Round-Robin
• Fonction de sélection : comme le PAPS
• Mode de décision : préemptif
Un processus est autorisé à s’exécuter jusqu’à ce qu’un
quantum de temps ait expiré (quantum de 10 à 100 ms)
Alors l’horloge interrompt le processus par une
interruption, et le il est placé dans la file des processus
prêt
Système d’Exploitation
Yann MORÈRE 2004
Quantum pour Round Robin
372/70
• Doit être plus grand que le temps requis pour réaliser
une interruption horloge et ordonnancement
• Doit être plus grand que les temps moyens d’exécution
(mais pas beaucoup plus grans pour éviter de
pénaliser les processus long E/S)
Système d’Exploitation
Yann MORÈRE 2004
Critique du Round Robin
373/70
• Favorise les processus CPU longs
Un processus E/S long utilisa la CPU pour un temps plus court
que le quantum et est alors bloqué en attente E/S
Un processus CPU long s ’exécute sur tout le quantum et est
remis dans la file des processus prêts (passe devant les
processus bloqués)
• Une solution: round robin virtuel
Quand l’E/S est terminée, le processus bloqué est déplacé dans
une file auxiliaire qui est préférée à toutes les autres files
prêtes
Un processus ordonnancé depuis cette file auxiliaire seraé
exécuté le temps du quantum moins celui déjà exécuté quand
il a été sélectionné de la file des processus prêts
Système d’Exploitation
Yann MORÈRE 2004
374/70
File pour le Round Robin Virtuel
Système d’Exploitation
Yann MORÈRE 2004
Le plus court travail ensuite Shortest Process Next (SPN)
• Fonction de sélection : le processus avec le plus
petit temps d’exécution CPU est choisi
• Mode de décision : non préemptif
• Les processus E/S long seront choisis d’abord
• On doit estimer le temps CPU requis pour chaque
processus
Système d’Exploitation
Yann MORÈRE 2004
375/70
Estimation du temps CPU
requis
• Soit T[i] le temps d’exécution pour la ième instance de
ce processus : la durée actuelle du la ième giclée de
CPU de ce processus
• Soit S[i] la valeur prédite pour la ième giclée de CPU
pour ce processus, le choix le plus simple est :
S[n+1] = (1/n)
Σ_{i=1 to n} T[i]
• Pour éviter de reclaculer la somme entière, on peut
réécrire
S[n+1] = (1/n) T[n] + ((n-1)/n) S[n]
• Mais cette combinaison donne des poids équivalent à
chaque instance
Système d’Exploitation
Yann MORÈRE 2004
376/70
Estimation du temps CPU
requis
377/70
• Mais les instances récentes reflètent plus fidèlement le
comportement futur
• Un technique commune pour cela est l’utilisation de la
moyenne exponentielle
S[n+1] = α T[n] + (1-α) S[n] ; 0 < α < 1
Un poids plus important est mis sur les instances récentes
• En analysant cette équation, on remarque que les poids
des instances passées décroissent exponentiellement
S[n+1] = αT[n] + (1-α)αT[n-1] + ... (1-α)^{i}αT[n-i] +
... + (1-α)^{n}S[1]
La valeur prédite de l’instance S[1] n’est pas calculée. Mise à 0
pour donner la priorité au nouveau processus.
Système d’Exploitation
Yann MORÈRE 2004
Coefficients décroissants
exponentiellement
Système d’Exploitation
Yann MORÈRE 2004
378/70
Coefficients décroissants
exponentiellement
• Ici S[1] = 0 pour donner une grande priorité au nouveau
processus
• La moyenne exponentielle modifie le comportement des
processus plus rapidement qu’une simple moyenne
Système d’Exploitation
Yann MORÈRE 2004
379/70
Le plus court travail ensuite :
critique
380/70
• Possibilité de famine pour les processus les plus
longs tant qu’il existe des processus plus courts
• Manque de préemption qui n’est pas souhaitable
dans un environnement à temps partagé
Les processus CPU long reçoivent des priorité plus
basses (qu’ils ne devraient) mais un processus qui ne
fait pas d’E/S pourrait monopoliser la CPU s’il est le
premier à entrer dans le système
• SPN contient implicitement des priorités : on
donnent des préférences aux travaux les plus
courts
• L’algorithme (préemptif) suivant pénalise
directement les travaux longs
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement multi-niveau
381/70
• Ordonnancement préemptif avec priorités dynamiques
• Plusieurs files « processus prêt » avec des priorités
décroissantes
P(RQ0) > P(RQ1) > ... > P(RQn)
• Les nouveaux processus sont placés dans RQ0
• Quand ils ont atteint leur quantum de temps ils sont placé
dans RQ1. S’ils l’atteignent de nouveau, il sont placé dans
RQ2... Jusqu’à ce qu’il atteignent RQn
• Les processus E/S longs vont rester dans les files à haute
priorité. Les processus CPU longs vont descendre en priorité.
• L’ordonnanceur choisit un processus pour exécution dans RQi
seulement siRQi-1 à RQ0 sont vides
• Par conséquent, les longs travaux peuvent souffrir de famine
Système d’Exploitation
Yann MORÈRE 2004
Files pour Ordonnancement
multi-niveau
382/70
• PAPS est utilisé dans chaque file excepté pour la file
à la priorité la plus faible ou le round robin est utilisé
Système d’Exploitation
Yann MORÈRE 2004
Quantum de temps pour
Ordonnancement multi-niveau
• Avec un quantum de temps fixe, le « turnaround time » des
processus longs peut s’allonger de manière alarmante
• Pour compenser, on peut augmenter le quantum de temps par
rapport à la profondeur de la file
Ex: quantum de temps de RQi = 2^{i-1}
• Les processus les plus longs peuvent toujours souffrir de famine.
Solution : donner une priorité plus grande à un processus après
un certain temps
Système d’Exploitation
Yann MORÈRE 2004
383/70
Comparaison des Algorithmes
384/70
• Lequel est le meilleur?
• La réponse dépend :
De la charge du système (extrêmement variable)
Support matériel pour l’ordonanceur
Pondération relative des critères de
performances (temps de réponse, utilisation
CPU, …)
La méthode d’évaluation utilisée
• Trop de facteur en dépendent pour donner
une seule réponse
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement équitable
• Dans un système multiutilisateur, chacun d’eux
peut posséder plusieurs processus
• Les utilisateurs appartiennent à des groupes et
chaque groupe devraient se partager
équitablement la CPU
• C’est la philosophie de l’ordonnancement équitable
• Ex: S’il y a 4 départements d’importance égale
(groupes) et un département possède plus de
processus que les autres, la dégradation du temps
de réponse dans ce département devrait être plus
prononcée que dans les autres
Système d’Exploitation
Yann MORÈRE 2004
385/70
Ordonnancement équitable
The Fair Share Scheduler (FSS)
386/70
•
•
•
•
Implanté sur quelques systèmes Unix
Les processus sont divisé en groupes
Le groupe k possède la fraction Wk de la CPU
La priorité Pj[i] du processus j (appartenant au groupe k)
au intervalles de temps i est donnée par:
Pj[i] = Bj + (1/2) CPUj[i-1] + GCPUk[i-1]/(4Wk)
•
•
•
•
Une grande valeur = priorité basse
Le processus avec la plus haute priorité est exécuté ensuite
Bj = priorité de base du processus j
CPUj[i] = moyenne pondérée exponentielle de l’utilisation du
processeur par le processus j dans les intervalles de temps i
• GCPUk[i] = moyenne pondérée exponentielle de l’utilisation du
processeur par le groupe k dans les intervalles de temps i
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement équitable
The Fair Share Scheduler (FSS)
387/70
• La moyenne pondérée exponentielle utilise α = 1/2:
CPUj[i] = (1/2) Uj[i-1] + (1/2) CPUj[i-1]
GCPUk[i] = (1/2) GUk[i-1] + (1/2) GCPUk[i-1]
où
• Uj[i] = utilisation processeur par le processus j en intervalle de
temps i
• GUk[i] = utilisation processeur par le groupe k en intervalle de
temps i
• On rappelle que
Pj[i] = Bj + (1/2) CPUj[i-1] + GCPUk[i-1]/(4Wk)
• La priorité décroit au fur et à mesure que le processus et le
groupe utilise le processeur
• Aved un poids plus grand Wk, l’utilisation groupe décroît
moins la priorité
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement multiprocesseur et temps réel
Chapitre 10
Classifications des systèmes
multiprocesseurs
• Multiprocesseur à couplement faible
Chaque processeur possède sa propre mémoire et
ses canaux d’E/S
• Processeurs à fonctionnalité spécialisée
Tel que les processeurs d’E/S
Contrôlé par un processeur maître
• Mutiprocesseurs étroitement couplés
Les processeurs partage la même mémoire
Contrôlé par le SE
Système d’Exploitation
Yann MORÈRE 2004
389/70
390/70
Parallélisme Indépendant
• Exécute des processus séparés
• Pas de synchronisation
• Exemple : temps partagé
Temps de réponse moyen diminué pour les
utilisateurs
Système d’Exploitation
Yann MORÈRE 2004
391/70
Parallélisme très brut
• Exécution distribuée dans les nœuds d’un
réseau pour former un environnement de
calcul (cluster)
• Très bon quand il n’y a pas d’interaction
fréquente parmi les processus
La totalité du réseau doit diminué la vitesse
de communication
Système d’Exploitation
Yann MORÈRE 2004
392/70
Parallélisme brut
• Similaire à l’exécution de plusieurs
processus sur un seul processeur à par
que l’exécution se fait sur plusieurs
• -> Multiprocessing
Système d’Exploitation
Yann MORÈRE 2004
Parallélisme médian
(intermédiaire)
• Exécution parallèle ou multitâche à
l’intérieur d’une même application
• L’application unique est une collection de
« threads »
• Les « Threads » interagisse fréquemment
Système d’Exploitation
Yann MORÈRE 2004
393/70
Ordonnancement de
processus
• Une seule file pour tous les processus
• Des files multiples sont utilisées pour les
priorités
• Toutes les files nourrissent l’ensemble des
processeurs
• Les politiques d’ordonnancements
spécifiques sont moins importantes
lorsque l’on a plus d’un processeur
Système d’Exploitation
Yann MORÈRE 2004
394/70
395/70
« Threads »
• Exécution séparée du reste du processus
• Une application peut être un ensemble de
« threads » qui coopère et s’exécute de
manière concurrente dans le même
espace d’adresse
• Les « Threads » s’exécutant sur des
processeurs séparés conduisent à un très
grand gain de performance
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement
Multiprocesseur des « Thread »
396/70
• Charge partagée
Les processus ne sont pas assignés à un
processeur particulier
• Ordonnancement des « threads »
Un ensemble de « threads » est choisi pour
s’exécuté sur un ensemble de processeurs en
même temps
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement
Multiprocesseur des « Thread »
397/70
• Assignation à un processeur dédié
Les « threads » sont assigné à un processeur
spécifique
• Ordonnancement dynamique
Le nombre de « threads » peut être modifié
pendant la période d’exécution
Système d’Exploitation
Yann MORÈRE 2004
398/70
Charge partagée
• Le chargement est également distribué
parmi les processeurs
• Assure qu’aucun processeur ne soit ralenti
• Pas d’ordonnanceur centralisé requis
• Utilise des files globales
Système d’Exploitation
Yann MORÈRE 2004
Inconvénients de la
charge partagée
399/70
• Une file centrale nécessite l’exclusion mutuelle
Peut être un goulot d’étranglement lorsque plus d’un
processeur cherche des processus a exécuter au
même instant
• Les « threads » préemptifs sont peu probables.
Ils réinitialise l’exécution sur le même
processeur
L’utilisation de cache est moins efficace
• Si tous les « threads » sont dans une file
globale, tous les « threads » d’un programme
n’obtiendront pas l’accès aux processeurs en
même temps
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement des
« threads »
400/70
• Ordonnancement simultané des « threads »
pour réaliser un seul processus
• Utile pour les applications où les
performances se dégradent de manière
importante quand une partie de
l’application ne s’exécute pas
• Les « threads » ont souvent besoins de se
synchroniser entre eux
Système d’Exploitation
Yann MORÈRE 2004
Assignation à un
processeur dédié
401/70
• Quand une application est ordonnancée,
ses « threads » sont assignés à un
processeur
• Certains processeurs peuvent être ralentis
• Ceci évite la commutation de processus
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement dynamique
• Le nombre de « threads » dans un processus
peut être modifié dynamiquement par
l’application
• Le SE ajuste la charge pour améliorer
l’utilisation
Assigne des processeurs au ralenti
Les nouveaux processus peuvent être assignés à un
processeur qui est actuellement utilisé par un travail
qui utilise plus d’un processeur
Maintient la demande jusqu’à ce qu’un processeur
soit disponible
Les nouveaux processus se verront attribués un
processeur, avant les applications déjà existantes en
exécution
Système d’Exploitation
Yann MORÈRE 2004
402/70
403/70
Système temps réels
• L’exactitude du système ne dépend plus
uniquement du résultat obtenu par le calcul,
mais aussi du temps que le système a mis pour
produire ce résultat
• Les tâches et les processus tente de contrôler
ou de réagir aux évènements qui opèrent à
l’extérieur
• Ces évènements apparaissent en « temps réel »
et les processus doivent être capable de les
gérer
Système d’Exploitation
Yann MORÈRE 2004
404/70
Système temps réels
•
•
•
•
•
Contrôle d’expérience de laboratoire
Contrôle de procédés industriels
Robotique
Contrôle aérien
Télécommunications
Système d’Exploitation
Yann MORÈRE 2004
Caractéristiques d’un SE
temps réel
• Déterministe
Les opérations sont effectuées à temps fixés
et déterminés ou dans des intervalles de
temps prédéterminés
Concerné par le temps (retard) que va mettre
de SE avant d’accepter une interruption
Système d’Exploitation
Yann MORÈRE 2004
405/70
Caractéristiques d’un SE
temps réel
• Réponse
Combien de temps, après acceptation, cela
prend au SE pour effectuer l’interruption
Inclus la quantité de temps pour commencer
l’exécution de l’interruption
Inclus la quantité de temsp pour réaliser
l’interruption
Système d’Exploitation
Yann MORÈRE 2004
406/70
Caractéristiques d’un SE
temps réel
• Contrôle utilisateur
Spécifie la pagination
Quel processus doit être constamment en
mémoire centrale
Droits des processus
Système d’Exploitation
Yann MORÈRE 2004
407/70
Caractéristiques d’un SE
temps réel
• Fiabilité
Dégradation des performances peut avoir des
effets catastrophiques
Les tâches les plus critiques, avec les plus
hautes priorités s’exécutent
Système d’Exploitation
Yann MORÈRE 2004
408/70
409/70
Spécificités d’un SE temps réel
• Commutation de contexte rapide
• Petite taille
• Capacité à répondre rapidement à des
interruptions externes
• Multi-tâches avec outils de communications
interprocessus tels que sémaphores, signaux et
évènements
• Stockage des données dans les fichiers à haute
vitesse
Système d’Exploitation
Yann MORÈRE 2004
410/70
Spécificités d’un SE temps réel
• Ordonnancement préemptif basé sur les
priorités
Préemption immédiate permet au SE de répondre
rapidement à une interruption
• Minimisation des intervalles pendant lesquels
les interruptions sont désactivées
• Les retards des tâches sont fixes
• Alarmes et timeouts spéciaux
Système d’Exploitation
Yann MORÈRE 2004
Ordonnancement temps
réel
• Dirigé par une table statique
Qui détermine en exécution, quand une tâche
démarre son exécution
• Dirigé par un ordonnancement préemptif
statique à priorité
Utilisation d’un ordonnanceur à priorité
• Basé sur une planification dynamique
• Meilleur effort dynamique
Système d’Exploitation
Yann MORÈRE 2004
411/70
Ordonnancement à Datelimite « deadline »
• Les application temps réels ne sont pas
concernées par la vitesse mais plutô par la
complétion de tâches
• Ordonnancer les tâches par la date-limite
au plus tôt, minimise le pourcentage de
tâches qui dépassent la date-limite
Inclus les nouvelles tâches et la quantité de
temps nécessaire pour quitter les tâches
Système d’Exploitation
Yann MORÈRE 2004
412/70
Ordonnancement de
tâches temps réelles
0
Arrival times
10
20
A
B
30
40
50
60
C
D
E
413/70
70
80
90 100 110
Requirements
Starting deadline
Arrival times
Earliest
deadline
Service
B
A
B
A
Starting deadline
B (missed)
Système d’Exploitation
E
D
C
E
D
C
E
D
C
C
D
A
E
Yann MORÈRE 2004
A
120
Ordonnancement de
tâches temps réelles
0
Arrival times
10
20
A
B
30
40
50
60
C
D
E
414/70
70
80
90 100 110
Requirements
Starting deadline
Arrival times
Earliest
deadline
wi th unforced
idle ti mes
B
A
B
Service
C
B
Starting deadline
B
Système d’Exploitation
E
D
C
E
D
C
E
D
C
D
A
E
Yann MORÈRE 2004
A
120
Ordonnancement de
tâches temps réelles
0
Arrival times
10
20
A
B
30
40
50
60
C
D
E
70
415/70
80
90
100 110
Requirements
Starting deadline
Arrival times
First-come
first-served
(FCFS)
Service
B
A
B
A
Starting deadline
B (missed)
Système d’Exploitation
C
C
D
C
C
E
D
A
E
D
E (missed) D
Yann MORÈRE 2004
A
120
Ordonnancement UNIX
• Ensemble de 160 niveaux de priorité
divisé en 3 classes de priorité
• Le niveau noyau n’est pas préemptif
Priority
Class
Priority
Class
Real-ti me
Real-time
Gl obal
Value
159
.
.
159
. .
. .
.
Global
Value
Scheduling
Sequence
first
Scheduling
Sequence
first
.100
100
Kernel
Kernel
99
.
.
.99
.
60 60
59
Time-shared
Ti me-shared
.
.
.
.
.59
.
.
0
.
0
Système d’Exploitation
last
last
Yann MORÈRE 2004
416/70
Rapport entre les priorités
Windows NT
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
base priority
Process
Priority
15
14
13
12
11
10
9
8
7
highest
6
above normal
5
normal
base
priority
4
highest
below normal
3
lowest
above21 normal
0
normal
Process
Thread’sThread’s
Base
Dynamic
bel ow normal
Priority Priority Priority
lowest
Thread’s Base
Priority
Système d’Exploitation
Thread’s Dynamic
Priority
Yann MORÈRE 2004
417/70
Temps réel sous Linux
Chapitre 10 bis
Définition d’un système temps
réel
• Temps partagé et temps réel
Gestion du temps = problème majeure des SE
SE multitâches mais basé sur des processeurs non
multitâches -> partage de temps processeur entre les
tâches
Gestion de passage d’une tâche à une autre
(Ordonnanceur)
• Opposition temps partagé/temps réel
Temps partagé = impression de confort pour
l’utilisateur en assurant l’exécution des tâches ->
complexité ordonnanceur
Système d’Exploitation
Yann MORÈRE 2004
419/70
Définition d’un système
temps réel
• Limitations temps partagé
Notion de priorité entre tâches peu utilisées
But = partage équitable du temps (quantum de
temps ou tick)
Incertitudes temporelles dues aux accès aux
ressources partagées
Gestion des E/S provoques des temps morts (blocage
en attente d’accès)
Mémoire virtuelle -> fluctuation importante des
temps d’exécution
Système d’Exploitation
Yann MORÈRE 2004
420/70
Définition d’un système
temps réel
• Notion de temps réel
Un système temps réel est une association
logiciel/matériel où le logiciel permet, entre
autre, une gestion adéquate des ressources
matérielles en vue de remplir certaines tâche
ou fonctions dans des limites temporelles bien
précises.
Un système est dit temps réel lorsque
l’information après acquisition et traitement
reste encore pertinente.
Système d’Exploitation
Yann MORÈRE 2004
421/70
Définition d’un système
temps réel
• Conséquences
Les temps d’acquisition et de traitement
doivent rester inférieurs à la période de
rafraîchissement des informations
La structure du système dépend de ces
contraintes
Système d’Exploitation
Yann MORÈRE 2004
422/70
Définition d’un système
temps réel
• 2 catégories de systèmes
Systèmes à contraintes souples ou molles
(soft real time) : acceptation de variations
dans le traitement des données (500ms à 1s).
Répartition égalitaire du temps cpu.
Systèmes à contraintes dures (hard real time)
: une gestion stricte du temps est nécessaire
pour conserver l’intégrité du service rendu.
Répartition totalitaire du temps cpu.
Système d’Exploitation
Yann MORÈRE 2004
423/70
Définition d’un système
temps réel
• Critères fondamentaux des systèmes à
contraintes dures
Déterminisme logique : les mêmes entrées
appliquées aux systèmes doivent produire les mêmes
effets
Déterminisme temporel : une tâche donnée doit
obligatoirement être exécutée dans les délais
impartis, échéance
Fiabilité : le système doit être disponible. Contrainte
forte dans le cas d’un système embarqué. Contrainte
indépendante du temps réel.
Système d’Exploitation
Yann MORÈRE 2004
424/70
Définition d’un système
temps réel
• Un système temps réel n’est pas plus rapide
qu’un système à temps partagé
• Il doit satisfaire des contraintes temporelles
strictes, prévues à l’avance, et imposées par le
processus extérieur à contrôler
• Être temps réel = capable d’acquitter
l’interruption périodique, traiter l’information, et
le signaler au niveau utilisateur dans un temps
inférieur au temps entre 2 interruptions
successives.
Système d’Exploitation
Yann MORÈRE 2004
425/70
Définition d’un système
temps réel
• Un système temps réel doit être prévisible
(prédictible en anglais), les contraintes
temporelles pouvant s’échelonner entre
quelques micro-secondes (µs) et quelques
secondes.
Système d’Exploitation
Yann MORÈRE 2004
426/70
Définition d’un système
temps réel
Tâche périodique et temps réel
Système d’Exploitation
Yann MORÈRE 2004
427/70
Définition d’un système
temps réel
• Illustration de la notion de temps réel sur
une tâche périodique
Système non temps réel : temps de latence
varie fortement avant l’exécution de la tâche
Système temps réel : ce temps doit être
borné et garanti inférieur à une valeur fixe,
sinon défaut de fonctionnement -> crash du
système
Système d’Exploitation
Yann MORÈRE 2004
428/70
Intérêt du temps réel :
Petite expérience
• Génération d’un signal périodique sur le port parallèle.
• Temps séparant deux émissions est mesuré
• But visualisation de l’évolution du délai en fonction de la
charge du système
Système d’Exploitation
Yann MORÈRE 2004
429/70
Intérêt du temps réel :
Petite expérience
• Fréquence initiale de 25 Hz demi période
de 20ms
• Système classique : demi période varie de
17 à 23 ms -> variation de 22 à 29 Hz
Système d’Exploitation
Yann MORÈRE 2004
430/70
Intérêt du temps réel :
Petite expérience
• Système temps réel : demi période varie de
19.990 à 20.015 ms -> variation de 24.98 à
25.01 Hz
• A charge max. : variation de +/-0.2Hz système
temps réel et +/-4Hz système classique
Système d’Exploitation
Yann MORÈRE 2004
431/70
Préemption et
commutation de contexte
• Noyau = composant principal du SE
• Chaque tâche décomposée en thread :
exécution d’un portion de code dans un même
espace d’adressage
• Chaque thread caractérisé par un contexte local
: priorité, variables, registres
• Changement de contexte plus rapide sur thread
que sur processus
Système d’Exploitation
Yann MORÈRE 2004
432/70
Préemption et
commutation de contexte
• Système temps réel : noyau préemptif ->
thread peut être interrompu par
ordonnanceur en fonction du niveau de
priorité pour exécuter un thread de niveau
plus haut
• Affecter les plus hauts niveaux aux tâches
critiques
Système d’Exploitation
Yann MORÈRE 2004
433/70
Préemption et
commutation de contexte
• Cas de Linux : noyau non préemptif, le
thread sera interrompu par un appel au
noyau.
• Notion de priorité peu utilisée -> noyau
décide de commuter ou non le thread
actif
Système d’Exploitation
Yann MORÈRE 2004
434/70
435/70
Les extensions POSIX
• Complexité et interopérabilité -> standardisation
-> utilisation de systèmes conformes POSIX
• Portable Operating System Interface (IEEE,
ANSI et ISO)
• But : obtenir la portabilité des logiciels au
niveau de leur code source
• POSIX initialement mis en place pour Unix
• Maintenant Windows est POSIX
Système d’Exploitation
Yann MORÈRE 2004
436/70
Les extensions POSIX
• IEEE 1003.1-1990 : API système,
définitions des fonctions en langage C
• IEEE 1003.2-1992 : Interface applicative
pour le shell
• IEEE 1003.1b-1993 : API temps réel.
Support de programmation temps réel ou
POSIX.4
• IEEE 1003.1c-1995 : API multithreading
Système d’Exploitation
Yann MORÈRE 2004
437/70
Les extensions POSIX
• La plupart des systèmes temps sont
partiellement conformes à POSIX (QNX,
LynxOS
• La conformité par rapport à POSIX
1003.1b est partielle en standard et
application de patch nécessaire
Système d’Exploitation
Yann MORÈRE 2004
Les principaux systèmes
temps réels
• Systèmes non basés Linux
• Précision noyau, exécutif et SE temps
réels
Noyau temps réel = système minimum
Exécutif temps réel = noyau +
modules/bibliothèques pour conception temps
réel
SE temps réel = environnement de
développement temps réel natif
Système d’Exploitation
Yann MORÈRE 2004
438/70
Les principaux systèmes
temps réels
• VxWorks et pSOS
VxWorks = exécutif temps réel le plus utilisé
en industrie. Société Wind River
http://www.windriver.com . Fiable à faible
empreinte mémoire, nombreux portage,
support réseau.
Conforme à POSIX 1003.1b
Système d’Exploitation
Yann MORÈRE 2004
439/70
Les principaux systèmes
temps réels
• QNX
Développé par QNX http://www.qnx.com .
Système temps réel de type Unix
Conforme POSIX
Développer directement sur la plateforme
cible
Environnement graphique Photon
Système d’Exploitation
Yann MORÈRE 2004
440/70
Les principaux systèmes
temps réels
• µC/OS et µC/OS II
Développé par un canadien J.J. Labrosse
Exécutif temps réel pour environnement de
très petite taille (micro-contrôleur)
Disponible sur de nombreux processeurs
Intègre TCP/IP sur PPP
Gratuit pour l’enseignement http://www.ucosii.com
Système d’Exploitation
Yann MORÈRE 2004
441/70
Les principaux systèmes
temps réels
• Windows CE
Windows CE et Embedded Windows NT victime d’un
fiabilité approximative
Cantonné à l’équipement des PDA
• LynxOS
Développé par LynuxWorks
http://www.lynuxworks.com
Conforme POSIX
• Nucleus
Développé par Accelerated Technology Inc.
http://www.acceleratedtechnology.com
Livré avec les sources, pas de royalties
Système d’Exploitation
Yann MORÈRE 2004
442/70
Les principaux systèmes
temps réels
• eCos
Acronyme de Embeddable Configurable
Operating System, développé par Cygnus et
rattaché à Red Hat
Solutions à faible emprunte mémoire
Conformité POSIX
Système d’Exploitation
Yann MORÈRE 2004
443/70
Contraintes des systèmes
propriétaires
• Suivi de l’évolution technologique
aléatoire (entreprise à petite structure)
• Coûts élevés car marché de niche
• Coûts plus élevé du développement
d’application (personnel très spécialisé)
Système d’Exploitation
Yann MORÈRE 2004
444/70
Avantages de l’Open
Source
• Redistribution sans royalties
• Disponibilité du code source -> logiciel de
qualité et facilité de maintenabilité
• Possibilité de réaliser un développement
dérivé de ce code source
économies
Système d’Exploitation
Yann MORÈRE 2004
445/70
Linux comme système
temps réel
• Linux n’est pas nativement temps réel
• Conçu au départ pour faire un système
généraliste -> pas de notion de temps
réel
• Plusieurs solutions technique disponibles
pour rendre compatible temps réels
Système d’Exploitation
Yann MORÈRE 2004
446/70
Linux comme système
temps réel
• Solutions techniques de 2 types :
Patchs « préemptifs », qui améliorent le
comportement du noyau en réduisant les
temps de latence.
Noyau temps réel auxiliaire : ajout d’un
ordonnanceur temps réel à priorités fixes
Système d’Exploitation
Yann MORÈRE 2004
447/70
Linux comme système
temps réel
• Patchs « préemptifs »
Pas une transformation en temps réel « dur »
Bons résultats dans le cas de contraintes
temps réel « molles »
Différents projets open sources
• Prempt Kernel http://www.tech9.netrmllinux
• Low Latency
http://www.zip.com.au/~akpm/linux/schedlat.html
Système d’Exploitation
Yann MORÈRE 2004
448/70
Linux comme système
temps réel
• Noyau auxiliaire
Il traite directement les tâches temps réel et
délègue les autres tâches au noyau Linux
(tâche de fond de plus faible priorité)
Permet la mise en place de système temps
réel « durs »
Système d’Exploitation
Yann MORÈRE 2004
449/70
Linux comme système
temps réel
• RTLinux développé par FSMLabs
http://www.fsmlabs.com
Brevet logiciel sur son noyau auxiliaire
• RTAI cousin européen
Pas de société commerciale
Pas de brevet
Système d’Exploitation
Yann MORÈRE 2004
450/70
451/70
Système RTLinux
• Principe
Faire cohabiter un noyau auxiliaire avec un
ordonnanceur à priorités fixes avec le noyau
Linux
Tâches temps réel gérées par le noyau temps
réel
Traitement des autres tâches déléguées au
noyau Linux (tâche de plus faible priorité)
Système d’Exploitation
Yann MORÈRE 2004
452/70
Système RTLinux
Système à double noyau
Système d’Exploitation
Yann MORÈRE 2004
453/70
Système RTAI
• Real Time Application Interface (RTAI)
École Polytechnique de Milan dpt aérospaciale
Besoins internes : developper un produit
s’inspirant de RTLinux en intégrant des
améliorations
Pas de but commercial
Architecture de la distribution RTAI semble
plus complexe (API)
Système d’Exploitation
Yann MORÈRE 2004
Gestion E/S et
ordonnancement Disque
Chapitre 11
Catégories de
périphériques E/S
455/70
• Lisible par l’humain
Utilisé pour communiquer avec l’utilisateur
Afficheur vidéo
clavier
souris
Imprimante
…
Système d’Exploitation
Yann MORÈRE 2004
Catégories de
périphériques E/S
456/70
• Lisible par la machine
Utilisé pour communiquer avec les
équipements électroniques
Disques
Lecteur de bandes
contrôleurs
actionneurs
Système d’Exploitation
Yann MORÈRE 2004
Catégories de
périphériques E/S
457/70
• Communication
Utilisé pour communiquer avec les
périphériques pilotés
Pilotes de lignes digitales
modems
Système d’Exploitation
Yann MORÈRE 2004
Différences entre les
périphériques E/S
• Taux de transfert de données
• Application
Les disques utilisés pour le stockage de fichiers
doivent avoir un logiciel de gestion de fichiers
Les disques utilisés pour stocké de la mémoire
virtuelle (pages) doivent avoir un matériel spécifique
pour le supporter
Les terminaux utilisés par les administrateurs
systèmes doivent avoir une priorité plus importante
Système d’Exploitation
Yann MORÈRE 2004
458/70
Différences entre les
périphériques E/S
• Complexité de la commande (pilotage)
• Unité de transfert
Les données peuvent être transférée comme un flux
d’octets pour un terminal ou en block plus grand pour
un disque
• Représentation des données
Schémas d’encodage
• Gestion des Conditions d’erreur
Les périphériques répondent différemment aux
erreurs
Système d’Exploitation
Yann MORÈRE 2004
459/70
Techniques pour réaliser
des E/S
• E/S programmée
Le processus est en attente active pendant
l’accomplissement de l’action d’E/S
• E/S par interruption
Une commande d’E/S est utilisée
Le processeur continue l’exécution des
instructions
Un module d’E/S renvoie une interruption
lorsque les E/S sont terminée
Système d’Exploitation
Yann MORÈRE 2004
460/70
Techniques pour réaliser
des E/S
• Accès direct à la mémoire - Direct Memory
Access (DMA)
Le module DMA contrôle l’échange de
données entre la mémoire centrale et le
périphérique d’E/S
Le processeur est interrompu après le
transfert d’un block entier de données
Système d’Exploitation
Yann MORÈRE 2004
461/70
Évolution de la fonction
d’E/S
• Le processeur contrôle directement un
périphérique (modem)
• Un contrôleur/module d’E/S est ajouté
Le processeur utilise les E/S programmées
sans les interruptions
Le processeur n’a pas besoin de gérer les
détails du périphériques d’E/S
Système d’Exploitation
Yann MORÈRE 2004
462/70
Évolution de la fonction
d’E/S
• Le contrôleur/module d’E/S avec
interruptions
Le processeur ne perd pas de temps à
attendre la fin d’une opération d’E/S
• Accès direct à la mémoire
Les blocks de données sont déplacés dans la
mémoire sans utilisation du processeur
Le processeur est mis en jeu au début et à la
fin de la transaction
Système d’Exploitation
Yann MORÈRE 2004
463/70
Évolution de la fonction
d’E/S
• Module d’E/S est un processeur séparé
Canaux d’E/S
Utilisation de mémoire centrale
• Processeur d’E/S
Le moduel d’E/S possède sa propre mémoire
locale
C’est un ordinateur à part entière
Système d’Exploitation
Yann MORÈRE 2004
464/70
Accès direct à la mémoire
• Prise de contrôle du système par le CPU pour
transférer des données et de la mémoire sur le
bus système
• Le vol de cycle est utilisé pour transférer les
données sur le bus système
• Le cycle d’instruction est suspendu de telle sorte
que les données peuvent être transférées
• La CPU fais une pause d’un cycle bus
• Pas d’apparition d’interruption
Pas besoin de sauver le contexte
Système d’Exploitation
Yann MORÈRE 2004
465/70
Diagramme typique d’un
block DMA
Data
Count
Data Lines
Data
Register
Address Lines
Address
Register
DMA Request
DMA Acknowledge
Inte rrupt
Read
Write
Control
Logic
Système d’Exploitation
Yann MORÈRE 2004
466/70
467/70
Accès direct à la mémoire
• Le vol de cycle ralenti la CPU
• Le nombre requis de cycle peut être réduit
en intégrant le DMA et les fonctions d’E/S
• Le chemin entre le module DMA et le
module d’E/S ne doit pas contenir le bus
système
Système d’Exploitation
Yann MORÈRE 2004
Point d’arrêt DMA et
interruptions
468/70
Time
Instruction Cycle
Processor Processor Processor Processor Processor Processor
Cycle
Cycle
Cycle
Cycle
Cycle
Cycle
Fetch
Decode
Execute
Store
Fetch
Instruction Instruction Operand Instruction Result
DMA
Breakpoints
Système d’Exploitation
Process
Interrupt
Inte rrupt
Breakpoint
Yann MORÈRE 2004
469/70
Bus simple, DMA détachée
Processor
Processor
DMA
DMA
I/O
I/O
Système d’Exploitation
...
I/O
I/O
Memory
Memory
Yann MORÈRE 2004
Bus simple, DMA-E/S
intégrée
Processor
Processor
470/70
DMA
DMA
DMA
Memory
Memory
I/O
I/O
I/O
Système d’Exploitation
I/O
I/O
Yann MORÈRE 2004
471/70
Bus d’E/S
System Bus
Processor
Processor
DMA
DMA
Memory
Memory
I/O Bus
I/O
I/O
I/O
I/O
Système d’Exploitation
I/O
I/O
Yann MORÈRE 2004
Objectifs de conception
d’un SE
• Extrêmement lent vis-à-vis de la mémoire
centrale
• L’utilisation de la multiprogrammation permet à
certains processus d’attendre un E/S pendant
qu’un autre processus s’exécute
• Les E/S ne peuvent pas suivre la vitesse du
processeur
• Le « Swapping » est utilisé pour apporter des
processus prêts additionnels. C’est une
opération d’E/S
• L’efficacité est une chose importante
Système d’Exploitation
Yann MORÈRE 2004
472/70
Objectifs de conception
d’un SE
• L’efficacité est une chose importante
• Il est préférable de gérer touts les périphériques
d’E/S d’une manière unique
• Cacher le plus de détails possible d’un
périphériques d’E/S dans les routines de bas
niveau de telles sortes que les processus ou les
niveaux supérieurs voient le périphériques en
termes génériques tels que Lecture/Écriture et
Ouverture/Fermeture
• La généricité est une chose importante
Système d’Exploitation
Yann MORÈRE 2004
473/70
Un modèle d’organisation
des E/S
User
User
Processes
Processes
User
User
Processes
Processes
User
User
Processes
Processes
Directory
Management
Logical
I/O
Comm.
Architecture
File
System
Physical
Organization
Device
I/O
Device
I/O
Device
I/O
Scheduling
& Control
Scheduling
& Control
Scheduling
& Control
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Local peripheral device
Communications port
Système d’Exploitation
File System
Yann MORÈRE 2004
474/70
475/70
Tampon d’E/S
• Pourquoi un tampon
Les processus doivent attendre la fin d’E/S
avant d’exécuter
Les pages nécessaires doivent rester en
mémoire centrale pendant l’E/S
Système d’Exploitation
Yann MORÈRE 2004
476/70
Tampon d’E/S
• Orienté block
L’information est stockée dans des blocks de taille fixe
Les transferts sont fait un block à la foit
Utilisé pour les disques et les bandes
• Orienté flux
Le transfert d’information est un flux de d’octets
Utilisé pour les terminaux, les imprimantes, les ports
de communication, souris et la plupart des
périphériques qui ne sont pas des organes de stockage
secondaire
Système d’Exploitation
Yann MORÈRE 2004
477/70
Pas de tampon
Ope rating System
I/O Device
User Process
In
No buffering
Système d’Exploitation
Yann MORÈRE 2004
478/70
Tampon simple
• Le SE assigne un tampon en mémoire
centrale pour une requête E/S
• Orienté block
Les transferts des entrées faites dans le
buffer
Block déplacé dans l’espace utilisateur si
nécessaire
Un autre block est déplacé dans le buffer
• Lecture suivante
I/O Device
Operating System
In
User Process
Move
Single buffering
Système d’Exploitation
Yann MORÈRE 2004
Tampon simple
479/70
• Orienté block
Le processus utilisateur peut travailler sur un block
de données pendant que le block suivant est lu
Le « swapping » peut apparaître dès que l’entrée est
en mémoire système et non en mémoire utilisateur
Le SE garde trace de l’assignation des tampons
systèmes aux processus utilisateurs
La sortie est réalisée par le processus utilisateur en
ecrivant un block dans le tampon et plus tard
réellement écrit
Système d’Exploitation
Yann MORÈRE 2004
480/70
Tampon simple
• Orienté flux
Utilise une ligne à la fois (ligne par ligne)
L’entrée utilisateur d’un terminal est une
seule ligne terminée par un « retour chariot »
qui signale la fin de ligne
La sortie du terminal se fait ligne par ligne
Système d’Exploitation
Yann MORÈRE 2004
481/70
Tampon double
• Utilise deux tampons système à la place
d’un seul
• Un processus peut transférer des données
d’un ou vers un tampon pendant que le
SE vide ou remplit l’autre buffer
Ope rating System
I/O Device
User Process
Move
In
Double buffering
Système d’Exploitation
Yann MORÈRE 2004
482/70
Tampon Circulaire
• Plus de deux tampons sont utilisés
• Chaque tampon est une unité d’un
tampon circulaire
• Utilisé lorsque les opérations d’E/S doivent
suivre les processus
Ope rating System
In
User Process
Move
.
.
I/O Device
Circular buffering
Système d’Exploitation
Yann MORÈRE 2004
Paramètres de
performance des disques
• Pour lire ou écrire, la tête du disque doit être
positionnée sur la piste désirée et au début du
secteur désiré
• Temps de recherche
Temps mis pour positionner la tête sur la piste
désirée
• Retard de rotation ou latence de rotation
Temps mis jusqu’à ce que le secteur désiré soit
aligné avec la tête
Système d’Exploitation
Yann MORÈRE 2004
483/70
Paramètres de
performance des disques
• Temps d’accès
Somme du temps de recherche et du retard de
rotation
Temps mis pour être en position de lecture ou
écriture
• La transfert de donnée est réalisé pendant que
le secteur se déplace sous la tête
• Le transfert de données pour un fichier entier
est plus rapide lorsqu’il est stocké sur le même
cylindre et des secteurs adjacents
Système d’Exploitation
Yann MORÈRE 2004
484/70
Politique
d’ordonnancement disque
• Le temps d’accès est un raison de la
différence de performance
• Pour un disque unique, il y aura un
nombre important de requêtes d’E/S
• Si les requêtes sont sélectionnées
aléatoirement, on aura la pire des
performance possible
Système d’Exploitation
Yann MORÈRE 2004
485/70
Politique
d’ordonnancement disque
• First-in, first-out (FIFO)
Requêtes de processus séquentielles
Equitable pour tous les processus
Approche la performance de
l’ordonnancement aléatoire quand il y a
beaucoup de processus
Système d’Exploitation
Yann MORÈRE 2004
486/70
Politique
d’ordonnancement disque
• Priorités
La but n’est pas d’optimiser l’utilisation du
disque mais de réaliser les autres objectifs
Les travaux courts devraient avoir une
priorité plus haute
Fournit un bon temps de réponse en mode
interactif
Système d’Exploitation
Yann MORÈRE 2004
487/70
Politique
d’ordonnancement disque
• Last-in, first-out
Bon pour les systèmes de traitements de
transaction
• Le service est donné au plus récent utilisateur,
donc il devrait y avoir peu de mouvement du bras
du disque
Possiblilité de famine dès qu’un travail ne
peut pas reprendre la tête de la file
Système d’Exploitation
Yann MORÈRE 2004
488/70
Politique
d’ordonnancement disque
• Shortest Service Time First
Sélectionne la requête d’E/S disque qui
requiert le plus petit mouvement du bras du
disque à partir de la position courante
Toujours choisir le temps recherche minimum
Système d’Exploitation
Yann MORÈRE 2004
489/70
Politique
d’ordonnancement disque
• SCAN
Le bras se déplace seulement dans une
direction en satisfaisant toutes les requêtes
présentes jusqu’à ce qu’il atteigne la dernière
piste dans cette direction
La direction est ensuite inversée
Système d’Exploitation
Yann MORÈRE 2004
490/70
Politique
d’ordonnancement disque
• C-SCAN
Restreint le « scanning » dans une direction
seulement
Lorsque la dernière piste a été visitée dans
une direction, le bras est ramené sur l’autre
bord du disque est le « scan » recommence
Système d’Exploitation
Yann MORÈRE 2004
491/70
Politique
d’ordonnancement disque
• N-step-SCAN
Segemente la file de requête disque en sous files de
taille N
Les sous files sont exécutées une à la fois en utilisant
le « SCAN »
Les nouvelles requêtes sont ajoutées à une autre file
quand la file est exécutée
• FSCAN
Deux files
Un file est vide pour les nouvelles requêtes
Système d’Exploitation
Yann MORÈRE 2004
492/70
493/70
RAID 0 (non-redondant)
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
strip 9
strip 10
strip 11
strip 12
strip 13
strip 14
strip 15
Système d’Exploitation
Yann MORÈRE 2004
494/70
RAID 1 (miroir)
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
strip 9
strip 10
strip 11
strip 12
strip 13
strip 14
strip 15
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
strip 9
strip 10
strip 11
strip 12
strip 13
strip 14
strip 15
Système d’Exploitation
Yann MORÈRE 2004
RAID 2 (redondance a
travers code de Hamming)
b0
b1
b2
Système d’Exploitation
b2
f0(b)
f1(b)
Yann MORÈRE 2004
495/70
f2(b)
RAID 3 (bit de parité bitinterleaved parity)
b0
b1
Système d’Exploitation
b2
b2
Yann MORÈRE 2004
496/70
P(b)
RAID 4 (parité niveau
block - block-level parity)
497/70
block 0
block 1
block 2
block 3
P(0-3)
block 4
block 5
block 6
block 7
P(4-7)
block 8
block 9
block 10
block 11
block 12
block 13
block 14
block 15
P(8-11)
P(12-15)
Système d’Exploitation
Yann MORÈRE 2004
RAID 5 (parité niveau
block distribuée - blocklevel distributed parity)
498/70
block 0
block 1
block 2
block 3
P(0-3)
block 4
block 5
block 6
P(4-7)
block 7
block 8
block 9
P(8-11)
block 10
block 11
block 12
P(12-15)
block 13
block 14
block 15
block 16
block 17
P(16-19)
Système d’Exploitation
block 18
block 19
Yann MORÈRE 2004
Mappage des données pour
RAID niveau 0
Physical
Disk 0
Physical
Disk 1
Physical
Disk 2
Physical
Disk 3
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
strip 9
strip 10
strip 11
strip 12
strip 13
strip 14
strip 15
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
strip 9
strip 10
strip11
strip 12
strip 13
strip 14
strip 15
Array
Management
Software
Système d’Exploitation
Yann MORÈRE 2004
499/70
500/70
Cache disque
• Tampon en mémoire centrale pour des
secteurs de disque
• Contient une copie de certains secteurs du
disque
Système d’Exploitation
Yann MORÈRE 2004
Le moins récemment
utilisé
• Le block qui est resté le plus longtemps
dans le cache sans être référencé est
remplacé
• Le cache consiste en un pile de blocks
• Le block référencé le plus récemment est
en tête de pile
• Lorsqu’un block est référencé ou mis en
cache, il est placé en tête de pile
Système d’Exploitation
Yann MORÈRE 2004
501/70
Le moins récemment
utilisé
• Le block en bas de pile est enlevé
lorsqu’un nouveau block est mis en cache
• Les blocks Les blocs ne se déplacent pas
réellement dans la mémoire centrale
• Une pile de pointeur est utilisée
Système d’Exploitation
Yann MORÈRE 2004
502/70
Le moins fréquemment
utilisé
• Le block qui a eu le moins de référence
est remplacé
• Un compteur est associé à chaque block
• Le compteur est incrémenté à chaque fois
qu’un block est accédé
• Certains blocks peuvent être référencé
plusieurs fois au cours d’une période
courte et ensuite plus utilisé du tout
Système d’Exploitation
Yann MORÈRE 2004
503/70
Remplacement basé sur la
fréquence
New Section
Old Section
...
MRU
Re-reference:
count unchanged
...
LRU
Re-reference:
count := count + 1
Miss (new block brought in)
count := 1
FIFO
New Section
MRU
...
Middle Section
Old Section
...
...
LRU
Use of three sections
Système d’Exploitation
Yann MORÈRE 2004
504/70
505/70
Structure E/S Unix
File Subsystem
Buffer
Character
Cache
Block
Device Drivers
Système d’Exploitation
Yann MORÈRE 2004
Gestionnaire E/S Windows
NT 4.0
I/O Manager
Cache
Manager
File System
Drivers
Network
Drivers
Hardware
Device Drivers
Système d’Exploitation
Yann MORÈRE 2004
506/70
Implantation de données
de disque
Sectors
Tracks
Inte r-sector gap
Inte r-track gap
Système d’Exploitation
Yann MORÈRE 2004
507/70
Implantation de données de
disque utilisant un vitesse
angulaire constante
Track 2, Sector 7
Système d’Exploitation
Track 0, Sector 0
Yann MORÈRE 2004
508/70
Gestion Fichier
Chapitre 12
510/70
Fichiers
• Utilisé pour l’entrée de données dans les
programmes
• Sorties des applications stockées dans les
fichiers pour un stockage à long terme
Système d’Exploitation
Yann MORÈRE 2004
Termes utilisés avec les
fichiers
• Champ
Élément de base d’une donnée
Caractérisé par le type de donnée et sa
longueur
• Enregistrement
collection de champs connexes
Traité comme un tout
• Exemple: l’enregistrement employé
Système d’Exploitation
Yann MORÈRE 2004
511/70
Termes utilisés avec les
fichiers
• fichier
collection d’enregistrement semblables
Traité comme une entité unique
Les noms de fichier sont uniques
Possibilité de restreindre l’accès
• Base de données
collection de données connexes
Des relations existent parmi les éléments
Système d’Exploitation
Yann MORÈRE 2004
512/70
Système de gestion de
fichier
• La manière dont l’utilisateur de
l’application accède au fichier
• Les programmeurs ne doivent pas avoir
besoin de développer un logiciel de
gestion de fichier
Système d’Exploitation
Yann MORÈRE 2004
513/70
Architecture d’un système
de gestion de fichier
User Program
Pile
Sequential
Indexed
Sequential
Indexed
Hashed
Logical I/O
Basic I/O Supervisor
Basic File System
Disk Device Driver
Système d’Exploitation
Tape Device Driver
Yann MORÈRE 2004
514/70
515/70
Pilotes de périphériques
• Le plus bas niveau
• Communique directement avec les
périphériques
• Responsable du démarrage des opérations
d’E/S sur un périphérique
• Traite l’accomplissement d’une requête
d’E/S
Système d’Exploitation
Yann MORÈRE 2004
516/70
Système de fichier de base
• E/S physique
• S’occupe de l’échange de blocks de
données
• Traite du placement des blocks
• Traite de la mise en tampon en mémoire
centrale des blocks
Système d’Exploitation
Yann MORÈRE 2004
517/70
Superviseur d’E/S de base
• Responsable du commencement et de la
fin d’une E/S fichier
• Les structures de contrôle sont mises à
jour
• Traite de l’ordonnancement des accès
pour optimiser la performance
• Partie du système d’exploitation
Système d’Exploitation
Yann MORÈRE 2004
518/70
E/S logique
• Permet aux utilisateurs et aux application
d’accéder aux enregistrements
• Met à jour les données basiques
concernant le fichier
Système d’Exploitation
Yann MORÈRE 2004
519/70
Méthode d’accès
• Reflète les différentes structures de
fichiers
• Différentes manières de stocker et traiter
les données
Système d’Exploitation
Yann MORÈRE 2004
Fonction de la gestion de
fichier
• Identifier et localiser un fichier sélectionné
• Utilisation d’un répertoire pour décrire
l’emplacement d’un groupe de fichier et leurs
attributs
• Sur un système partagé, il y a la description du
contrôle d’accès utilisateur
• Blocage de l’accès aux fichiers
• Allocation de blocks libres aux fichiers
• Gestion de l’espace libre pour les blocks
disponibles
Système d’Exploitation
Yann MORÈRE 2004
520/70
Critère pour l’organisation
de fichier
• Accès rapide
Nécessaire pour l’accès à un enregistrement
unique
Non nécessaire pour l’accès par lots
• Facilité de mise à jour
Les fichiers sur CD-rom ne seront pas mis à
jour, non concerné
Système d’Exploitation
Yann MORÈRE 2004
521/70
Critère pour l’organisation
de fichier
• Économie de stockage
La redondance doit être minimum dans les
données
La redondance peut être utilisée pour
accélérer l’accès, par exemple les indexes
• Maintenance simple
• Fiabilité
Système d’Exploitation
Yann MORÈRE 2004
522/70
523/70
Organisation des fichiers
• La pile
Les données sont collectées dans l’ordre ou elles
arrivent
Le but est d’accumuler une quantité de données et
de la sauvegarder
Les enregistrements peuvent avoir des champs
différents
Pas de structure
L’accès aux enregistrement est fait par une recherche
exhaustive
Système d’Exploitation
Yann MORÈRE 2004
524/70
Organisation des fichiers
La pile
Système d’Exploitation
Yann MORÈRE 2004
525/70
Organisation des fichiers
• Le fichier séquentiel
Les formats fixes sont utilisés pour les
enregistrements
Les enregistrements ont la même longueur
Tous les champs sont identiques (ordre et longueur)
Les noms des champs et leurs longueurs sont les
attributs du fichier
Un champs est la clé (champs clé)
• Identifie de manière unique l’enregistrement
• Les enregistrements sont stockés en séquence de clé
Système d’Exploitation
Yann MORÈRE 2004
526/70
Organisation des fichiers
• Le fichier séquentiel
Les nouveaux enregistrements sont placés
dans un fichier « log » ou dans un fichier de
transaction
Une mise à jour par lot est faite pour
fusionner le fichier log avec le fichier maître
Système d’Exploitation
Yann MORÈRE 2004
527/70
Organisation des fichiers
Le fichier séquentiel
Champ clé
Système d’Exploitation
Yann MORÈRE 2004
528/70
Organisation des fichiers
• Fichier séquentiel indexé
L’index fournit l'index d'une fournit des
possibilités de consultation pour atteindre
rapidement la proximité de l’enregistrement
désiré
• Contient un champ clé et un pointeur sur le fichier
• L’index est parcouru à la recherche de la clé la
plus grande qui soit égale ou inférieure à la valeur
désirée
• La recherche continue dans le fichier principal à
l ’endroit indiqué par le pointeur
Système d’Exploitation
Yann MORÈRE 2004
529/70
Organisation des fichiers
• Comparaison du procédé séquentiel et
séquentiel indexé
Exemple: un fichier contenant 1 million
d’enregistrement
En moyenne 500000 accès sont nécessaires pour
trouver un enregistrement dans un fichier séquentiel
Si un index contient 1000 entrées, cela prendra en
moyenne 500 accès pour retrouver la clé, puis 500
accès en moyenne dans le fichier principal, donc une
moyenne de 1000 accès.
Système d’Exploitation
Yann MORÈRE 2004
530/70
Organisation des fichiers
• Fichier séquentiel indexé
Les nouveaux enregistrements sont ajoutés à un
fichier de débordement
L’enregistrement dans le fichier principal qui le
précède est mis à jour pour contenir un pointeur vers
le nouvel enregistrement
Le fichier débordement est fusionné avec le fichier
principal pendant une mise à jour par lot
De multiples indexes pour le même champs clé peut
être créé pour augmenter l’efficacité
Système d’Exploitation
Yann MORÈRE 2004
531/70
Organisation des fichiers
Fichier séquentiel indexé
n
Index
Levels
2
1
Main File
Overflow
File
Système d’Exploitation
Yann MORÈRE 2004
532/70
Organisation des fichiers
• Fichier indexé
Utilise plusieurs indexes pour différents
champs clé
Peut contenir un index exhaustif qui contient
une entrée pour chaque entrée du fichier
principal
Peut contenir un index partiel
Système d’Exploitation
Yann MORÈRE 2004
533/70
Organisation des fichiers
Fichier indexé
Exhaustive
Index
Exhaustive
Index
Système d’Exploitation
Partial
Index
Yann MORÈRE 2004
534/70
Organisation des fichiers
• Fichier direct ou à table de hachage
Accès direct au block à une adresse connue
Champ clé requis pour chaque
enregistrement
Système d’Exploitation
Yann MORÈRE 2004
535/70
Organisation des fichiers
Fichier direct ou à table de hachage
Hash
Function
Key
f
Primary
File
Overflow
File
Système d’Exploitation
Yann MORÈRE 2004
536/70
Répertoires
• Contient des informations sur les fichiers
attributs
emplacement
propriétaire
• Le répertoire lui-même est un fichier dont
le propriétaire est le SE
• Fournit la correspondance entre les noms
de fichier des les fichiers eux-mêmes
Système d’Exploitation
Yann MORÈRE 2004
Structure simple pour un
répertoire
• Liste d’entrées, une pour chaque fichier
• Fichier séquentiel avec le nom de fichier
comme clé
• Ne fournit aucune aide dans l’organisation
de fichiers
• Force l’utilisateur à faire attention de na
pas utiliser un même nom pour deux
fichiers différent
Système d’Exploitation
Yann MORÈRE 2004
537/70
Schéma à 2 niveaux pour
un répertoire
• Un répertoire pour chaque utilisateur et un
répertoire maître
• Le répertoire maître contient une entrée pour
chaque utilisateur
Fournit les informations d’adresses et de contrôle
d’accès
• Chaque répertoire utilisateur est une simple liste
des fichiers pour cet utilisateur
• Ne fournit toujours pas d’aide dans la
structuration des collections de fichiers
Système d’Exploitation
Yann MORÈRE 2004
538/70
Répertoire à structure
hiérarchique ou structure
en arbre
• répertoire principal avec des répertoires
utilisateur sous lui
• Chaque répertoire utilisateur peut avoir
des sous répertoires et des fichiers
comme entrées
Système d’Exploitation
Yann MORÈRE 2004
539/70
540/70
Master Directory
System
User A
User B
User C
Exemple
Directory
“User A’
Directory “User B’
Directory
“User C”
Draw
Word
Directory “Word”
Directory “Draw”
Unit A
ABC
Directory “Unit A”
ABC
File
“ABC”
File
“ABC”
Pathname: /User B/Word/Unit A/ABC
Système d’Exploitation
Yann MORÈRE 2004
Répertoire à structure
hiérarchique ou structure
en arbre
• Les fichiers peuvent être retrouvés en
suivant le chemin (path) à partir de la
racine (root) vers les branches
C’est le chemin d’un fichier (pathname)
• On peut donc avoir des fichiers avec un
nom identique du moment qu’ils ont un
« pathname » différent
Système d’Exploitation
Yann MORÈRE 2004
541/70
Répertoire à structure
hiérarchique ou structure
en arbre
• Le répertoire courant est le répertoire de
travail
• Les fichiers sont aussi référencés
relativement au répertoire courant
Système d’Exploitation
Yann MORÈRE 2004
542/70
543/70
Partage de fichier
• Manière de contrôler l’accès à un fichier
particulier
• Des utilisateurs et des groupes
d’utilisateurs sont autorisés à avoir
certains droits sur le fichier
Système d’Exploitation
Yann MORÈRE 2004
544/70
Droits d’accès
• Aucun
L’utilisateur n’a pas connaissance de
l’existence du fichier
L’utilisateur n’est pas autorisé à lire le
répertoire utilisateur qui contient le fichier
• Connaissance
L’utilisateur peut seulement déterminer si le
fichier existe et qui est son propriétaire
Système d’Exploitation
Yann MORÈRE 2004
545/70
Droits d’accès
• Exécution
L’utilisateur peut charger et exécuter un programme
mais ne peut pas le copier
• Lecture
L’utilisateur peut lire le fichier dans n’importe quel
but, incluant la copie et l’exécution
• Ajout en fin
L’utilsateur peut ajouter des données au fichier mais
ne peut pas modifier ou effacer le contenu du fichier
Système d’Exploitation
Yann MORÈRE 2004
546/70
Droits d’accès
• Mise à jour
L’utilisateur peut modifier, effacé et ajouter des
données au fichier. Ceci inclut la création de fichier,
l’écrasement et l’effacement d’une partie ou de
toutes les données
• Changement de protection
L’utilisateur peut changer les droits d’accès donnés
par d’autres utilisateurs
• Effacement
L’utilisateur peut effacer le fichier
Système d’Exploitation
Yann MORÈRE 2004
547/70
Droits d’accès
• Propriétaires
Possèdent tous les droits décrits
précédemment
Peut donner des droits aux autres en utilisant
les classes suivantes d’utilisateurs
• Utilisateur spécifique
• Groupe d’utilisateur
• Tous pour les fichiers publics
Système d’Exploitation
Yann MORÈRE 2004
548/70
Accès simultané
• L’utilisateur peut bloquer le fichier
entièrement lorsqu’il doit être mis à jour
• L’utilisateur peut verrouiller des
enregistrements de manière individuelle
durant la mise à jour
• L’exclusion mutuelle et l’impasse
(deadlock) sont les issues pour l'accès
partagé
Système d’Exploitation
Yann MORÈRE 2004
Méthodes de verrouillage
d’enregistrement –
verrouillage fixe
R5
R6
R7
R8
549/70
Track 2
Data
Waste due to record fit to block size
Gaps due to hardware design
Waste due to block size constraint
from fixed record size
Waste due to block fit to track size
Système d’Exploitation
Yann MORÈRE 2004
Méthodes de verrouillage
d’enregistrement –
verrouillage variable :
Enjambé
R1
R6
R2
R7
R3
R8
R4
R9
R4
R9 R10
R5
550/70
R6
Track 1
R11 R12 R13
Track 2
Data
Waste due to record fit to block size
Gaps due to hardware design
Waste due to block size constraint
from fixed record size
Waste due to block fit to track size
Système d’Exploitation
Yann MORÈRE 2004
Méthodes de verrouillage
d’enregistrement –
verrouillage variable :
NonEnjambé
R1
R2
R6
R4
R3
R7
R8
Track 1
R5
R9
551/70
R10
Track 2
Data
Waste due to record fit to block size
Gaps due to hardware design
Waste due to block size constraint
from fixed record size
Waste due to block fit to track size
Système d’Exploitation
Yann MORÈRE 2004
Gestion du stockage
secondaire
• L’espace doit être alloué pour des fichiers
• Doit garder la trace de l’espace disponible
pour l’allocation
• L’espace est alloué par un ou plusieurs
unités ou portions contiguës
Système d’Exploitation
Yann MORÈRE 2004
552/70
553/70
Préallocation
• Nécessite la taille maximum pour le fichier
lors de sa création
• Difficile d’estimer de manière fiable la
taille maximum que fera le fichier
• Tend à surestimer la taille du fichier
Système d’Exploitation
Yann MORÈRE 2004
554/70
Taille de la portion
• La contiguïté de l’espace augmente les
performances
• Un grand nombre de petites portions
augmente la taille des tables nécessaires
• La taille fixe simplifie la réallocation de
l’espace
• Les tailles variables minimisent la perte de
place et d’espace inutilisé
Système d’Exploitation
Yann MORÈRE 2004
Méthodes d’allocation de
fichier
• Allocation contiguë
Un ensemble de block est alloué au fichier
lors de sa création
Une seule entrée dans la table d’allocation
des fichiers
• Block de départ et taille du fichier
• Apparition de fragmentation
• Cela va devenir difficile de trouver des
blocks contigus de longueur suffisant
Système d’Exploitation
Yann MORÈRE 2004
555/70
556/70
Allocation contiguë de fichiers
File Allocation Table
FileA
0
5
1
6
2
3
7
4
8
9
FileB
10
11
12
13
14
15
16
17
18
19
23
24
27
28
29
32
33
34
File Name
FileA
FileB
FileC
FileD
FileE
Start Block Length
2
9
18
30
26
FileC
20
21
22
FileE
25
26
FileD
30
31
Système d’Exploitation
Yann MORÈRE 2004
3
5
8
2
3
Méthodes d’allocation de
fichier
557/70
• Allocation chaînée
Allocation sur la base de block individuel
Chaque block contient un pointeur sur le prochain block
dans la chaîne
Une seule entrée dans la table d’allocation des fichiers
• Block de départ et taille du fichier
• Pas de fragmentation
• N’importe quel bloque libre peut être ajouté à la
chaîne
• Aucun principe de la localité
Système d’Exploitation
Yann MORÈRE 2004
558/70
Allocation chaînée de fichier
File Allocation Table
FileB
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Système d’Exploitation
File Name
...
FileB
...
Start Block Length
...
1
...
Yann MORÈRE 2004
...
5
...
Méthodes d’allocation de
fichier
• Allocation indexée
La table d’allocation des fichiers contient un
index séparé pour chaque fichier
L’index possède une entrée pour chaque
portion allouée du fichier
La table d’allocation des fichiers contient le
numéro de block pour l’index
Système d’Exploitation
Yann MORÈRE 2004
559/70
Allocation indexée avec potion de
block fixe
560/70
File Allocation Table
FileB
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Système d’Exploitation
File Name
...
FileB
...
Index Block
...
24
...
1
8
3
14
28
Yann MORÈRE 2004
Allocation indexée avec potion de
block à taille variable
561/70
File Allocation Table
FileB
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Système d’Exploitation
File Name
Index Block
...
...
FileC
...
24
...
Start Block
Length
1
28
14
3
4
1
Yann MORÈRE 2004
562/70
Gestion de fichier UNIX
• Les fichiers sont des flux d’octets
• Types de fichiers
ordinaire – contenu fournit par l’utilisateur ou
un programme
répertoire – contient la liste des fichiers et les
pointeur aux inodes (index nodes)
spécial – utilisé pour accéder aux
périphériques
nommé – tubes nommés
Système d’Exploitation
Yann MORÈRE 2004
Système de fichier
Windows NT
563/70
• Secteur – plus petite unité de stockage
sur le disque
• Cluster – un ou plusieurs secteurs
contigus
• Volume – partition logique d’un disque
Système d’Exploitation
Yann MORÈRE 2004
Disposition du Volume
NTFS
partition
boot
sector
Master File Table System
Files
Système d’Exploitation
File Area
Yann MORÈRE 2004
564/70
Composants Windows
NTFS
I/O Manager
Log the transaction
Log File
Log File
Service
Service Read/write
the file
Flush the Write the
log file
cache
NTFS Driver
Fault Tolerant
Driver
Disk Driver
Disk Driver
565/70
Read/write a
mirrored or
striped volume
Read/write
the disk
Cache
Cache
Manager
Manager
Load data from
disk into
me mory
Access the mapped
file or flush the cache
Virtual Memory
Virtual Memory
Manager
Manager
Système d’Exploitation
Yann MORÈRE 2004
Exécution Distribuée,
Client/Serveur et cluster
Chapitre 13
Traitement de données
distribuées
• Permet aux processeurs et aux données
d’être dispersées
• Fournit un système qui répond mieux aux
besoins des
• Minimise les coûts de communication en
comparaison avec une approche
centralisée
Système d’Exploitation
Yann MORÈRE 2004
567/70
Traitement de données
distribuées
• Ordinateurs personnels
La plupart des employés en a un
Application utilisateur simple (traitement de
texte, tableur, présentation)
• Mainframe
Base de données de la société
Logiciel compliqué pour la gestion de base de
données
Système d’Exploitation
Yann MORÈRE 2004
568/70
Architecture du protocole
TCP/IP
• Développée lors de la création du réseau
ARPANET
• 5 couches indépendantes
application
host-to-host
internet
Accès réseau
physique
Système d’Exploitation
Yann MORÈRE 2004
569/70
Architecture du protocole
TCP/IP
• Couche physique
Interface physique entre le matériel de
transmission de données et le réseau
Est concernée par les signaux, les données,
taux de transfert etc.
Système d’Exploitation
Yann MORÈRE 2004
570/70
Architecture du protocole
TCP/IP
• Couche d’accès au réseau
concerné par l'échange des données
Le logiciel utilisé dépend du type de réseau
Concerné par l’accès et le routage des
données à travers le réseau
Système d’Exploitation
Yann MORÈRE 2004
571/70
Architecture du protocole
TCP/IP
• Couche internet
Utilisée lorsque 2 périphériques sont
attachées à des réseaux différents
internet protocol (IP) est itilisé pour fournir la
fonction de routage
Les routeurs sont utilisés pour transférer des
données d’un réseau à un autre
Système d’Exploitation
Yann MORÈRE 2004
572/70
Architecture du protocole
TCP/IP
• Couche transport
Fournit la logique pour assurer que les
données échangée entre 2 machines (hôtes)
est livrée de manière fiable
Le protocole sur cette couche est le protocole
de transmission - transmission control
protocol (TCP)
Système d’Exploitation
Yann MORÈRE 2004
573/70
Architecture du protocole
TCP/IP
• Couche application
Contient les protocoles pour les applications
spécifiques utilisateur
Système d’Exploitation
Yann MORÈRE 2004
574/70
575/70
Opérations de TCP et d’IP
• TCP peut couper un block en morceaux
plus petits pour permettre la gestion
TCP ajoute des information sur chaque
morceau
• Port destination
• Numéro de séquence
• checksum
• TCP donne le message au protocole IP
avec les instructions d’envoi vers un hôte
Système d’Exploitation
Yann MORÈRE 2004
576/70
Opérations de TCP et d’IP
• IP passe le message à la couche d’accès réseau
avec les instructions de l’envoyer au routeur
• IP ajoute un entête d’information de contrôle
Maintenant c’est un datagramme IP
Adresse de l ’hôte destination
• La couche d’accès réseau ajoute une entête
d’information pour créer un paquet ou un trame
Système d’Exploitation
Yann MORÈRE 2004
Unités de donnée protocole
dans une archtecture TCP/IP
User data
TCP
Header
IP
Header
Application
Byte Stream
TCP
Segment
IP
Datagram
Network-Level
Packet
Network
Header
Système d’Exploitation
Yann MORÈRE 2004
577/70
578/70
Entête TCP
Bit: 0
10
4
16
20 Octets
Source Port
31
Destination Port
Sequence Numbe r
Acknowledge ment Numbe r
Header
Length
Unused
Flags
Checksum
Window
Urgent Pointe r
Options + Padding
Système d’Exploitation
Yann MORÈRE 2004
579/70
User Datagram Protocol (UDP)
• Service sans connexion
• Ne garantit pas la livraison
• Il ajoute un capacité d’adressage de port à IP
16
8 Octets
Bit: 0
31
Source Port
Destination Port
Segment Length
Checksum
Système d’Exploitation
Yann MORÈRE 2004
580/70
Application TCP/IP
• Simple Mail Transfer Protocol (SMTP)
Fournit les bases pour réaliser du courrier
electronique
Fournit les mécanismes de transfert de
message parmi des hôtes séparés
Inclut les mailing lists, reçus de retour, et
transfert
Système d’Exploitation
Yann MORÈRE 2004
581/70
Application TCP/IP
• File Transfer Protocol (FTP)
Utilisé pour transférer des fichiers d’un
système vers un autres par des commandes
utilisateurs
Permet l’utilisation de ID utilisateur et mots
de passe
Permet à l’utilisateur de spécifier le fichier et
les actions à réaliser sur ce fichier
Système d’Exploitation
Yann MORÈRE 2004
582/70
Application TCP/IP
• TELNET
Fournit un capacité de login à distance,
permet à un utilisateur de travailler sur une
machine distante à partir d’un terminal ou de
sa machine de bureau
Utilisation des fonctions comme si l’utilisateur
était directement sur la machine
Les terminaux distants apparaissent comme
locaux pour les applications
Système d’Exploitation
Yann MORÈRE 2004
Architecture du protocole
OSI
• Open Systems Interconnection
• Développé par le « International
Organization for Standardization » (ISO)
• Composé de 7 couches
• Les protocoles sont développés pour
réaliser des fonctions à chaque couche
Système d’Exploitation
Yann MORÈRE 2004
583/70
Couches du modèle OSI
Application
Presentation
Session
Transport
Network
Data Link
Physical
Système d’Exploitation
Yann MORÈRE 2004
584/70
585/70
Programmation Client/Serveur
• Les machines clientes sont souvent des PCs
mono-utilisateur ou des stations de travail avec
des interfaces graphiques ergonomiques pour
l’utilisateur
• Chaque serveur fournit un ensemble de services
utilisateur partagés pour les clients
• Le serveur permet à plusieurs client de partagé
l’accès à la même base de données et permet
l’utilisation d’un calculateur haute performance
pour la gestion de la base de données
Système d’Exploitation
Yann MORÈRE 2004
586/70
Programmation Client/Serveur
• Implique le découpage d’une application en
tâches et de mettre chaque tâche sur la plateforme la plus performante pour ce travail
• Traitement pour la présentation des résultats
sur la machine utilisateur
• Gestion et données et stockage sur un serveur
• Implique un réseau
Système d’Exploitation
Yann MORÈRE 2004
Environnement
client/serveur générique
Système d’Exploitation
Yann MORÈRE 2004
587/70
588/70
Applications Client/Serveur
• Les plates-formes et les SE du client et du
serveur peuvent être différent
• Ces différences ne sont pas pertinente du
moment que les client et le serveur
utilisent les mêmes protocoles de
communication et supportent les mêmes
applications
Système d’Exploitation
Yann MORÈRE 2004
589/70
Applications Client/Serveur
• Les fonctions actuelles réalisées par
l ’application peuvent être partagées entre le
client et le serveur
• Optimisation des ressources plate-forme et
réseau
• Optimisation de la capacité des utilisateurs à
réaliser des tâches variées
• Optimisation de la capacité à coopérer avec
d’autres en partageant des ressources
Système d’Exploitation
Yann MORÈRE 2004
590/70
Application base de données
• Le serveur est un serveur de base de
données
• Interaction entre le client et le serveur se
fait sous la forme de transaction
Le client fait une requête à la base de
données et reçoit les réponse de la base
• Le serveur a en charge la maintenance et
la mise à jour de la base de données
Système d’Exploitation
Yann MORÈRE 2004
Architecture Client/Serveur
Architecture pour
application base de
données
Client Workstation
Presentation Services
Application Logic
Server
Request
Database Logic
Communications
Software
Client
Operating System
Database Logic
Response
Protocol
Interaction
Communications
Software
Hardware Platform
Database Management
System
Server Operating System
Hardware Platform
Système d’Exploitation
Yann MORÈRE 2004
591/70
Classes d’applications
Client/Serveur
• Traitement basé hôte - Host-based
processing
Pas vraiment un traitement client/serveur
Environnement « mainframe » traditionnel
Client
Server
Presentation Logic
Application Logic
Database Logic
DBMS
Système d’Exploitation
Yann MORÈRE 2004
592/70
Classes d’applications
Client/Serveur
• Traitement basé serveur - Server-based
processing
Le serveur fait tout le traitement
La station de travail fournit uniquement une
Server
Client
présentation
convivial des interfaces
Presentation Logic
Application Logic
Database Logic
DBMS
Système d’Exploitation
Yann MORÈRE 2004
593/70
Classes d’applications
Client/Serveur
• Traitement basé client - Client-based
processing
Tout le traitement de l’application peut être
fait sur le client
Les routines de validation de données et les
autres fonctions logiques de
la base de
Server
Client
données sont faites sur le serveur
Presentation Logic
Application Logic
Database Logic
Database Logic
DBMS
Système d’Exploitation
Yann MORÈRE 2004
594/70
Classes d’applications
Client/Serveur
• Traitement Coopératif
Le traitement de l’application est réalisé d’une
manière optimisée
Complexe à réaliser et à maintenir
Client
Server
Presentation Logic
Application Logic
Application Logic
Database Logic
DBMS
Système d’Exploitation
Yann MORÈRE 2004
595/70
596/70
Uniformité du fichier de cache
• Les fichiers caches contiennent les
enregistrements des fichiers récemment accédés
• Les caches sont uniforme quand ils contiennent
l’exacte copie des données des fichiers distants
• Le verrouillage de fichiers empêche l’accès
simultané à un fichier
L’écriture oblige la mise à jour des caches serveur
Système d’Exploitation
Yann MORÈRE 2004
Logiciels personnalisés Middleware
• Ensemble d’outils qui fournissent un moyen
uniforme d’accéder aux ressources d’un système
quelle que soit la plate-forme
• Permet aux programmeurs de construire des
applications qui sont semblables dans leurs
utilisations et apparences
• Permet aux programmeurs d’utiliser la même
méthode pour accéder aux données
Système d’Exploitation
Yann MORÈRE 2004
597/70
Logiciels personnalisés Middleware
• Utilisation d’une interface standard de
programmation et de protocoles
• Il y a un composant serveur et un
composant client dans le « middleware »
• Fournit un accès uniforme à différents
systèmes
Système d’Exploitation
Yann MORÈRE 2004
598/70
Rôle du Middleware dans
une architecture
Client/Serveur
Client Workstation
Presentation Services
Application Logic
Middleware
Communications
Software
Client
Operating System
Server
Middleware
Interaction
Protocol
Interaction
Hardware Platform
Système d’Exploitation
Middleware
Communications
Software
Application
Services
Server Operating System
Hardware Platform
Yann MORÈRE 2004
599/70
600/70
Vue logique du Middleware
Application
Application
APIs
Middleware
(distributed system services)
Platform Interfaces
Platform:
OS
Hardware
Système d’Exploitation
Platform:
OS
Hardware
Yann MORÈRE 2004
Passage de message
distribué
• Le passage de message est utilisé pour la
communication entre les processus
• Message envoyés et reçus comme dans
un simple système OU
• Appel de Procédures à distance
Système d’Exploitation
Yann MORÈRE 2004
601/70
Primitives de base de
passage de message
602/70
Sending
Process
Receiving
Process
Message-passing
Module
Message-passing
Module
ProcessID
Message
Système d’Exploitation
Yann MORÈRE 2004
Message-orienté
Middleware
603/70
Système d’Exploitation
Yann MORÈRE 2004
Application
Message-oriented
Middleware
Transport
Application-specific
messages
Network
Network
Server
Transport
Message-oriented
Middleware
Application
Client
Appel de Procédure à
distance
• Permet aux programmes sur des
machines différentes d’interagir en
utilisant une sémantique simple
d’appel/retour de procédure
• Largement utilisé
• standardisé
Les modules client et serveur peuvent être
déplacé parmi les ordinateurs et les SE
facilement
Système d’Exploitation
Yann MORÈRE 2004
604/70
Mécanisme d’appel de
procédure à distance
Client
Client
Application
Application
Local
Response
605/70
Remote Server
Remote Server
Application
Application
Local
Response
Local
Response
Local
Procedure
Calls
Local
LocalApplication
Application
oror
Ope
Operating
ratingSystem
System
Local
LocalStub
Stub
RPC
RPC
Mechanism
Mechanism
Remote Procedure Call
Remote Procedure Call
Système d’Exploitation
Local
Procedure
Call
Local
LocalStub
Stub
RPC
RPC
Mechanism
Mechanism
Yann MORÈRE 2004
606/70
Liens Client/Serveur
• Les liens spécifient la relation entre la procédure
distante et le programme appelant
• Liens Non persistants
Connexion logique établie pendant l’appel de la
procédure distante
• Liens Persistants
La connexion est maintenue après le retour de la
procédure
Système d’Exploitation
Yann MORÈRE 2004
Remote Procedure Calls
(RPC)
Client
607/70
Server
RPC
Stub
Program
Système d’Exploitation
Transport
Application-specific
Procedure Invocations
and Returns
Network
Network
Application
Transport
Application
RPC
Stub
Program
Yann MORÈRE 2004
Object Request Broker
(ORB)
608/70
Client
Network
Transport
RPC
Stub
Program
Network
Object
Request
Broker
Application
Transport
Object Requests
and Responses
Network
Système d’Exploitation
Transport
Server
Object Requests
and Responses
Yann MORÈRE 2004
Object
Server
609/70
Clusters
• Alternative au « symmetric
multiprocessing » (SMP)
• Groupe d’ordinateurs interconnectés et
travaillant ensemble que l’on considère
comme une seule ressource de calcul
Illusion d’une seule machine
Le système peut fonctionner de lui même
Système d’Exploitation
Yann MORÈRE 2004
610/70
Clusters
• Serveur séparé
Chaque ordinateur est un serveur séparé
Pas de disques partagés
Nécessité d’un logiciel de gestion et
d’ordonnancement
Les données doivent être constamment
copiées dans les systèmes
Système d’Exploitation
Yann MORÈRE 2004
611/70
Clusters
Serveur sans disque partagé
P
P
P
P
High-Speed Message Link
M
I/O
I/O
I/O
Système d’Exploitation
I/O
Yann MORÈRE 2004
M
612/70
Clusters
• Rien en partage
réduit les temps de communication
Les serveurs sont connectés à des disques
communs
Les disques sont partitionnés en volumes
Chaque volume est possédé par un
ordinateur
Si un ordinateur tombe en panne un autre
reçoit le volume en possession
Système d’Exploitation
Yann MORÈRE 2004
613/70
Clusters
Disque partagé
High-Speed Message Link
P
M
P
I/O
I/O
I/O I/O
I/O
P
P
I/O
RAID
Système d’Exploitation
Yann MORÈRE 2004
M
614/70
Clusters
• Disque partagé
Plusieurs ordinateur partagent les même
disque en même temps
Chaque ordinateur a accès à tous les volumes
sur tous les disques
Système d’Exploitation
Yann MORÈRE 2004
615/70
Windows NT Wolfpack
• Wolfpack est le nom de code pour la
technologie Cluster
• Cluster ne partageant rien
• Les groupes combinent les ressources qui
peuvent être facilement gérées
• Les ressources sont implémentées comme
des DLLs dynamically linked libraries
Système d’Exploitation
Yann MORÈRE 2004
616/70
Windows NT Wolfpack
Cluster Management Tools
Cluster API DLL
RPC
Database
Manager
App
Resource
DLL
Global Update
Manager
Node
Manager
Event
Processor
Failover Mgr
Resource Mgr
Resource Monitors
Physical
Resource
DLL
Cluster
Service
Logical
Resource
DLL
Communication
Manager
Other
Nodes
Resource
Management
Interface
App
Resource
DLL
Non-aware
app
Cluster-aware
App
Système d’Exploitation
Yann MORÈRE 2004
617/70
Solaris MC
• Prototype de SE distribué construit
comme un ensemble d’extensions de
Solaris
• Fournit un cluster avec une image de
système unique
Système d’Exploitation
Yann MORÈRE 2004
618/70
Structure Solaris MC
Applications
System Call Interface
Network
Solaris MC
File System
Process
Object Invocations
C++
Object Frame work
Other
OtherNodes
Nodes
Existing Solaris 2.5 Kernel
Système d’Exploitation
Yann MORÈRE 2004
Gestion de processus
distribué
Chapitre 14
620/70
Migration de processus
• Déplacer un processus actif d’une
machine à une autre
• Le processus migre vers une machine
cible
• Transfert d’une quantité suffisante de
l’état d’un processus d’une machine à une
autre
Système d’Exploitation
Yann MORÈRE 2004
621/70
Pourquoi migrer?
• Partage de charge
Déplacement de processus de systèmes fortement
chargés vers des systèmes légèrement chargés
La charge peut alors être répartie pour permettre
une performance globale
• Performances des communications
Les processus qui interagissent intensivement
peuvent être déplacé sur le même nœud pour
réduire le coût de communication
Il peut être mieux de déplacer les processus à
l’endroit ou se trouvent les données quand elles
ont une taille conséquente
Système d’Exploitation
Yann MORÈRE 2004
622/70
Pourquoi migrer?
• disponibilité
Les processus très long peut être obliger de
bouger car la machine sur laquelle il s’exécute
va être arrêtée
• Utilisation de fonctionnalités spéciales
Un processus peut avoir des avantages à
utiliser un matériel ou logiciel spécifique
Système d’Exploitation
Yann MORÈRE 2004
623/70
Initiation de la Migration
• SE
Lorsque le but est la répartition de charge
• Processus
Lorsque le but est d’atteindre une ressources
particulière
Système d’Exploitation
Yann MORÈRE 2004
624/70
Qu’est ce qui est migré?
• Destruction du processus sur le système
source
• Le block de contrôle processus
(PCB=Process control block) et tous les
liens qui doivent être déplacés
Système d’Exploitation
Yann MORÈRE 2004
625/70
Qu’est ce qui est migré?
• Eager (tout):transfert complet de l’espace
s’adresse
Aucune trace du processus n’est laissée
Si l’espace d’adresse est grand, et si le
processus n’a pas besoin de tout, cette
procédure peut se révéler coûteuse
Système d’Exploitation
Yann MORÈRE 2004
626/70
Qu’est ce qui est migré?
• Precopy: le processus continue de
s’exécuter sur le nœud source pendant
que l’espace d’adresse est copié
Les pages modifiées sur la source pendant
l’opération de « precopy » doivent être copiée
dans un second temps
Réduit le temps pendant lequel un processus
est gelé et ne peut s’exécuter pendant la
migration
Système d’Exploitation
Yann MORÈRE 2004
627/70
Qu’est ce qui est migré?
• Eager (sale): transfert seulement de la partie
de l’espace d’adresse qui est en mémoire
centrale
Les blocks additionnels de l’espace d’adresse
virrtuel sont transféré sur demande
La machine source est impliquée dans la vie du
processus
Bon si le processus se déplace temporairement sur
une autre machine
Bon pour un thread si les autres threads laissés
ont besoin du même espace d’adresse
Système d’Exploitation
Yann MORÈRE 2004
628/70
Qu’est ce qui est migré?
• Copy-on-reference: les pages sont
déplacées seulement sur référencement
variation de « eager » (sale)
Possède la plus bas coût initial de migration
de processus
Système d’Exploitation
Yann MORÈRE 2004
629/70
Qu’est ce qui est migré?
• Flushing: les pages sont effacées de la
mémoire centrale en les transférant sur
disque
Utilisation plus tard de la stratégie « copy-onreference »
soulage la source de tenir toutes les pages du
processus émigré dans la mémoire centrale
Système d’Exploitation
Yann MORÈRE 2004
Négociation de migration
de processus
630/70
1: Will you take P?
Starter
Starter
2: Yes, migrate to machine 3
5: Offe r P
3: MigrateOut P
A
6: MigrateIn P
B
P
KJ
KJ
KJ
S
0
1
KJ
KJ
D
2
3
4
4: Offe r P
7: Accept offer
Système d’Exploitation
Yann MORÈRE 2004
631/70
États globaux distribués
• Le SE ne peut pas connaître l’état de tous les
processus dans un système distribué
• Un processus peut seulement connaître l’état
courant de tous les processus sur le système
local
• Les processus distants connaissent seulement
les informations reçues par messages
Ces mesages représentent l’état dans le passé
Système d’Exploitation
Yann MORÈRE 2004
632/70
Exemple
• Le compte bancaire est distribué sur 2
branches
• Le montant total dans le compte est la
somme de chaque branche
• A 15 heures, la valeur du compte est
déterminée
• Des messages sont envoyés pour
renseigner les informations
Système d’Exploitation
Yann MORÈRE 2004
633/70
Exemple
SA = $100.00
Branch A
SB = $0.00
Branch B
3:00
Total = $100.00
Système d’Exploitation
Yann MORÈRE 2004
634/70
Exemple
• Si au moment du calcul du montant, le
montant de la branche 1 est en transit
vers la branche B
• Le résultat est une fausse lecture
Système d’Exploitation
Yann MORÈRE 2004
635/70
Exemple
2:59
SA = $0.00
Branch A
msg = “Transfer $100
to Branch B”
Branch B
SB = $0.00
3:00
3:01
Total = $0.00
Système d’Exploitation
Yann MORÈRE 2004
636/70
Exemple
• Tous les messages en transit doivent être
examinés au moment de l’observation
• Le montant total consiste en les montants
de chaque branche et le montant du
message
Système d’Exploitation
Yann MORÈRE 2004
637/70
Exemple
• Si les deux horloges de chaque branches
ne sont pas parfaitement synchronisée
• Le transfert du montant de A à 15:01
• Le montant arrives en B à 14:59
• A 15:00, le montant est double
Système d’Exploitation
Yann MORÈRE 2004
638/70
Exemple
SA = $100.00
Branch A
3:00
3:01
msg = “Transfer $100
to Branch B”
Branch B
2:59
SB = $100.00
3:00
Total = $200.00
Système d’Exploitation
Yann MORÈRE 2004
Exemple d’Instantané
Process 1
Outgoing channels
2 sent 1,2,3,4,5,6
3 sent 1,2,3,4,5,6
Incoming channels
Process 3
Outgoing channels
2 sent 1,2,3,4,5,6,7,8
Incoming channels
1 received 1,2,3 stored 4,5,6
2 received 1,2,3 stored 4
4 received 1,2,3
Process 2
Outgoing channels
Process 4
3 sent 1,2,3,4
Outgoing channels
4 sent 1,2,3,4
3 sent 1,2,3
Incoming channels
1 received 1,2,3,4 stored 5,6 Incoming channels
2 received 1,2 stored 3,4
3 received 1,2,3,4,5,6,7,8
Système d’Exploitation
639/70
Yann MORÈRE 2004
640/70
Ordre d’évènements
• Les évènements doivent être ordonné
pour assurer l’exclusion mutuelle et eviter
les impasses
• Les horloges ne sont pas synchronisées
• Retard de communication
• L’information de l’état pour un processus
n’est pas à jour
Système d’Exploitation
Yann MORÈRE 2004
641/70
Ordre d’évènements
• Doit dire uniformément qu’un évènement
apparaît avant un autre
• Les messages sont envoyés quand on désire
entrer en section critique, et quand on quitte le
section critique
• Marquage Temps
Ordonne les évènements sur un système distribué
L’horloge système n’est pas utilisée
Système d’Exploitation
Yann MORÈRE 2004
642/70
Marquage temporel
• Chaque système sur le réseau mat à jour
un compteur qui fonctionne comme une
horloge
• Chaque site possède son identifiant
numérique
• Quand un message est reçu, le système
receveur incrémente son compteur et
stocke le marqueur temporel
Système d’Exploitation
Yann MORÈRE 2004
643/70
Marquage temporel
• Si deux messages possèdent le même marqueur
temporel, ils sont différencier par le numéro de
sites
• Pour que cette méthode fonctionne, chaque
message est envoyé d’un processus vers tous
les autres processus
Assure que tous les sites ont le même ordre de
messages
Pour l’exclusion mutuelle et l’impasse, tous les
processus doivent se rendre compte de la situation
Système d’Exploitation
Yann MORÈRE 2004
Algorithme de passage de
jeton
if not token_present then begin clock := clock + 1;
broadcast(Request, clock I);
wait(access, token);
token_present := True;
end
endif;
token_held := True:
<critical section>
Prelude
token(i) := clock;
token_head := False;
for j := i + 1 to n, 1 to i - 1 do
if (request(j) > token(J)) [Symbol]^token_present
then begin
token_present := False;
send(access, token(j))
end
endif;
Postlude
when received (Request, k, j) do
request(j) := max(request(j), k);
if token_present[Symbol]Ynot token_held then
<text of postlude>
endif
enddo;
644/70
Notation:
send(j, access, token)
send message of type access, with token, by process j
broadcast(request, clock, i) send message from process i of type request, with
timestamp clock, to all other processes
received(request, t, j)
receive message from process j of type request,
with timestamp t
Système d’Exploitation
Yann MORÈRE 2004
Algorithme de détection
d’impasse distribuée
{Date object Dj receiving a lock_request(Ti)}
begin
if Locked_by(Dj) = nil then send granted
else
begin
send not granted to Ti;
send Locked)by(Dj) to Ti
end
end.
{Transaction Ti makes a lock request for data object Dj}
begin
send lock_request(Ti) to Dj;
wait for granted/not granted;
if granted then
begin
Locked_by(Dj) := Ti;
Held_by(Ti) := φ
end
else {suppose Dj is being used by transaction Tj}
begin
Held_by(Ti) := Tj;
Enqueue(Ti, Request_Q(Tj));
if Wait_for(Tj) = nil then Wait_for(Ti) := Tj
else Wait_for(Ti) := Wait_for(Tj);
update(Wait)for(Ti), Request_Q(Ti))
end
end.
Système d’Exploitation
645/70
{Transaction Tj receiving update message}
begin
if Wait_for(Tj) ≠ Wait_for(Ti)
then Wait_for(Tj) := Wait_for(Ti);
if Wait_for(Tj) ∩ Request_Q(Tj) = nil
then update(Wait_for(Ti), Request_Q(Tj))
else
begin
DECLARE DEADLOCK;
{initiate deadlock resolution as follows}
{Tj is chosen as the transaction to be aborted}
{Tj releases all the data objects it holds}
send clear(Tj, Held_by(Tj));
allocate each data object Di held by Tj to the first
requester Tk in Request_Q(Tj);
for every transaction Tn in Request_Q(Tj) requesting
data object Di held by Tj do
Enqueue(Tn, Request_Q(Tk));
end
end.
{Transaction Tk receiving a clear(Tj, Tk) message
begin
purge the tuple having Tj as the requesting transaction
from Request_Q(Tk)
end.
Yann MORÈRE 2004
Exemple de l’algorithme de
détection d’impasse distribuée
646/70
T4
T0
T1
T2
T5
T3
T4
T0
T1
T2
T5
T3
T6
T6
Transaction
Wait_for
Held_by
Request_Q
Transaction
Wait_for
Held_by
Request_Q
T0
nil
nil
T1
T0
T0
T3
T1
T1
T0
T0
T2
T1
T0
T0
T2
T2
T0
T1
T3
T2
T0
T1
T3
T3
T0
T2
T4, T6
T3
T0
T2
T4, T6, T0
T4
T0
T3
T5
T4
T0
T3
T5
T5
T0
T4
nil
T5
T0
T4
nil
T6
T0
T3
nil
T6
T0
T3
nil
Système d’Exploitation
Yann MORÈRE 2004
Sécurité
Chapitre 15
648/70
Sécurité des ordinateurs
• Collection d’outils conçus pour
contrecarrez les intrus
• Devenu nécessaire avec l’introduction des
ordinateur
• Outils automatisé utilisé aujourd’hui
Système d’Exploitation
Yann MORÈRE 2004
649/70
Sécurité réseau
• Protection des données pendant le
transfert
• Incles les transmission téléphonique et les
réseaux locaux
Système d’Exploitation
Yann MORÈRE 2004
Moyens requis pour la
sécurité des ordinateurs et
des réseaux
• Secret
Les informations d’un ordinateur sont accessibles en
lecture pour des personnes autorisées seulement
• Intégrité
les systèmes informatiques peuvent être modifiés par
les parties autorisées seulement
• Disponibilité
les systèmes informatiques sont disponibles aux
parties autorisées
Système d’Exploitation
Yann MORÈRE 2004
650/70
651/70
Types de menaces
• Interruption
Un systèmes informatiques est détruit ou
devient indisponible ou non utilisable
Destruction du matériel
Ligne de communication coupée
invalider le système de gestion de fichier
Système d’Exploitation
Yann MORÈRE 2004
652/70
Types de menaces
• Interception
Un tiers non autorisé a accès à un sous
ensemble
écoute clandestine pour capturer des donnée
dans le réseau
Copie illicite de fichiers ou programmes
Système d’Exploitation
Yann MORÈRE 2004
653/70
Types de menaces
• Modification
Un tiers non autorisé ne possède pas seulement
l’accès, mais peut modifier un système informatique
Changer les valeurs dans un fichier de donnée
Modification d’un programme pour qu’il agisse
différemment
Modification de messages transmis dans le réseau
Système d’Exploitation
Yann MORÈRE 2004
654/70
Types de menaces
• Fabrication
Un tiers non autorisé introduit des objets
contrefaits dans le système
Insertion de faux messages dans le réseau
Ajout d’enregistrements dans un fichier
Système d’Exploitation
Yann MORÈRE 2004
655/70
Système informatique
• Matériel
Les menaces incluent les dommages
accidentels ou délibérés
• Logiciel
Les menaces incluent l’effacement,
l’altération, dommages
les sauvegardes des versions les plus
récentes peuvent permettre une disponibilité
élevée
Système d’Exploitation
Yann MORÈRE 2004
656/70
Système informatique
• Données
Implique les fichiers
Les menaces impliquent la lecture non
autorisée des données
l'analyse statistique peut mener à la
détermination de l'information individuelle qui
menace l'intimité
Système d’Exploitation
Yann MORÈRE 2004
657/70
Système informatique
• Lignes de communication et réseaux
Les menaces incluent écoute clandestine et la
surveillance
une conversation de téléphone, un message de
courrier électronique, et un fichier transféré sont
sujets à ces menaces
Le cryptage masque le contenu de ce qui est
transféré, de manière que même si l’information est
obtenue, il ne soit pas possible de la décoder
Système d’Exploitation
Yann MORÈRE 2004
658/70
Système informatique
• Lignes de communication et réseaux
La masquage (masquerading) apparaît lorsqu’une
entité prétend être une autre entité
La modification de flux de message signifie qu’une
portion du message original est altéré, retardé ou
réordonné
Le « deny » de service empêche l’utilisation ou la
gestion normale des moyens de communications
• Réseau désactivé ou surchargé avec des messages
Système d’Exploitation
Yann MORÈRE 2004
659/70
Protection
• Pas de protection
Les procédures sensibles sont lancées à des
moments différents
• Isolement
Chaque processus opère séparément des
autres sans partage ni communication
Système d’Exploitation
Yann MORÈRE 2004
660/70
Protection
• Partager tout ou rien
Le propriétaire d’un objet le déclare public ou
privé
• Partage via limitation d’accès
Le SE vérifie les permissions de chaque accès
par un utilisateur spécifique vers un objet
spécifique
Le SE opère comme un gardien
Système d’Exploitation
Yann MORÈRE 2004
661/70
Protection
• Partage via capacités dynamiques
La création dynamique de droits de partage
pour les objets
• Utilisation limitée d’un objet
Limitation non seulement de l’accès à l’objet
mais aussi de l’usage dont va être fait l’objet
Exemple: un utilisateur peut determiner des
résumés statistiques mais ne pas déterminer
des valeurs spécifiques de données
Système d’Exploitation
Yann MORÈRE 2004
662/70
Protection de la mémoire
• Sécurité
• Assure le fonctionnement correct des
différents processus s’exécutant
Système d’Exploitation
Yann MORÈRE 2004
Contrôle d’accès orienté
utilisateur
• Log on
Nécessite un identifiant utilisateur (ID) et un mot
de passe
Le système autorise seulement les utilisateurs si
l’ID est connu et le mot de passe associé est
correct
Les utilisateurs peuvent révéler aux autres leurs
mots de passe de manière intentionnelle ou
accidentelle
les « hackers »intrus sont habiles à deviner des
mots de passe
Le fichier ID/password peut être obtenu
Système d’Exploitation
Yann MORÈRE 2004
663/70
Contrôle d’accès orienté
données
• Associé avec chaque utilisateur, il peut y
avoir un profil utilisateur qui spécifie les
opérations permises et les accès au fichier
• Le SE renforce ces règles
• Pour chaque objet, une liste de contrôle
d’accès donnes les droits des utilisateurs
et les accès permis
Système d’Exploitation
Yann MORÈRE 2004
664/70
665/70
Attaques d’intrus
• Problème réel et grandissant
• Globalisation
• Migration vers des architectures client/serveur
Les compagnies ont généralement des données clé
sur les mainframes ou PCs qu’il est facile de garder
• Évolution rapide de l’apprentissage des hackers
Les pirates partagent les informations
Système d’Exploitation
Yann MORÈRE 2004
Technique d’apprentissage
de mot de passe
• Test des mots de passe par défaut utilisé par les
comptes standards livré avec les ordinateurs
• Test exhaustif des mots de passe courts
• Test des mots d’un dictionnaire ou d’une liste de
mots connus
• Cllecte d’information à propos des utilisateurs et
utilisation de ces infos dans les mot de passe
Système d’Exploitation
Yann MORÈRE 2004
666/70
Technique d’apprentissage
de mot de passe
• Test des numéros de téléphones de
utilisateurs, numéro de sécurité sociale,
numéro de chambre…
• Numéros de permis
• Utilisation d’un trojan pour passer les
restrictions d’accès
• Dériver une ligne entre un utilisateur
distant et un système hôte
Système d’Exploitation
Yann MORÈRE 2004
667/70
668/70
ID fournit la sécurité
• Détermine si l'utilisateur est autorisé à accéder à
un système
• Détermine les privilèges accordés à l'utilisateur
l'invité ou les comptes anonymes ont des privilèges
limités rapport à d’autres
• ID est utilisé pour le contrôle d'accès discrét
un utilisateur peut accorder la permission aux fichiers
à d'autres par ID
Système d’Exploitation
Yann MORÈRE 2004
Stratégies de sélection de
mot de passe
• Mots de passe générés par ordinateur
Les utilisateurs ont des difficultés à se
souvenir de ces mots de passe
Besoin de l’écrire
Connu pour n’être pas bien accepté
• Éliminez les mots de passe que l’on peut
deviner tout en permettant à l'utilisateur
de choisir un mot de passe qu’il peut
retenir
Système d’Exploitation
Yann MORÈRE 2004
669/70
Stratégies de sélection de
mot de passe
• Stratégie réactive de contrôle de mot de passe
Le système lance sont propre programme de
crackage de mot de passe pour trouver les mot de
passe facile
Le système efface les mots de passe facile et
prévient l’utilisateur
Consommation de ressources pour cela
Les hackers peuvent utiliser cela sur leur propre
machine avec une copie du fichier de mot de passe
Système d’Exploitation
Yann MORÈRE 2004
670/70
Stratégies de sélection de
mot de passe
• Contrôle proactif de mot de passe
Le système contrôle le mot de passe au
moment de la sélection pour savoir s’il est
acceptable
En étant guidé par le système, les utilisateurs
peuvent sélectionner des mots de passe qu’ils
retiendront et difficile à deviner
Système d’Exploitation
Yann MORÈRE 2004
671/70
672/70
Détection d’intrusion
• Suppose que le comportement d’un intrus
diffère de celui d’un utilisateur légitime
• Détection statistique d’anomalie
Collecte des données des comportements des
utilisateurs légitimes sur une période de temps
Des tests statistiques sont utilisés pour déterminer si
le comportement est un comportement illégitime
essaie de définir la normale, ou le comportement
prévu
Système d’Exploitation
Yann MORÈRE 2004
673/70
Détection d’intrusion
• Détection à base de règles
Les règles sont développées pour détecter
des déviations à partir des usages précédents
Les systèmes experts recherchent es
comportements suspects
tentative de définir le comportement
approprié
Système d’Exploitation
Yann MORÈRE 2004
674/70
Détection d’intrusion
• Enregistrement d’audit
Enregistrement d’audit natif
• tous les systèmes d'exploitation incluent le logiciel de log qui
rassemble l'information sur l'activité d'utilisateur
Enregistrement d’audit spécifique à la détection
• on peut mettre en application une collection de services qui
produit des enregistrements d’audit contenant seulement
l’information exigée par le système de détection d'intrusion
Système d’Exploitation
Yann MORÈRE 2004
675/70
Virus et autres menaces
• Ceux qui ont besoin d’un programme hôte
Fragments de programme qui ne peuvent
exister indépendamment d’un autre
programme d’application, utilitaire ou
programme système
• Indépendant
Programme complet qui peut être
ordonnancé et lancé par le SE
Système d’Exploitation
Yann MORÈRE 2004
Taxonomie des programme
malicieux
Malicious
Malicious
Programs
Programs
Needs
NeedsHost
Host
Program
Program
Trapdoors
Trapdoors
Logic
LogicBombs
Bombs
Trojan
TrojanHorses
Horses
Independent
Independent
Viruses
Viruses
Bacteria
Bacteria
Worms
Worms
Replicate
Système d’Exploitation
Yann MORÈRE 2004
676/70
677/70
Trapdoor
• Point d’entrée dans un programme qui
permet à la personne au courant de cette
« trapdoor » d’obtenir un accès
• Utilisé par les programmeurs pour tester
et degugger les programmes
Évite la configuration et l’authentification
Méthode pour activer un programme s’il
l’authentification se passe mal
Système d’Exploitation
Yann MORÈRE 2004
678/70
Bombe logique
• Codez contenu dans un programme
légitime qui est prévu pour « exploser »
lorsque certaines conditions sont
rencontrées
présence ou absence de certains fichiers
jour particulier de la semaine
Utilisateur particulier lance l’application
Système d’Exploitation
Yann MORÈRE 2004
679/70
Cheval de Troie
• Programme utile qui contient le code
caché qui une fois appelé exécute une
certaine fonction non désiré ou nocive
• peut être utilisé pour accomplir les
fonctions indirectement qu'un utilisateur
non autorisé ne pourrait pas accomplir
directement
l'utilisateur peut placer la permission de
fichier ainsi chacun a accès
Système d’Exploitation
Yann MORÈRE 2004
680/70
Virus
• Programme qui peut « infecter » d’autres
programmes en les modifiant
La modification incluse la copie du
programme virus
Le programme infecté peut infecter d’autres
programmes
Système d’Exploitation
Yann MORÈRE 2004
681/70
Vers
• Utilise les connexions réseau pour s’étendre
de système en système
• Service de courrier électronique
Un ver « mail » une copie de lui-même aux autres
systèmes
• Capacité d’exécution à distance
Un ver exécute une copie de lui-même sur un autre
système
• Capacité de procédure de connexion à
distance
Un ver se logge sur un système distant comme un
utilisateur et utilise les commandes pour se copier d’un
système à un autre
Système d’Exploitation
Yann MORÈRE 2004
682/70
Bactérie
• Le but est de se reproduire
• Reproduction exponentielle
Prend toute la capacité processeur
Prend toute la capacité mémoire
Prend toute la capacité disque
Empêche aux utilisateurs l’accès aux
ressources
Système d’Exploitation
Yann MORÈRE 2004
683/70
Étapes d’un Virus
• Phase dormante
le virus est de veille
• Phase de propagation
le virus place une copie identique de luimême dans d'autres programmes ou dans
certaines zones de système sur le disque
Système d’Exploitation
Yann MORÈRE 2004
684/70
Étapes d’un Virus
• Phase de déclenchement
le virus est lancé pour exécuter la fonction
pour laquelle on l'a destiné
causé par une variété d'événements système
• Phase d’exécution
la fonction est exécutée
Système d’Exploitation
Yann MORÈRE 2004
685/70
Types de Virus
• Parasite
S’attache à des exécutables et se réplique
quand on exécute le programme infecté, il
recherche d'autres exécutables à infecter
• Résident mémoire
loge dans la mémoire centrale en tant
qu'élément d'un programme système résident
une fois dans la mémoire, il infecte chaque
programme qui s’exécute
Système d’Exploitation
Yann MORÈRE 2004
686/70
Types of Virus
• Secteur Boot
Infecte le secteur boot
Se lance quand le système est amorcé à
partir du disque contenant le virus
• Stealth
Conçu pour éviter les détections par les
antivirus
Peut utiliser la compression
Système d’Exploitation
Yann MORÈRE 2004
687/70
Types of Virus
• Polymorphique
Subit une mutation avec chaque infection,
rendant la détection par la « signature » du
virus impossible
crée ses copies de lui même qui sont
fonctionellement équivalentes mais qui ont
des configurations binaires distinctes
Système d’Exploitation
Yann MORÈRE 2004
688/70
Approches antivirus
• Première génération
Le scanner identifie le virus par sa signature
Un virus possède la même structure et la
même configuration binaires dans toutes les
copies
Maintient un enregistrement de la longueur
du programme et recherche les modifications
de longueur
Système d’Exploitation
Yann MORÈRE 2004
689/70
Approches antivirus
• Seconde génération
Utilise les règles heuristiques pour rechercher
une probable infection virale
Recherche des fragments de code qui sont
souvent associés aux virus
Système d’Exploitation
Yann MORÈRE 2004
690/70
Approches antivirus
• Troisième génération
Programmes résident mémoire qui identifie le
virus par ses actions plutôt que par sa
structure
Intervient lorsque les actions surviennent
Système d’Exploitation
Yann MORÈRE 2004
691/70
Approches antivirus
• Quatrième génération
se compose d'une variété de techniques
d'antivirus utilisées en conjonction
Système d’Exploitation
Yann MORÈRE 2004
692/70
Systèmes de confiance
• Sécurité multi niveau
Informations organisées en catégories
Pas de lecture vers le haut
• Seulement des objets en lecture d’un niveau égal
ou inférieur au niveau de sécurité
Pas d’écriture vers le bas
• Seulement écriture d’objets d’un niveau de
sécurité égal ou supérieur
Système d’Exploitation
Yann MORÈRE 2004
Concept de Moniteur de
Référence
Audit
File
Subjects
Reference
Monitor
(Policy)
Objects
Security Kernel
Database
Système d’Exploitation
Yann MORÈRE 2004
693/70
Emplacements potentiels pour
des attaques de sécurité
694/70
• Tous les liens de communications
Insertion et capture de transmission
Observation de transmission
• Matériel
modifications
Gain d’un accès
Surveillance des rayonnements
électromagnétiques
Système d’Exploitation
Yann MORÈRE 2004
Emplacement des
dispositifs de chiffrement
• Lien de communication
• Le message doit être crypté tout le temps
• L’utilisateur n’a pas de contrôle sur la
sécurité des nœuds publics
Système d’Exploitation
Yann MORÈRE 2004
695/70
Chiffrement à travers un
réseau de commutation par
paquets
PSN
PSN
PSN
PSN
= end-to-end encryption device
= link encryption device
PSN = packet switching node
Système d’Exploitation
Yann MORÈRE 2004
696/70
697/70
Distribution de clé
• Fournit une clé à deux parties qui souhaitent
échanger des données
on ne permet à aucun autre de voir la clé
• La clé a pu être choisie par A et être
physiquement fournie à B
• Un tiers a pu physiquement fournir les clés
• Chiffrez une nouvelle clé avec le vieille clé et
transmettez la nouvelle clé
• Un tiers a pu fournir une clé sur des liens
chiffrés
Système d’Exploitation
Yann MORÈRE 2004
698/70
Clés
• Clé de session
toutes les données d'utilisateur sont chiffrées
avec une clé jetable de session
• Clé permanente
Utilisé entre deux entités dans le but de
distribuer des clés de sessions
Système d’Exploitation
Yann MORÈRE 2004
699/70
Sécurité Windows NT
• Schéma de contrôle d’accès
nom/mot de passe
Jeton d’accus associé avec chaque objet de
processus, indiquant les privilèges associés à
un utilisateur
Descripteur de sécurité
• Liste de contrôle d’accès
• Utilisée pour comparer avec la liste de contrôle
d’accès pour les objet
Système d’Exploitation
Yann MORÈRE 2004
700/70
Jeton d’accès
Security ID (SID)
Group SIDs
Privileges
Default Owner
Default ACL
Système d’Exploitation
Yann MORÈRE 2004
701/70
Descripteur de sécurité
Flags
Owner
System Access Control List
(SACL)
Discretionary Access Control
List (DACL)
Système d’Exploitation
Yann MORÈRE 2004
702/70
Liste de contrôle d’accès
ACL Header
ACE Header
Access Mask
SID
ACE Header
Access Mask
SID
.
.
.
Système d’Exploitation
Yann MORÈRE 2004
703/70
Masque d’accès
Generic
Access Types
Delete
Read Control
Write DAC
Write Owner
Synchronize
Standard
Access Types
Specific Access Types
Access System Security
Maximum allowed
Generic All
Generic Execute
Generic Write
Generic Read
Système d’Exploitation
Yann MORÈRE 2004
Téléchargement