Iset Siliana
Systéme
d’exploitation 1
 TI11-16
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
IsetSiliana
CHaabani Nizar
1
PLAN du COURS
I.
II.
III.
IV.
V.
VI.
Chapitre 1: Introduction
Chapitre 2: Gestion de Processus
Chapitre 3: Gestion de la mémoire physique
Chapitre 4: Gestion de la mémoire virtuelle
Chapitre 5: Gestion des entrées-sorties
Chapitre 6: Gestion des fichiers
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
IsetSiliana
CHaabani Nizar
2
Chapitre 1: Introduction
 C’est quoi un OS?
 Grands Systèmes
 Systèmes Personnels
 Systèmes Multiprocesseurs
 Systèmes Distribués
 Systèmes Temps Réel
 Systèmes “à la main”
 Historique des OSs et des Concepts
 Architecture pour les systèmes
IsetSiliana
CHaabani Nizar
3
C’est quoi un OS?
 Programme intermédiaire entre l’utilisateur d’un
ordinateur et le matériel
 But d’un OS:
 Exécuter les programmes des utilisateurs
 Rendre l’ordinateur (système informatique) facile
à utiliser
 Exploiter le système informatique d’une manière
efficace
IsetSiliana
CHaabani Nizar
4
Quelques mots sur les systèmes d’exploitation
Définition
Un système d'exploitation (SE; en anglais: OS =
operating system) est un ensemble de programmes de
gestion du système qui permet de gérer les éléments
fondamentaux de l'ordinateur:
Le matériel - les logiciels - la mémoire - les données –
les réseaux.
• Typiquement, un Système d'Exploitation est composé
 d'un noyau ;
 de bibliothèques dynamiques ;
 d'un ensemble d'outils système ;
 de programmes applicatifs de base.
IsetSiliana
CHaabani Nizar
5
Le système d’exploitation
Le noyau
IsetSiliana
CHaabani Nizar
6
Le système d’exploitation
Le noyau
gestion des périphériques (au moyen de pilotes)
• gestion des processus :
 attribution de la mémoire à chaque processus
 ordonnancement des processus (répartition du temps
d’exécution sur le ou les processeurs)
 synchronisation et communication entre processus
(services de synchronisation, d’échange de messages,
mise en commun de segments de mémoire, etc.)
• gestion des fichiers (au moyen de systèmes de fichiers)
• gestion des protocoles réseau (TCP/IP, IPX, etc.)
IsetSiliana
CHaabani Nizar
7
Le système d’exploitation
Autres composantes de l’OS
• Les bibliothèques dynamiques regroupent les opérations
les plus utilisées dans les programmes informatiques
– éviter la redondance de ces opérations dans tous les
programmes
– certains systèmes ne proposent pas de bibliothèques
dynamiques
• Les outils système permettent :
– de configurer le système
– de passer le relais aux applications proposant des services à un
ou plusieurs utilisateurs ou à d'autres ordinateurs
• Les programmes applicatifs de base offrent des services à
l'utilisateur (calculatrice, éditeur de texte, navigateur web,
etc.)
IsetSiliana
CHaabani Nizar
8
Petit retour historique
• 1ère génération (1945-1955)
– Tubes à vides
– Tableaux d’interrupteurs, cartes perforées
• 2ème génération (1955-1965)
– Transistors
– Traitements par lots
• 3ème génération (1965-1980)
– Circuits intégrés
– Mini-ordinateurs, faible rapport qualité/prix
• 4ème génération (1980-aujourd’hui)
– Microprocesseurs (circuits intégrés
IsetSiliana
CHaabani Nizar
9
Système d’exploitation (SE)
 Fournit l’interface usager/machine:
 Masque les détails du matériel aux applications
 Le SE doit donc traiter ces détails
 Contrôle l’exécution des applications
 Le fait en reprenant périodiquement le contrôle de
l’UCT
 Dit à l’UCT quand exécuter tel programme
 Il doit optimiser l’utilisation des ressources pour
maximiser la performance du système
IsetSiliana
CHaabani Nizar
10
Différents niveaux d’un Système
IsetSiliana
CHaabani Nizar
11
Kernel Mode vs. User Mode
Kernel mode:
• Mode de fonctionnement
du S.E
 – Acces complet et total a
toutes les ressources
materielle
 Execute n’importe qu’elle
instruction que la machine
peut executer
IsetSiliana
CHaabani Nizar
User Mode
 Mode de
fonctionnement de
tous
les programmes
 Une partie seulement
des instructions sont
accessibles
 Les instructions qui
affectent les I/O sont
inaccessibles
12
Fonctions d’un système
d’exploitation
 Gestion de la mémoire
 Gestion des systèmes de fichiers
 Gestion des processus
 Mécanismes de synchronisation
 Gestion des périphériques
 Gestion du réseau
 Gestion de la sécurité.
IsetSiliana
CHaabani Nizar
13
Vue abstraite d’un SE
IsetSiliana
CHaabani Nizar
14
Ressources et leur gestion
 Ressources:
 physiques: mémoire, unités E/S, UCT...
 Logiques = virtuelles: fichiers et bases de données
partagés, canaux de communication logiques,
virtuels...
 les ressources logiques sont bâties par le logiciel sur les
ressources physiques
 Allocation de ressources: gestion de ressources, leur
affectation aux usagers qui les demandent, suivant
certains critères
IsetSiliana
CHaabani Nizar
15
Évolution historique des SE
 Le début: routines d’E/S, amorçage système
 Systèmes par lots simples
 Systèmes par lots multiprogrammés
 Systèmes à partage de temps
 Ordinateurs personnels
 SE en réseau
 SE répartis
 Les fonctionnalités des systèmes simples se retrouvent dans les
systèmes complexes.
 Les problèmes et solutions qui sont utilisés dans les systèmes
simples se retrouvent souvent dans les systèmes complexes.
IsetSiliana
CHaabani Nizar
16
Systèmes de traitement par lots (batch) simples
Sont les premiers SE (mi-50)
 L’usager soumet un job (ex: sur cartes perforées) à un
opérateur
 L’opérateur place un lot de plusieurs jobs sur le
dispositif de lecture
 Un programme, le moniteur, gère l'exécution de
chaque programme du lot
 Le moniteur est toujours en mémoire et prêt à être
exécuté
 Les utilitaires du moniteur sont chargés au besoin
 Un seul programme à la fois en mémoire, et les
programmes sont exécutés en séquence
 La sortie est normalement sur un fichier, imprimante,
ruban magnétique…
IsetSiliana
CHaabani Nizar
17
Schéma Mémoire d’un Système de Traîtement par lots
IsetSiliana
CHaabani Nizar
18
Systèmes Batch Multiprogrammés
Plusieurs tâches sont simultanément en mémoire, et le CPU est
multiplexé entre elles; si une doit attendre une E/S, une autre tâche est
choisie
IsetSiliana
CHaabani Nizar
19
Systèmes à Temps Partagé
 Sert pour le pilotage et le contrôle des déroulements
externes (p.ex. centrale électrique)
 doit garantir des temps de réactions données pour des
signaux extérieur urgents
 plusieurs systèmes d'exploitations n'y arrivent pas car
l'interruption de certaines activités met le système dans
un état instable
IsetSiliana
CHaabani Nizar
20
Systèmes Personnels
 Ordinateurs Personnels – Systèmes dédiés à un seul
utilisateur
 Périphériques d’E/S – clavier, souris, écrans,
imprimante, ….
 Convivialité et interactivité avec l’utilisateur
 Peuvent tourner différents types d’OS (Windows,
MacOS, UNIX, Linux)
IsetSiliana
CHaabani Nizar
21
Systèmes Parallèles
 Systèmes avec plusieurs CPUs en communication
 Aussi connus comme systèmes multiprocesseurs
 Systèmes fortement couplés – processeurs partagent la
mémoire et l’horloge; communication a lieu via la
mémoire partagée
 Avantages des systèmes parallèles:
 Augmentation de la capacité de traitement
 Economiques
 Tolérance aux pannes
IsetSiliana
CHaabani Nizar
22
Systèmes Répartis
 Répartir la computation sur plusieurs processeurs
physiques
 Systèmes faiblement couplés – chaque processeur possède
sa propre mémoire; les processeurs communiquent entre
eux via des lignes de communication, tels des bus, des
lignes de téléphone, des réseaux, etc …
 Avantages des systèmes répartis
 Partage des ressources
 Puissance de computation plus grande – Partage de charge
 Tolérance aux pannes
 Communications
IsetSiliana
CHaabani Nizar
23
Systèmes Répartis (cont)
 Requière une infrastructure réseau
 Réseaux Locaux (LAN) ou Réseaux Large Echelle
(WAN)
 Peuvent être des systèmes client-serveur ou peer-topeer
IsetSiliana
CHaabani Nizar
24
Structure Générale d’un ClientServeur
IsetSiliana
CHaabani Nizar
25
Systèmes Temps Réel
 Souvent utilisés dans des
environnements spécialisés, tels les
expérimentations scientifiques,
l’imagerie médicale, les systèmes de
contrôle industriels, …
 Contraintes de temps bien définies
 Systèmes temps réel souples ou rigides
IsetSiliana
CHaabani Nizar
26
Systèmes “à la main”
 Personal Digital Assistants (PDAs)
 Téléphones Mobiles
 Contraintes:
 Mémoire limitée
 Processeurs lents
 Ecrans d’affichage petits
IsetSiliana
CHaabani Nizar
27
Introduction au système d’exploitation
(Ex : MS-DOS).
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
IsetSiliana
CHaabani Nizar
28
Exemples :
Système
Mono-utilisateur
DOS
X
WIN9X
X
Multi-utilisateur
Mono-Tâche
Multi-Tâche
X
X
WIN NT\2000
X
X
Unix
X
X
Mac \ OS X
X
X
IsetSiliana
CHaabani Nizar
29
Organisation de fichiers et répertoires
Organisation basée sur le concept
d'arbres : " \ " racine de' l'arborescence correspondant
à un disque (C: ou A:)
Repertoire1
fichier1
R2
fichier2
R5
R3
R4
R6
R7
..
R8
.
fichier3
IsetSiliana
CHaabani Nizar
30
IsetSiliana
CHaabani Nizar
31
Introduction au système MS-DOS
(MicroSoft Disk Operating System)
Le DOS, comme tout système d'exploitation, contrôle les activités de
l'ordinateur. Il gère des opérations telles que la circulation, l'affichage, et
l'entrée de données entre les divers éléments constitutifs du système.
Le rôle du DOS est d'interpréter les commandes saisies au clavier par
l'utilisateur.
Ces commandes permettent d'effectuer les tâches suivantes:
IsetSiliana
•la gestion des fichiers et des répertoires.
•la configuration du matériel.
•l'optimisation de la mémoire.
•l'exécution des programmes.
•…
CHaabani Nizar
32
Les fichiers sous MS-DOS
Sous MS-DOS chaque fichier peut être aussi volumineux que possible,
cependant le nom que vous lui donnez est soumis à des restrictions, on ne peut
en effet lui donner un nom d'une longueur maximale de 8 caractères plus 3 pour
l'extension.
De plus, les fichiers ne doivent contenir que les caractères suivants:
•lettres de A à Z
•chiffres de 0 à 9
•caractères spéciaux suivants: _ ^ $ ~ ! # % & - { } ( ) @ '
Enfin, les noms de fichiers ne doivent pas contenir:
IsetSiliana
•de blanc (espace).
•de virgule.
•de barre oblique inverse.
•de point (hormis le point qui sépare le nom de l'extension).
CHaabani Nizar
33
Les fichiers sous MS-DOS
et ils ne doivent pas non plus appartenir à la liste de noms
réservés:
CLOCK$ CON
LPT1 LPT2
LPT3
NUL
AUX
COM1
COM2
COM3 COM4
PRN
Sous MS-DOS, les noms de ces répertoires sont soumis aux
mêmes restrictions de longueur que les fichiers (8 caractères pour
le nom).
IsetSiliana
CHaabani Nizar
34
Quelques commandes MS-DOS
Rôle : Afficher le contenu d'un répertoire
La commande " DIR " fait la liste des fichiers
correspondant aux spécifications précisées par
l ’argument de la commande et donne quelques
renseignements sur les fichiers.
Remarque : Si on veut afficher la liste des fichiers
dont l ’extension est « .txt », on envoie la commande :
C:\DIR *.txt
IsetSiliana
CHaabani Nizar
35
IsetSiliana
Quelques commandes MS-DOS
Rôle : Créer un répertoire
La commande MKDIR (MaKe DIRectory)
peut être abrégée en MD.
Il suffit de taper :
C:\MD Nom du répertoire
CHaabani Nizar
36
IsetSiliana
Quelques commandes MS-DOS
Rôle : Effacer un répertoire
La commande RMDIR (ReMove DIRectory)
peut être abrégée en RD.
C:\RD Nom du Répertoire
Rôle : Changer de répertoire
La commande "CD" ou encore "CHDIR"
permet de passer d'un répertoire à
l'autre (CD pour Change Directory)
C:\cd Nom du Répertoire
CHaabani Nizar
37
Quelques commandes MS-DOS
Rôle : copier un ou une liste de fichiers
Syntaxe : COPY [fichier départ] [fichier
destinataire]
Il faut passer en premier argument le nom du
fichier à copier, et en deuxième argument le
nom que nous voulons donner à la copie.
IsetSiliana
CHaabani Nizar
38
Quelques commandes MS-DOS
Exemple : Pour copier « fichier1.txt » dans le
sous répertoire « R2 » en lui donnant un
nouveau nom copie1.txt.
" \ " racine de' l'arborescence correspondant
Répertoire
courant
IsetSiliana
à un disque (C: ou A:)
Repertoire1
fichier1
fichier2
R2
R5
R3
R4
R6
R7
R8
fichier3
CHaabani Nizar
39
Quelques commandes MS-DOS
Rôle : Renommer un fichier
• La commande RENAME peut être abrégée
en REN
• Exemple :
C:\ren fichier1.txt
IsetSiliana
CHaabani Nizar
surnom.txt
40
IsetSiliana
Quelques commandes MS-DOS
Rôle : Supprimer un fichier
Elle sert à détruire un fichier ou une liste de
fichier. On lui donne comme argument le nom
d ’un fichier (et éventuellement son extension)
ou bien les spécifications d ’une liste de fichiers
à l ’aide des caractères « ? » ou « * ».
Il est possible de supprimer tous les fichiers d ’un
répertoire en une seule fois : ERASE *.*
Exemple:
C:\erase Nom de fichier
CHaabani Nizar
41
Quelques commandes MS-DOS
dir
liste le contenu d'un répertoire
cd
change de répertoire
cd ..
répertoire parent
md ou mkdir
crée un nouveau répertoire
deltree
supprime un répertoire, ainsi que l'ensemble de ses sous-répertoires.
copy, xcopy
copie de fichier
move
déplacement de fichier
del
supprime le fichier
help
aide sur la commande demandée
format
formate le lecteur demandé
ver
donne le numéro de version
IsetSiliana
CHaabani Nizar
42
IsetSiliana
IsetSiliana
CHaabani
Nizar
CHaabani
Nizar
4343
La commande EXECUTER
Commandes DOS et WINDOWS
 MsConfig
 CleanMGR (Nettoyage de disque)
 RegEdit
 CONF (NetMeeting)
 SysEdit
 DxDiag (DirectX Diagnostics)
 MsInfo32
 HelpCtr (Centre d’aide)
 MMC
 IcwConn1 (Assistant connexion)
 WinMSD
 Magnify (Utilisation de la loupe)
 Ping
 MstSc (Assistant de bureau à distance)
 IpConfig
 Wab (Carnet d’adresse Outlook Express)
 MsMsgs
 Sfc (Intégrité des fichiers « système »
 Perfmon
 Winver (N° version Windows)
 Charmap (table des caractères
IsetSiliana
CHaabani Nizar
44
Ordinateur
Un ordinateur est une machine électronique
qui permet l'exécution des programmes
 Un programme est un ensemble d'instructions qui
seront traduites en signaux électriques
 La sortie de ces programmes est convertie à nouveau
pour que l'utilisateur puisse la comprendre
 Un ordinateur est composé au moins de :
 processeur, carte mère;
 mémoire vive;
 mémoires de masse;
 périphériques
IsetSiliana
CHaabani Nizar
45
Principes de fonctionnement
Ordinateur

IsetSiliana
Unité centrale
de traitement
Unité de contrôle
ou
Unité de commande
Mémoire
Cache
Unité arithmétique
et logique
ou
Unité de traitement
ou
Unité de calcul
Instructions
Mémoire centrale
ou principale
Données
Unités d’entrée/sortie
ou d’I/O
Contrôleur de
périphériques
CHaabani Nizar
Carte
réseau
46
Bus de données
CPU
Mémoire
Centrale
Unité
d ’E/S
Périphériques
IsetSiliana
Autre représentation
Bus d ’adresses
Bus de contrôle
CHaabani Nizar
47
Principes de fonctionnement CPU
Mémoire centrale

IsetSiliana
Reg Adr Reg Mot
résultats
adresse
mot
instruction mémoire
PC ou CO
RI
Horloge
Décodeur
Unité de
commande
Séquenceur
État
Unité de
calcul
Unité arithmétique
et logique
opérandes
Registres
résultat
CHaabani Nizar
48
Chap. I I
GESTION DES PROCESSUS et
THREADS
Partie 1. La GESTION DES PROCESSUS
 Un SE tourne en permanence après son démarrage avec l’ordinateur
IsetSiliana
 il permet le développement et l’exécution de nouveaux
programmes
 Description le fonctionnement d’un SE

Concept fondamental : La décomposition !

Le SE fait tourner les programmes utilisateurs sur le
processeur

Abstraction du processeur ?  Introduire la notion de
Processus
CHaabani Nizar
49
IsetSiliana
CHaabani Nizar
50
IsetSiliana
CHaabani Nizar
51
Processus et terminologie
(aussi appelé job, task, user program)
Concept de processus: un programme en exécution
Possède des ressources de mémoire, périphériques, etc
Ordonnancement de processus
Opérations sur les processus
Processus coopérants
Processus communicants
IsetSiliana
CHaabani Nizar
52
1. Notion de Processus
 Qu’est-ce qu’un programme ?
 Ensemble de modules sources/objets
 Résultat de l'édition de liens (actions manipulant des données)
Description Statique (Code + données)
 Que désigne le terme processeur ?
 Entité matérielle capable d'exécuter des instructions
 ‘’parfois ’’ aussi entité logicielle (interpréteur, ...)
 Qu’est-ce qu’un processus ?
 Entité dynamique représentant l’exécution d’un programme sur un
processeur
 créée à un instant donné, a un état qui évolue au cours du temps et
qui disparaît, en général, au bout d’un temps fini

Début
Etat
Temps t
Fin
Un programme est une suite d'instructions (un objet statique).
• Un processus est un programme en exécution et son contexte (un objet dynamique).
IsetSiliana
CHaabani Nizar
53
Notion de Processus (suite)
 Définition technique: un processus est l’abstraction du SE pour
 l’allocation de la MC (code, données, pile)  espace d’adressage
 l’allocation du processeur (CO, …)
 Intérêt de la notion de processus
 Abstraction de la notion d'exécution séquentielle
 Représentation des activités parallèles et de leurs interactions –unité
de structuration
 Exemples de processus :
 L'exécution d’un programme
 Copie d’un fichier sur disque
 la transmission d ’une séquence de données sur un réseau
IsetSiliana
CHaabani Nizar
54
2. Parallélisme et Concurrence
 Soient deux processus P1 et P2 en mémoire centrale (prêts à s’exécuter)
 Mise en œuvre concrète de l’exécution de P1 et P2 :
P1
P2
P1
P2
Exécution séquentielle
(1 processeur)
Exécution parallèle
(2 processeurs)
P2
P1
Exécution concurrente
(1 processeur)
Système
T
IsetSiliana
CHaabani Nizar
55
Parallélisme et Concurrence (2)

Multiprogrammation / Pseudo-parallélisme :
 Un SE doit, en général, traiter plusieurs processus en même temps
 Il y a un seul processeur (la plupart du temps)

Entrelacement des exécutions (simuler une exécution parallèle)

A tout moment le SE ne traite qu’un seul processus à la fois

La commutation étant très rapide

Les processus utilisateurs sont lancés par un interprète de commandes.

Ils peuvent eux-mêmes lancer ensuite d’autres processus
P1
Hiérarchie des processus
(arborescence)
P2
Fils : processus créés
Père : processus créateur
P3
P4
P5
 Au lancement du système, il n’existe qu’un seul processus : l'ancêtre de tous
IsetSiliana
CHaabani Nizar
56
3. Processus en Mémoire Centrale
 L'état de la mémoire centrale associé à un processus est défini par le
contenu de 3 segments (le code, la pile et les données) et d’un contexte.
 Segment code -- Lecture seulement
 Contient les instructions
 Invariant (toute la durée d'exécution du processus).
 Segment données -- Lecture/Ecriture
 Contient les variables globales + données statiques
(Constantes), qui sont initialisées à la compilation
 Pile d'exécution -- Lecture/Ecriture
 Un programme est constitué d’un ensemble de fonctions
(procédures) qui s'échangent d ’informations
 Contient les variables échangées + variables locales
 File d’attente gérée selon LIFO
IsetSiliana
CHaabani Nizar
Pile
d’exécution
Données
Code
Les segments
d’un processus
57
4. Notion de Ressources -- Contexte du Processeur
 Contexte du processeur:
Hypothèses : 1 seul processeur + plusieurs
processus le processeur est réservé à l’usage
d’un seul processus
Contexte = Contenu des registres
adressables/spécialisés -- Mot d'état (PSW Program Status Word )
 Etat d'exécution
: Actif/Attente
 Mode de fonctionnement : Superviseur/utilisateur
 Masque d’interruption
 Contexte accessible en mémoire
IsetSiliana
CHaabani Nizar
58
Contexte d’exécution d’un processus
Etat courant du processus
 Code du programme exécuté
 Données statiques et dynamiques
 Informations qui caractérisent l’état dynamique
du processus





Compteur de programme (PC / CO)
Etat des registres
Liste des fichiers ouverts
Variables d’environnement
Image mémoire (état de l’espace d’adressage)
 À sauvegarder lorsque le processus est commuté
 À restaurer lorsque le processus reprend la main
IsetSiliana
CHaabani Nizar
59
Ordonnanceur UCT
Dans un système multitâches, le système
d'exploitation doit gérer l'allocation du processeur
aux processus. On parle d'ordonnancement des
processus
IsetSiliana
CHaabani Nizar
60
État de processus
IMPORTANT
 Au fur et a mesure qu’un processus exécute, il change d’état
 nouveau: le processus vient d’être créé
 exécutant-running: le processus est en train d ’être exécuté par
une UCT
 attente-waiting: le processus est en train d ’attendre un
événement (p.ex. la fin d’une opération d’E/S)
 prêt-ready: le processus est en attente d’être exécuté par une UCT
 terminated: fin d’exécution
IsetSiliana
CHaabani Nizar
61
5. Contexte d’un Processus (1)
 Quand un processus n’est pas en exécution, son état doit
être sauvegarde dans son descripteur associé.
Exécuter
processus
Changer
Etat
Sauvegarder
Etat
 Qu’est-ce qu’on sauvegarde? Le contexte du processus (info. nécessaires à la gestion
des processus)
PID
Contexte du
processus
CO
Contexte du
processeur
Info.
d’ordonnancem
ent
Info.
Complem. +
divers
Masque d’It
Contexte accessible
Allocation
mémoire
BCP
(Process Control Block)
IsetSiliana
Etat
d’exécution
Mode de
fonctionnement
Contexte de processus
CHaabani Nizar
CO
PSW
6
2
62
Contexte d’un Processus (2)
 Contexte d’un processus: ensemble de paramètres regroupés dans les
segments du programme en cours d'exécution (code + données)
 Le SE détient une table, contenant la liste de tous les processus
 chaque entrée conserve le descripteur de processus, appelé Bloc de
Contrôle de processus –BCP ((Process Control Block)
 BCP : structure de données associée à l'exécution
de chaque programme Représente la situation actuelle d ’un
processus
IsetSiliana
CHaabani Nizar
63
6. Etat d’un Processus
 Commutation des taches (passage d ’une tache à une autre) est
réalisé par un ordonnanceur (dispatcher/short term scheduler)
Nouveau
processus
PRET
Commutatio
n
It -- Tps
dépassé
E/S
terminées
BLOQUE
Terminaison
ACTIF
Demande
d’E/S
Attente
 3 états d’un processus : actif, prêt, bloqué
 actif  bloqué = action volontaire (lecture sur disque)
 bloque  prêt = action extérieure au processus (ressource disponible)
 prêt  actif = Décision de l’allocateur du processeur
IsetSiliana
CHaabani Nizar
64
Le multithreading
En fait, chaque processus peut lui-même fonctionner
comme le système d'exploitation en lançant des soustâches internes au processus
 Ces sous-tâches sont nommées "flux d'exécution"
"processus légers "ou Threads.
IsetSiliana
CHaabani Nizar
65
Trait de Texte ultithreaded
Absbjshd
Absbjshd
Absbjshd
Dnddjkjdq
Dnddjkjdq
Dnddjkjdq
HqdjlqdjlHqdjlqdjlHqdjlqdjl
JddmkmJddmkmJddmkm
Djdlqjdjdq
Djdlqjdjdq
Djdlqjdjdq
djdqkmkd
djdqkmkd
djdqkmkd
clavier
Disque
noyau
Thread 1: remet en forme le document
Thread 2: interaction avec l’utilisateur
Thread 3: écrit périodiquement le contenu de la RAM sur le disque
IsetSiliana
CHaabani Nizar
66
Différences et similitudes entre
threads et processus :
 La communication entre les threads est plus
rapide que la communication entre les
processus.
 Les Threads possèdent les mêmes états que les
processus.
 Deux processus peuvent travailler sur une même
donnée (un tableau par exemple) en lecture et en
écriture dans une situation de concurrence de
Deux processus  il en est de même pour les
threads.
IsetSiliana
CHaabani Nizar
67
7. Mécanisme de Commutation (1)
 pointeur: les PCBs sont rangés dans des listes
enchaînées (à voir)
 état de processus: ready, running, waiting…
 compteur programme: le processus doit reprendre à l
’instruction suivante
 autres registres UCT
 bornes de mémoire
 fichiers qu’il a ouvert
 etc., v. manuel
IsetSiliana
CHaabani Nizar
68
Mécanisme de Commutation (2)
 Commutation de processus = commutation des
contextes de processus
 Quand l’UCT passe de l’exécution d ’un processus 0
à l ’exécution d`un proc 1, il faut mettre à jour et
sauvegarder le PCB de 0
 reprendre le PCB de 1, qui avait été sauvegardé avant
remettre les registres d ’UCT tels que le compteur
d ’instructions etc. dans la même situation qui est décrite
dans le PCB de 1
IsetSiliana
CHaabani Nizar
69
IsetSiliana
Mécanisme de Commutation (3) -- Schéma
CHaabani Nizar IsetSiliana
CHaabani Nizar
70
70
8. Relations entre Processus (1) -- Compétition
 Il existe entre les processus un certain nombre de relations,
appelées INTERACTIONS;
 ces interactions peuvent être de compétition ou de coopération s
 Compétition
 Situation dans laquelle plusieurs processus doivent utiliser
simultanément une ressource à accès exclusif (1 seul processus à
la fois), encore appelée ressource critique.
 Exp.
IsetSiliana


L ’usage du processeur (pseudo-parallélisme)
Accès à un périphérique (imprimante)
 2 processus en compétition sont dits en exclusion mutuelle
pour cette ressource.
 Une solution possible : Faire attendre les processeurs demandeurs que
l ’occupant actuel ait fini (FIFO)
P1
R
Ressource
Critique
CHaabani Nizar
P2
Ordre d’utilisation : Indifférent
P1; P2 ou P2; P1
71
Relations entre Processus (2) -- Coopération
 Coopération
 Situation dans laquelle plusieurs processus collaborent à une
tache commune et doivent se synchroniser pour réaliser
cette tache.
 Deux processus qui coopèrent peuvent également se trouver
en exclusion mutuelle pour une ressource commune.
P2 imprime
le fichier F
P1 produit
un fichier F
F
P2 ne peut s'exécuter que si:
P1 a terminé son exécution
P1 < P2
 Synchronisation
 Un processus doit attendre qu’un autre processus ait franchi un certain point
de son exécution point de synchronisation
 Imposer des contraintes de synchronisation aux processus
 Précédence des processus
 Conditions de franchissement de certains points critiques
IsetSiliana
CHaabani Nizar
72
Relations entre Processus (3) -- Faire Attendre un Processus
 Relations entre deux processus
í Faire attendre un processus
Solution 1: attente active
P1
while (ressouce occupee)
occupee = True;
{ };
P2
Ressource
Utiliser Ressource;
Ressource occupee = True;
occupee = False;
....
Ressource
 Très peu économique si pseudo-parallélisme
 Difficulté d’une solution correcte (chap. Suivant)
 Solution 2 : Blocage du Processus
IsetSiliana
 Processus bloqué : attente d ’une ressource non disponible jusqu’a son réveil
explicite par un autre processus
Blocage
Arrêter l'exécution
ACTIF
BLOQUE
Réveil
Reprendre exécution
CHaabani Nizar
73
9. Conditions d'Exécution Concurrente (1)
 Augmenter le degré de multi-programmation et donc
IsetSiliana
le taux d’utilisation du processeur ?
 Etablir les contraintes de précédence (relation <)
 Construire un graphe de précédence : graphe acyclique
où
chaque nœud, Si, représente une instruction
 chaque arc SiSj signifie que l ’instruction Sj ne pourra
s'exécuter que si Si ait terminée son exécution.

 Exemple : Soit la séquence d ’instructions suivante :
S1
S2
S1
lire(x)
S2
lire(y)
S3
S3
z=x*y
S4
écrire(z)
S4
CHaabani Nizar
74
Iset Siliana
IsetSiliana
CHaabani Nizar
75
IsetSiliana
Chap. I I
GESTION DES PROCESSUS et
THREADS
Partie 2. ORDONNANCEMENT DES PROCESSUS
1. Introduction
2. Types d’ordonnancement
3. Modèle simple d'ordonnancement
4. Politiques d’ordonnancement
 Organisations des files d’attente
 Ordonnancement FCFS / SJF/ RR/ priorité/ SRTF/ Multiniveaux
5. Hiérarchie d’ordonnancement
CHaabani Nizar
76
1. Introduction -- Généralités
 Le SE permet 2 types de décisions sur le processeur :
 Ordonnancement des processus : L’ordonnanceur (scheduler) choisit quel est le
processus qui doit tourner
 Problème: Dans quel ordre les processus sont servis?; par exemple, un
processeur et plusieurs processus.
 Allocation du processeur : l’allocateur (dispatcher) lance l’exécution du processus
choisi par le scheduler
 Ordonnanceur -- Scheduler
 Objectif :
Sur un intervalle de temps assez grand, faire progresser tous les processus, tout en
ayant, à un instant donné, un seul processus actif (dans le processeur).
 Rôle : Prendre en charge la commutation de processus, qui règle les transitions
d’un état à un autre des différents processus.
IsetSiliana
CHaabani Nizar
77
Types d’ordonnancement
Il existe différentes politiques d'allocation :
- avec ou sans priorité
sans : premier arrivé premier servi (first come, first
served : FCFS)
avec :
• la priorité peut être fixe ou dynamique
• il peut y avoir préemption, ou non
IsetSiliana
CHaabani Nizar
79
3. Modèle Simple d’Ordonnancement
 Représentation de l’ordonnancement des processus
Terminaison
File des processus prêts
Scheduler dispatch
UC
File d’attente E/S
E/S
Demande E/S
Tranche de temps expirée
exit
Fils s’exécute
Interruption
IsetSiliana
CHaabani Nizar
Fork un fils
Attente It
80
4. Politique d’Ordonnancement – Organisations des FAs
 H : Un seul processeur + plusieurs processus
 Une file d’attente, soit FA, des processus prêts
 Principe de chaînage d’une FA : avant/ arrière/ mixte
 Plusieurs processus sont mis dans une FA, et le service demandé
IsetSiliana
leur est fourni tour à tour, en fonction de critères de gestion
spécifiques à la FA.
Réquisition
File d’attente des prêts
Arrivée
Scheduler= Ordi
UC
Service
satisfait
Sortie
Dispatcher =
allocateur
Gère la FA : Arrivée des processus et Gère l’allocation du processeur,
leur placement
il peut réquisitionner
CHaabani Nizar
81
4. Politiques d’ordonnancement – Algorithmes sans
préemption (sans réquisition) (FCFS, SJF, Priorité) (1)
 Algorithme FCFS (First Come First Served) -- Premier Arrivé Premier Servi
 Un processus s'exécute jusqu'à sa terminaison, sans retrait forcé de la ressource.
 Modèle adapté au partage du processeur par des processus de même priorité (aucun privilège entre les
processus)
 Avec les algorithmes d'ordonnancement sans réquisition, un processus affecté au processeur ne peut pas
être interrompu.
 Facile à implanter, mais peu efficace (le choix n’est pas lié à l’utilisation de l’UC)
 Exemple
Processus Durée estimée Date d’arrivée
P1
24
0
P2
P3
P4
8
12
3
1
2
3
 Schématiser l’exécution des processus selon leur ordre d'arrivée. Pour cela, on utilise le DIAGRAMME
DE GANTT
P1
0
P2
24
P3
32
P4
44
47
Temps de vie des processus
 Temps de traitement moyen = [(24 - 0) + (32 - 1) + (44 -2) + (47 -3)]/4 = 35,25
IsetSiliana
CHaabani Nizar
82
4. Politiques d’ordonnancement – Algorithmes sans
préemption (FCFS, SJF, Priorité) (2)
 Algorithme SJF -- Shortest Job First (STCF -- Shortest Time to Completion First)
: Algorithme du ’’Plus Court d’Abord ’’ :
 Suppose la connaissance des temps d'exécution : estimation de la durée de
chaque processus en attente
 Les processus sont disponibles simultanément
préemption)
 Exécuter le processus le plus court
ë
Algorithme optimal (sans
ë
Minimise le temps moyen d'exécution
 Dans le cas où plusieurs processus possèdent la même durée, la politique FCFS
sera alors utilisée.
IsetSiliana
CHaabani Nizar
83
4. Politiques d’ordonnancement – Algorithmes sans
préemption (FCFS, SJF, Priorité) (2)
 Le principe de cet algorithme consiste à attribuer à chaque
processus une valeur qui indique sa priorité.
 Le processeur est alloué au processus de plus haute priorité.
 Un classement possible des processus est donné comme suit
(des processus les plus prioritaires aux processus les moins
prioritaires) :
1. Processus système.
2. Processus interactifs.
3. Processus batch.
4. Processus utilisateurs.
 L'ordonnancement avec priorité sans réquisition peut engendrer
un problème de famine puisque les processus de faible priorité
risquent d'attendre indéfiniment.
IsetSiliana
CHaabani Nizar
84
4. Politiques d’ordonnancement – Algorithmes avec
préemption (Priorité, RR, SRTF) (1)
 L'idée de la réquisition est d'interrompre un processus en cours d'exécution à
n'importe quel moment.
 A chaque processus est assignée (automatiquement par le SE /externe) une priorité
 Assignation statique -- priorités fixes
ë
facile à implanter
 Assignation dynamique : la priorité initiale assignée à un processus peut être ajustée à
d ’autres valeurs ë difficile à implanter
 Pb. de famine : un processus de faible priorité peut ne jamais s'exécuter si des processus
plus prioritaires se présentent constamment
Recalculer périodiquement le numéro de priorité des processus (plusieurs FA) ë la
priorité d’un processus décroît (croit) au cours du temps pour ne pas bloquer les autres
FA
 Principe : On lance le processus ayant la plus grande priorité
IsetSiliana

Algorithme d’ordonnancement à classes de priorité
CHaabani Nizar
85
IsetSiliana
CHaabani Nizar
86
IsetSiliana
CHaabani Nizar
87
IsetSiliana
CHaabani Nizar
88
IsetSiliana
CHaabani Nizar
89
IsetSiliana
CHaabani Nizar
90
IsetSiliana
CHaabani Nizar
91
4. Politiques d’ordonnancement – Algorithmes avec
préemption (Priorité, RR, SRTF) (1)
IsetSiliana
Algorithme d’ordonnancement à classes de priorité
CHaabani Nizar
92
4. Politiques d’ordonnancement – Algorithmes avec préemption (Round
Robin, Priorité, SRTF) (2)
 L'idée de la réquisition est d'interrompre un processus en cours d'exécution à
n'importe quel moment.
 Algorithme tourniquet -- RR : l’un des algorithmes les plus utilises et des plus fiables
 Ordonnancement selon l’ordre FCFS ë Equitable
 Chaque processus possède un quantum de temps pendant lequel il s’exécute
 Lorsqu’un processus épuise son quantum de temps : au suivant !
 S’il n’a pas fini : le processus passe en queue du tourniquet et au suivant !
 Exemple : Le quantum de temps, Q, est égale à 2 unités; quel est le temps de traitement
moyen?
P2
(4 unités)
Exécution
CPU
P1
(3 unités)
Q
Q
Q
Q
Q
P8
(2 unités)
Q
Q
P7
(4 unités)
IsetSiliana
P3
(2 unités)
CHaabani Nizar
Q
P4
(3 unités)
P5
(3 unités)
P6
(5 unités)
93
Algorithme Tourniquet -- Round Robin (suite)
P1 P2
0
2
P3
4
P4
6
P5
8
P6
10 12
P7
P8
14
P1
16
P2
P4
17 19
P5
20 21
P6
P7
23
P6
25 26 Temps de vie
Diagramme de Gantt (Q=2 unités)
 Temps de traitement moyen =
[(17-0) + (19-1) + (6-2) + (20-3) + (21-4) + (26-5) + (25-6) + (16-7)] /8 = 15,25
 Problème = réglage du quantum (petit/grand; fixe/variable; est-il le même pour tous les processus ?)
 Les quanta égaux rendent les différents processus égaux
 Quantum trop petit provoque trop de commutations de processus
 Le changement de contexte devient coûteux (perte de temps CPU)
 Quantum trop grand : augmentation du temps de réponse d’une commande (même simple)
 RR dégénère vers FCFS
 Réglage correct : varie d’un système (resp. d’une charge) à un autre et d’un processus à un autre
 Il existe d ’autres variantes de RR, telle que RR avec priorités
IsetSiliana
CHaabani Nizar
94
 Le système de gestion possède n FA à différents niveaux de priorités (+ différents quanta)
Algorithme Tourniquet avec priorités
-
FA n-1 (Q n1)
Arrivée
FA1
(Q1)
FA 0
(Q 0)
Réquisition
CPU
Q 0  Q 1  Q 2  ...
 Q n-1
Terminaison
+
Priorité
Scheduler
Dispatcher
 A son arrivée, le processus est rangé dans la FA la plus prioritaire FA0
 Si un processus dans FAi épuise son quantum de temps Qi (0  i  n-2), il sera placé dans la FAi+1 (moins
prioritaire)
 Une FAi (0 < i  n-1) ne peut être servie que si toutes les FAj (0  j< i) sont vides
 un processus qui a traversé toutes les FA sans épuiser son temps de traitement reste dans la FA la moins prioritaire.
IsetSiliana
CHaabani Nizar
95
4. Politiques d’ordonnancement – Algorithmes avec préemption
(Round Robin, Priorité, SRTF) (3)
 Algorithme SRTF (Shortest Remaining Time First) -- SJF avec réquisition
 Choisir le processus dont le temps d'exécution restant est le plus court
 Il y a réquisition selon le critère de temps d'exécution restant et l'arrivée d’un
processus
 Nécessité de sauvegarder le temps restant
 Exemple :
Processus Durée estimée Date d’arrivée
P1
P2
P3
P4
8
5
5
2
0
2
3
4
Diagramme de Gantt
P1 P2
0
2
P4
4
6
P2
P3
9
P1 P1
14
20
Temps de vie
 Temps de traitement moyen = [(20 - 0) + (9 -2) + (14 -3) + (6-4)]/4 = 9,5
 Théoriquement, + SRTF offre un minimum de temps d’attente; - difficile de prédire le futur
IsetSiliana
CHaabani Nizar
96
Pour TAB 1 ,Donner et comparer le temps moyen d'exécution produit
par les algorithmes d'ordonnancement
a. FIFO (FCFS, PAPS)
b. PCTE (SJF),
c. tourniquet avec un quantum de 5
d. Algorithme SRTF (Shortest Remaining Time First )
Pour TAB 2,Donner le diagramme de Gantt et le temps
moyen d’exécution pour un ordonnancement de type
tourniquet avec priorités
TAB1
Etudiant
E1
E2
E3
E4
Ordre
d’arrivée
0
1
2
4
TAB2
Temps
requis
45 min
15 min
10 min
5 min
IsetSiliana
Etudiant
E1
E2
E3
E6
CHaabani Nizar
Date
‘arrivée
0
5
5
5
Temps
requis
45 min
15 min
10 min
20 min
Priorité
1
2
3
1
97
5. Hiérarchie d’Ordonnancement (1)
 L’ensemble des processus prêts est-il souvent en mémoire centrale?
 Un processus élu, qui est sur disque, prend beaucoup plus de temps qu’un
processus en RAM pour être chargé.
 Les algorithmes d’ordonnancement complexes permettent de distinguer entre 2
types différents:
 Ordonnancement à court terme (short term scheduling) : considère
seulement les processus prêts en mémoire centrale.
 Ordonnancement à long terme (long term scheduling) : consiste à utiliser
un deuxième algorithme d’ordonnancement pour gérer les ‘’swapping ’’ des
processus prêts entre le disque et la RAM
IsetSiliana
’’Swap out’’ Processus
File d’attente des Prêts
Arrivée
UC
E/S
CHaabani Nizar
Sortie
Files d’attente des E/S
98
5. Hiérarchie d’Ordonnancement (2)
 Ordonnancement multi-niveaux permet de satisfaire :
 Favoriser les processus courts
 Favoriser les processus ‘’’, qui ne demandent pas trop l ’UC
 Déterminer la nature de chaque processus le plutôt possible et effectuer
l’ordonnancement correspondant
 Files d’attente sans liens : un processus se trouvant dans dans FAi ne peut se
trouver dans FAj (j i); il reste dans FAi jusqu’à ce qu’il se termine’I/O Bound
IsetSiliana
(RR)
FA n-1
Réquisition
FA1
(FCFS/SJF)
+
Priorité fixe
CHaabani Nizar
Processus Interactifs
CPU
FA
0
Terminaison
Processus Système
99
5. Hiérarchie d’Ordonnancement (3)
 Files d’attente avec liens : hiérarchiser les FAs
Arrivée niveau n-1
FA n-1
(RR)
Réquisition
Arrivée niveau 1
(FCFS)
Arrivée niveau 0
(FCFS)
FA1
FA
CPU
Terminaison
0
 Un processus dans FAi ne peut être sélectionné que si toutes les FAj (j<i) sont
toutes vides
 Permettre aux processus de se déplacer d’une FA à une autre
 Hiérarchie descendante/ascendante/bidirectionnelle
 Changement dynamique dans le comportement des processus
 Chaque FA a son propre algorithme d’ordonnancement
 Descendante FAn-1 est gérée avec FCFS
 Ascendante F0 est gérée avec FCFS
IsetSiliana
CHaabani Nizar
100
IsetSiliana
CHaabani Nizar
101
Plan du chapitre
1.
Introduction
2. Fonctions attendues
3.
Va-et-vient (swapping)
4. Mémoire Virtuelle
5. Algo. de Replacements de Pages
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
IsetSiliana
CHaabani Nizar
102
1. Introduction
 La mémoire centrale est une ressource requise par tout
processus
 Un programme doit être chargé dans la mémoire centrale
pour être exécuté
 Demarrer_processus(p) Allouer(taille(p))
 Terminer_processus(p) Liberer(zone_allouée_à (p))
 Problématique
 Gérer les processus associés à des programmes trop volumineux
 Gérer le partage de la mémoire physique entre différents processus
IsetSiliana
CHaabani Nizar
103
2.
Fonctions attendues

Monoprogrammation:

Mémoire réservée au SE

Mémoire réservée au seul processus en exécution.

Multiprogrammation:

La Multiprogrammation améliore le taux d’utilisation du
CPU mais requiert un bon partitionnement de la mémoire.

A l’initialisation du système, la mémoire est divisée en n
partitions de taille fixe.

De préférence, des partitions inégales en taille.

Comment allouer les processus aux partitions?

une file d’attente par partition –(a)

une file d’attente pour toutes les partitions –(b)
IsetSiliana
CHaabani Nizar
104
Multiprogrammation avec des partitions
de taille fixe
File vide
File pleine
IsetSiliana
CHaabani Nizar
105
2.
Fonctions attendues
Principe de partage de la ressource mémoire
Fournir une mémoire logique à chaque processus (2K)
Gérer les translations entre les mémoires logiques et la
mémoire physique (liaisons d'adresses)
IsetSiliana
CHaabani Nizar
106
2. Fonctions attendues
 Mémoire physique: mémoire principale RAM de la machine
 Adresses physiques: les adresses de cette mémoire
 Mémoire logique: l’espace d`adressage d’un programme
Mémoire physique :
 Suite contiguë de mots (8, 16, 32, 64 bits selon processeur)
 Adressage direct aléatoire
 Tailles courantes : 256 Mega 2 à 4 Giga
Mémoire logique :
 Espace logiquement contigu
 Adressage direct aléatoire de mots
 Taille maximum = 2K – 1 (k = la capacité d’adressage)
IsetSiliana
CHaabani Nizar
107
2. Fonctions attendues
 Mise en œuvre des mémoires logiques au dessus de la
mémoire physique
 Swapping (partage de la mémoire dans le temps)
 Découpage (partitionnement)
 Multiplexage
Il est difficile de donner à chaque programme son propre
espace d’adressage  solution Réallocation dynamique
Réallocation dynamique: mapper l’espace d’adressage de
chaque processus sur une partie différente de la mémoire
physique.
IsetSiliana
CHaabani Nizar
108
…Ex. d’application
 Un ordinateur dispose de 32Mo de mémoire.
 L’OS occupe 16Mo
 Un processus utilisateur nécessite 4Mo
 Déterminer le niveau de multiprogrammation max?
 Déterminer le taux d’utilisation de CPU, si les
processus sont indépendants et qu’un processus
passe 80% de son temps en attente d’E/Ss ?
 De combien améliore-t-on ce taux si on ajoute 16Mo
de mémoire?
IsetSiliana
CHaabani Nizar
109
3. Le va-et-vient (swapping)

C’est l’utilisation de la mémoire secondaire : la « swap file »

Stratégie pour pallier les pénuries en mémoire.

Elle considère chaque processus dans son intégralité:

Le processus est dans son intégralité en mémoire

ou est supprimé intégralement de la mémoire
IsetSiliana
CHaabani Nizar
110
IsetSiliana
CHaabani Nizar
111
Le va-et-vient (swapping)
i.
(a) A est en mémoire
ii.
(b,c) B et C sont crées
ou chargés depuis le
disque
iii. (d) A est transférer sur
le disque
iv. (e,f) D arrive, tandis
que B s’en va
v.
(g) A revient
IsetSiliana
CHaabani Nizar
112
Les différentes techniques de partitionnement de la
mémoire centrale
Fonction attendue :
 Allouer-zone (t : taille)  adresse
 Libérer-zone (a : adresse, t : taille)
Objectifs :
 Optimiser l’utilisation de la mémoire (limiter la fragmentation)
 Optimiser les algorithmes d’allocation / libération
Techniques :
 Zones contiguës de taille fixées
 Zones contiguës de taille variables
 Zones non contiguës de taille fixe (systèmes paginés)
 Zones non contiguës de taille variable (systèmes segmentés)
IsetSiliana
CHaabani Nizar
113
Allocation Contigue
Registre de relogement contient la valeur de l’adresse
physique la plus petite; le registre de limite contient
l’étendue des adresses logiques possibles
chaque adresse logique doit être plus petite que la
valeur du registre limite
IsetSiliana
CHaabani Nizar
114
Allocation Contigue (Cont.)
 Allocation à plusieurs partitions
 Trous – bloc de mémoire disponible; trous de taille variable
dispersés dans la mémoire physique
 Quand un processus arrive, on lui alloue de la mémoire
dans un trou assez large pour accomoder ses besoins
 OS retient de l’information sur:
a) blocs alloués b) blocs libres (trous)
OS
OS
OS
OS
process 5
process 5
process 5
process 5
process 9
process 9
process
10
process 8
process 2
process 2
IsetSiliana
process 2
CHaabani Nizar
process 2
115
Traduction adresses logiques adr.
physiques
MMU: unité de gestion de mémoire
unité de traduction adresses
(memory management unit)
Module 7
116
Fragmentation: mémoire non utilisée
 Un problème majeur dans l`affectation contiguë:
 Il y a assez d ’espace pour exécuter un programme,
mais il est fragmenté de façon non contiguë
 La fragmentation peut être:


externe: l`espace inutilisé est entre partitions
interne: l ’espace inutilisé est dans les partitions
IsetSiliana
CHaabani Nizar
117
Partitions fixes



Mémoire principale
subdivisée en régions
distinctes: partitions
Les partitions sont soit
de même taille ou de
tailles inégales
N’importe quel progr.
peut être affecté à une
partition qui soit
suffisamment grande
(Stallings)
IsetSiliana
CHaabani Nizar
118
Algorithme de placement pour (Stallings)
partitions fixes

Partitions de tailles inégales: utilisation
de plusieurs files
assigner chaque processus
à la partition de la plus
petite taille pouvant le
contenir
 1 file par taille de partition
 tente de minimiser la
fragmentation interne

8M
12M

Problème: certaines files
seront vides s’il n’y a pas de
processus de cette taille (fr.
externe)
IsetSiliana
CHaabani Nizar
119
Algorithme de placement pour partitions
fixes

Partitions de tailles inégales:
utilisation d’une seule file
On choisit la plus petite
partition libre pouvant
contenir le prochain
processus
 le niveau de
multiprogrammation
augmente au profit de la
fragmentation interne


8M
On pourrait allouer trop
de mémoire à un
programme
12M
(Stallings)
IsetSiliana
CHaabani Nizar
120
Partitions dynamiques: exemple
(Stallings)



(d) Il y a un trou de 64K après avoir chargé 3 processus
Le prochain processus pourrait demander plus
Si tous les proc sont bloqués (p.ex. attente d’un événement), P2 peut
être suspendu ou permuté et P4=128K peut être chargé.
Swapped out
IsetSiliana
CHaabani Nizar
121
Partitions dynamiques: exemple (Stallings)



(e-f) Progr. 4 est chargé. Un trou de 224 – 128 = 96K est créé (fragmentation
externe)
(g-h) P1 se termine ou il est suspendu, P2 est repris à sa place: produisant un autre
trou de 320-224=96K...
Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation
externe  COMPACTAGE pour en faire un seul trou de 256K
IsetSiliana
CHaabani Nizar
122
la mémoire centrale comporte 3 zones libres mais aucune d'elles n'est
assez grande pour contenir un programme 8 de 180K.
Pourtant l'ensemble des 3 zones libres forme un espace de 120 + 20 +
150 = 350K suffisant pour le programme 8.
Pour permettre l'allocation du programme 8, il faut donc réunir
l'ensemble des zones libres compactage
IsetSiliana
CHaabani Nizar
123
Compactage
 Une solution pour la fragmentation externe
Définition : Le compactage (ou défragmentation) est
une opération réalisée par le système d'exploitation
consistant à déplacer toutes les pages vers des
emplacements contigües pour avoir un grand espace
libre et minimiser ainsi le nombre de trous mémoires.
désavantages
 temps de transfert programmes
 besoin de rétablir tous les liens entre adresses de différents
programmes
IsetSiliana
CHaabani Nizar
124
Problème de l’Allocation Dynamique
Comment satisfaire une requête de taille n à partir d’une liste de blocs
 First-fit: Allouer le premier bloc assez grand
 Best-fit: Allouer le plus petit bloc assez grand;
doit parcourir la liste entière de blocs, sauf si
ordonnée par taille. Produit des restes de blocs les
plus petits.
 Worst-fit: Allouer le plus grand bloc; doit aussi
rechercher dans toute la liste, sauf si ordonnée.
Produit des restes de blocs les plus larges.
First-fit et best-fit sont meilleurs que worst-fit en termes de rapidité
et utilisation de la mémoire
IsetSiliana
CHaabani Nizar
125
Exercice
 On considère le schéma d'allocation de la mémoire
représenté par la Figure 1 et les processus A, B, C et D (c.
Ces processus sont ordonnés suivant l'ordonnancement
Round Robin avec Quantum égal à 2. Il est demandé de
représenter le schéma d'allocation mémoire en traitant
les deux cas suivants : L'allocation first Fit ;•
• L'allocation Best Fit ;• L'allocation Worst Fit.
IsetSiliana
CHaabani Nizar
126
Systèmes d'Exploitation
Chapitre 2.
La Gestion de la Mémoire Centrale
Partie II. La Mémoire Virtuelle
Contenu du cours
 Présentation
 La pagination -- transformation des adresses
 Les algorithmes de Remplacement
 FIFO/LRU/OPTIMAL/NRU
IsetSiliana
CHaabani Nizar
127
1. Présentation
 Objectif : fournir un espace d’adressage indépendant de celui de la
mémoire physique :
 Les processus n’utilise pas tous les mémoire alloué et il y’a des programmes qui
nécessite un grand partition pour exécuté.
 La mémoire virtuelle permet d'exécuter des programmes dont la taille excède
celle de la mémoire physique
 L ’espace d’adressage > l’espace physique
 Réalisation de la mémoire virtuelle (MV)
Représentation physique : MC + MS (disque)
 Gestion basée sur les techniques de pagination

 Pagination -- Principe :
l’espace d’adressage virtuel est divisé en petites unités -- PAGES
 l‘ espace d’adressage physique est aussi divisé en petites unités -- CASES
(frames)
 Les pages et les cases sont de même tailles

IsetSiliana
CHaabani Nizar
128
128
Pagination

Espace d’adressage virtuel est divisé en pages.

Les unités correspondantes dans la mémoire physique
sont appelées cadres de pages (page frame).
IsetSiliana
CHaabani Nizar
129
2. Pagination -- Principe
 l'espace d'adressage du programme est découpé en morceaux linéaires de même de
taille : la page.
 L'espace de la mémoire physique est lui-même découpé en morceaux linéaires de
même taille : la case.
  charger un programme en mémoire centrale consiste à placer les pages dans
 n'importe quelle case disponible taille case = taille page
Page
Disque (MV)
7
6
5
4
3
2
1
0
3
Case
X
0
3
2
1
0
X
2
1
X
X
Espace
d’adressage
 Ne charger que les pages utiles
Virtuel
à un instant donné
IsetSiliana
Processus
en MC
charger un programme en mémoire
centrale consiste à placer les pages dans
n'importe quelle case disponible.
CHaabani Nizar
130
130
IsetSiliana
CHaabani Nizar
131
IsetSiliana
CHaabani Nizar
132
IsetSiliana
CHaabani Nizar
133
Pagination
Table de Pages
 Processeur 16 bits 
216 adresses virtuelles et
64Ko
 Mémoire physique de
32Ko
 Page de 4Ko
 Nbr pages virtuelles =
64/4 = 16
 Nbr cadres de pages =
32/4 = 8
8192 - 12287
4096 - 8191
0
- 4095
IsetSiliana
CHaabani Nizar
134
2.1. Transformation des adresses virtuelles (1)
 Les adresses manipulées par le programmes sont des adresses virtuelles
 Lorsqu’une adresse est générée, elle est transcodée, grâce à une table, pour lui
faire correspondre son équivalent en mémoire physique
UC
Nºcase déplacement
Nºpage déplacement
Nº case
Table des pages
Mémoire physique
L'adresse d'un octet est donc formé par le couple <n°de page à laquelle appartient
l'octet, déplacement relativement au début de cette page >.
IsetSiliana
CHaabani Nizar
135
Transformation des adresses virtuelles (2)
 Ce transcodage est effectué par des circuits matériels de gestion : unité de gestion
de mémoire -- MMU (Memory Management Unit)
Carte CPU
@ Virtuelle
CPU
MMU
B. Données (lecture/écriture)
@ Physique
Mémoire Centrale
 Si l’adresse générée correspond à une adresse mémoire physique, le MMU transmet sur le bus
l’adresse réelle, sinon il se produit un DEFAUT DE PAGE
 Chaque table des pages contient les champs nécessaires au transcodage, avec notamment :
 1 bit de présence (P 1/0) pour marquer la présence de la page en mémoire physique
 1 bit de modification (M 0/1) pour signaler si on écrit dans la page
IsetSiliana
CHaabani Nizar
136
136
Mémoire Virtuelle
P1
P0
IsetSiliana
CHaabani Nizar
137
Mémoire Virtuelle
Dans cet exemple, les pages ont une taille de 4Ko.
L’adresse virtuelle 12292= (1024*12)+4 . elle correspond
à un déplacement de 4octets dans la page virtuelle 3,
correspondant à son tour à la page physique 2.
Donc l’adresse physique correspond à un déplacement de
4 octets dans la page physique 2 soit: (8*1024)+4=8196.
● La page virtuelle 2 n’est pas mappée. Donc toute
adresse virtuelle comprise entre 8192 et 12287, donnera
lieu à un défaut de page.
● L’accès à une adresse virtuelle correspondant à une
page non mappée donne lieu à un défaut de page.
IsetSiliana
CHaabani Nizar
138
8192 =
1024*8
12287 =
1024*12
12292
=
(1024
*12)
+4
(8*102
4)+4
=
8196
IsetSiliana
CHaabani Nizar
139
IsetSiliana
CHaabani Nizar
140
Bit de Présence et Défaut de Page
3
la page est sur disque
SE


P
M
Nº case
 Déroutement
(Défaut de page)
0
Table des pages
Processus
Case libérée
 Restaurer la table des pages
 Référence
 Redémarrer l’instruction
IsetSiliana
 Ramener
en MC la
page
absente
Mémoire Centrale
CHaabani Nizar
141
141
Exemple et Représentation d’une Table des Pages
 Codage des @ virtuelle ou réelle
 on réserve les bits de poids nécessaires pour
coder les
numéros des pages ou des cases
 les bits de poids faibles codent le déplacement
 Par exemple, dans un système ayant une mémoire
de 32 Mo et des pages de 512 octets, chaque tableau
des pages devrait contenir: 32 Mo/ 512 = 64 K pages
 Taille(page) = 4Ko; Taille(MC) = 4 cases; Taille(processus) = 16
pages
 Combien de bits a-t-on besoin pour représenter les @
virtuelles et les @ réelles?
 Chaque processus a sa propre table des pages

IsetSiliana
CHaabani Nizar
142
142
Le calcul de l'adresse réelle à partir de l'adresse virtuelle se réalise ainsi :
le numéro de page virtuelle donne l'entrée de la TPV dans laquelle se trouve le
numéro de page physique ;
le déplacement est le même (les pages physiques et virtuelles ont la même
taille) ;
si la page virtuelle n'est pas présente en m.physique, produit un défaut de
page.
IsetSiliana
CHaabani Nizar
143
Pour accélérer le processus, on utilise des mémoires
associatives qui recensent les dernières pages utilisées :
IsetSiliana
CHaabani Nizar
144
3. Algorithmes de Remplacement de Pages
 A la suite d’un défaut de page, le SE doit retirer une page de la MC pour libérer de la
place manquante
 Problème : quelle page choisir à décharger afin de récupérer l’espace et
minimiser le nombre de défauts de pages?
 Définition : si un processus cherche à accéder à une page non présente en mémoire
centrale, il se produit ce qu’on appelle un défaut de page .
 Lors d'un défaut de page, la page manquante est chargée dans une case libre
-----> La totalité des cases de la mémoire centrale peuvent être occupées
-----> Il faut libérer une case
 Plusieurs algorithmes de remplacements :
 Aléatoire
Première entrée, première sortie – FIFO
 Remplacement de la page la moins récemment utilisée -- LRU (Least Recently
Used)
 Optimal
 Remplacement d ’une page non récemment utilisée -- NRU (Not Recently Used)

IsetSiliana
CHaabani Nizar
145
145
Algorithmes de Remplacement (2)
 Algorithme aléatoire -- Random:
 La victime est choisie au hasard
 FIFO :
 Lors d’un défaut de page, la page la plus anciennement chargée est la page retirée
pour être remplacée
 Facile à implanter
 Remplacement d’une page très référencée í trop de défaut de pages
 Exemple 1 : Supposons avoir 3 cases et 4 pages avec la chaîne de référence suivante :
ABCABDADBCB
cases\ref.
A
1
A
2
3
B
C
A
B
D
A
D
B
D
B
C
B
C
A
C
B
4 défauts de pages
IsetSiliana
CHaabani Nizar
146
146
FIFO : la page la plus anciennement chargée est la page
remplacée
3 frames, 15 page faults
IsetSiliana
CHaabani Nizar
147
Algorithmes de Remplacement (3)
 Algorithme Optimal :
 Principe :
choisir comme victime la page qui sera référencée le plus tard possible
 Nécessite la connaissance, pour chacune des pages, le nombre d’instructions
qui seront exécutées avant que la page soit référencée
 Algorithme irréalisable dans un contexte ’’offline’’
 Connaissance des références qui seront faites
 Intérêt : permet de comparer les performances des autres algorithmes
 Exemple : reprendre exemple 1 en appliquant optimal

cases\ref.
A
1
A
2
3
B
C
A
B
D
A
D
B
C
C
B
2 défauts de pages
B
C
IsetSiliana
D
CHaabani Nizar
148
148
Algorithmes de Remplacement (4)
 Algorithme LRU (Least Recently Used) :
 Principe : remplacer la page la moins récemment utilisée (accédée)
Remplacer la page qui est restée inutilisée le plus de temps
 Une bonne approximation de l’algorithme optimal
 Théoriquement réalisable mais très coûteux
 Nécessite des dispositifs matériels particuliers (compteur pour chaque
référence)
 Exemple 2 : énoncé exemple 1 + la chaîne de référence A B C D A B C D A B C
D

cases\ réf.
A
1
A
2
3
B
C
D
A
B
D
B
IsetSiliana
D
A
C
A
C
C
B
C
D
B
D
B
C
A
CHaabani Nizar
LRU :
9 défauts de pages
Optimal : ?
D
149
149
IsetSiliana
CHaabani Nizar
150
IsetSiliana
CHaabani Nizar
151
12 DEFAUT PAGE
IsetSiliana
CHaabani Nizar
152
Algorithmes de Remplacement (5)
 Algorithme NRU (Not Recently Used) :
 Idée : marquer les pages référencées
 Principe :
 A chaque page sont associées deux bits R et M :





Au lancement d’un processus, le SE met à zéro R et M de toutes les pages
Périodiquement, le bit R est remis à 0 pour différencier les pages qui n’ont
pas été récemment référencées des autres
Lors d’un défaut de page, le SE retire une page au hasard dont la valeur
RM est la plus petite :





R=1 chaque fois que la page est référencée (lecture/écriture),
R=0 sinon
M=1 lorsque la page a été modifiée dans la mémoire centrale
RM = 00 : non référencée, non modifiée
RM = 01 : non référencée, modifiée
RM = 10 : référencée, non modifiée
RM = 11 : référencée, modifiée
Algorithme basé sur une solution matérielle
IsetSiliana
CHaabani Nizar
153
153
Algorithmes de Remplacement -- Conclusion
 Critère de performance:
Optimal
LRU
NRU
+
FIFO/Aléatoire
-
 La taille de la MC influe beaucoup sur les performances que l ’algorithme :
N’essayer pas de raffiner un algorithme, mais plutôt augmenter, si
nécessaire, la taille de la mémoire, et ce afin de minimiser le remplacement.
 Question : est-ce que le rajout de mémoire réduit toujours le nombre de
défauts de pages?
 Oui pour seulement optimal et LRU
 Non pour FIFO!!
 Exemple 3 : on dispose de 3 cases mémoires. Appliquer FIFO à la chaîne de
références suivante :
ABCDABEABCDE
Rajouter 1 case et reprendre l ’algorithme de remplacement FIFO.
Conclure

IsetSiliana
CHaabani Nizar
154
154
4. La Mémoire Virtuelle

Principe

Taille programme + données + pile peut être > Taille
mémoire disponible  Le SE conserve les parties en cours
d’utilisation en mémoire et le reste sur disque.

Quand un programme attend le chargement d’une partie de
lui-même  il est en attente d’E/S

Pagination

Les adresses générées par un programme s’appellent des
adresses virtuelles, et forment l’espace d’adressage virtuel.

La MMU (Memory Management Unit, unité de gestion
mémoire) fait la correspondance entre les adresses virtuelles
et les adresses physiques.
IsetSiliana
CHaabani Nizar
155
… Tables de pages
multiniveaux

Processeur 32bits, page de 4Ko  nombre de pages =
232/ 212 = 220 pages: une table de pages de plus que un
million d’entrées!

Sans oublier que chaque processus a son propre
espace d’adressage et donc sa propre table de pages!
 Tables de pages multiniveaux: On ne garde pas en mémoire
toutes les tables de pages
 Tables de pages inversées
 Mémoire Associative ou TLB (Translation Lookaside
Buffer): une petite table des pages les plus référencées
IsetSiliana
CHaabani Nizar
156
Tables de pages multiniveaux
Second-level page tables
Exple: une adresse virtuelle sur 32
bits est partitionnée en 3 champs
A quoi correspond l’adresse
virtuelle sur 32 bits 0x00403004 ?
IsetSiliana
CHaabani Nizar
157
Tables de pages inversées
Cas d’un processeur 64 bits, 256Ko
de mémoire et page de 4Ko
IsetSiliana
CHaabani Nizar
158
… Structure d’une entrée de
la Table des pages
Présent/ Absent: 1 bit, indique si la page est en mémoire ou non.
Protection: 1 bit (0: RW, 1: R) ou 3 bits (RWX).
Modifié: 1 bit, une page modifiée doit être écrite sur le disque.
Référencé: 1 bit, chaque fois que la page est référencée (lue ou écrite) il
est mis à 1.
Cache inhibé: 1 bit, permet d’inhiber le cache pour une page.
IsetSiliana
CHaabani Nizar
159
Algo de remplacement de pages

Défaut de page

Chercher une page à évincer, pour faire de la place pour la
page à charger en mémoire.

Si le bit M de la page à évincer = 1, la page doit être sauvée
sur disque.

Algo. optimal

Question de performances, afin d’éviter le rechargement de
pages, la page à évincer doit être peu utilisée.

Étiqueter chaque page avec le nombre d’instructions qui
seront exécutées avant que cette page ne soit référencée 
Evincer la page dont l’étiquette est la + grande (on repousse
ainsi le défaut de page aussi tard que possible)

Cet algo est irréalisable, le SE ne sait pas si la page serait
référencée ou pas ultérieurement. Par contre, pour une 2éme
exécution, il est possible d’implanter cet algo.
IsetSiliana
CHaabani Nizar
160
… Algo NRU (Not Recently
Used)

Principe

R 1, chaque fois que la page est lue ou écrite.

M 1, chaque fois que la page est modifiée.

A chaque interruption, R  0, afin de distinguer les pages
récemment référencées.

Classes de pages

Classe 0: non référencée, non modifiée

Classe 1: non référencée, modifiée

Classe 2: référencée, non modifiée

Classe 3: référencée, modifiée
La classe 1 est obtenue par conséq de l’effacement du bit R de
la classe 3.

L’algo NRU vire une page au hasard dans la + basse classe
IsetSiliana
CHaabani Nizar
161
… Algo FIFO (1st In, 1st out)

Algo. FIFO

Le SE conserve une liste de pages couramment en mémoire.
En cas de défaut de page, la + ancienne étant en tête de liste
est évincée.
(-) cet algo peut virer des pages importantes. En effet, la page la +
ancienne peut être la page la + utilisée.

Algo. seconde chance

C’est l’algo FIFO modifié, tel que le bit R de la page la +
ancienne est inspecté,

Si R = 1 de la page en tête de liste, la page est référencée, et
est placée à la fin de la liste avec R  0 et un instant de
chargement actualisé

Si R = 0, page à virer (ancienne et non référencée).
(-) cet algo déplace constamment des pages de la liste.
IsetSiliana
CHaabani Nizar
162
… Algo de l’horloge
Page
chargée
récemment
Page
chargée en
premier
En cas de défaut
de page et A tel
que R = 1

Algo de l’horloge

C’est l’algo de seconde chance avec une liste circulaire
(horloge) et un pointeur sur la page la + ancienne.

Quand un défaut de page survient, la page pointée est
examinée:



Si R = 0, la page est évincée
Sinon, R  0, le pointeur avance vers la page suivante,
Le processus se répète jusqu’à trouver une page avec R = 0
IsetSiliana
CHaabani Nizar
163
… Algo LRU (Least Recently Used

Principe



Cet algo est fondé sur l’observation les pages les + référencées
lors des dernières instructions seront probablement utilisées.
Un défaut de page évince la page qui n’a pas été utilisée
pendant le plus de temps.
Implantations

Compteur de 64 bits / cadre de page


Un défaut de page  examen de tous les compteurs de la table
des pages à la recherche du plus petit compteur
Matrice (n  n), n cadres



Cellules initialisées à 0
Quand une page k est référencée, tous les bits de la rangée k 
1, tous les bits de la colonne k  0
Un défaut de page évince la page dont la rangée est la + petite
IsetSiliana
CHaabani Nizar
164
… Algo LRU
– pages référencées dans l’ordre 0,1,2,3,2,1,0,3,2,3
IsetSiliana
CHaabani Nizar
165
… Algo de vieillissement

Principe


Cet algo nécessite un compteur/ page (init: 0)
A chaque interruption, le SE examine toutes les
pages en mémoire, et pour chaque page son bit R
est ajouté à son compteur, comme suit:




D’abord, le compteur est décalé d’un bit à droite
Puis, le bit R est ajouté au bit de poids le plus fort (de
gauche)
Une page qui n’a pas été référencée depuis 4 tops
d’horloge a 4 zéros dans son compteur, et aura
une + petite valeur qu’une page qui n’a pas été
référencée depuis 3 tops d’horloge.
Défaut de page: évincer la page dont le compteur
est le + petit
IsetSiliana
CHaabani Nizar
166
… Algo de vieillissement
IsetSiliana
CHaabani Nizar
167
… Algo de vieillissement vs LRU

Différence 1:




Slide 27 –(e)>> les pages 3 (00100000) et 5
(00101000) n’ont pas été référencées depuis 2 tops
d’horloge
LRU: aucun moyen de distinguer les 2 pages car on
ne mémorise qu’un seul bit/ intervalle de temps
Algo. Vieillissement: la page 3 est virée
Différence 2:


Le compteur de l’algo de vieillissement a un
nombre fini de bits (8 dans l’exple), on ne peut pas
distinguer 2 pages ayant la même val du compteur.
Dans la pratique un compteur sur 8 bits est
suffisant pour des tops d’horloge qui se produisent
toutes les 20ms, une page non référencée depuis
160ms n’est pas très utilisée
IsetSiliana
CHaabani Nizar
168
… Algo « ensemble de travail»

Pagination à la demande


Les pages sont chargées à la demande et non à
l’avance  beaucoup de défauts de page au début
Ensemble de Travail



C’est l’ensemble de pages exploitées par le
processus lors des k références en mémoire les +
récentes
Il est intéressant que le SE mémorise l’ensemble
de travail de chaque processus et pré-charge en
mémoire l’ensemble de travail du processus
En cas de défaut de page, évincer une page qui  à
l’ensemble de travail du processus
IsetSiliana
CHaabani Nizar
169
… Algo « ensemble de travail»
IsetSiliana
CHaabani Nizar
170
… Algo WSClock




Working Set Clock (ensemble de travail + horloge)
Optimisation de l’algo basé sur l’ens. de travail, qui
nécessite le parcours de toute la table des pages à
chaque défaut de page.
Chaque entrée contient: le Temps de la dernière
utilisation, le bit R et le bit M.
A chaque défaut de page, la page pointée est
examinée:



Si R = 1, càd la page a été utilisée pendant le top courant, R
 0, màj d temps et le pointeur avance d’une page.
Si R = 0 et age > et M = 0, càd la page  à l’ens de travail 
cadre de page à libérer
Si R = 0 et age > et M = 1, càd la page  à l’ens de travail 
une écriture sur disque de la page est ordonnancée, le
pointeur avance d’une page. Ainsi, même si le pointeur
revient à son point de départ, l’écriture serait terminée.
IsetSiliana
CHaabani Nizar
171
… Algo WSClock
IsetSiliana
CHaabani Nizar
172
3.2. Conversion d’une Adresse Virtuelle
Procédure Conversion (Entrée : advirt; Sortie : adphysique)
Début
index = advirt.page + adresse_table(processus)
Si (non index.P)
/* page absente */
Alors /* Défaut de page*/
charger_page(advirt.page, adresse_case
index.P = 1
index.case = adresse_case
finsi
adphysique = adresse_case + advirt.deplacement
Fin
Procédure charger_page (E : page; S : case)
Début
Si (Non trouver_case_libre())
Alors
choisir_case_à_libérer(case_à_libérer, page_victime)
Si (page_victime.M) Alors ecrire_disque(page_victime) finsi
lire_disque(case_voila_liberer, page)
finsi
Fin
IsetSiliana
CHaabani Nizar
173
173
4. Autres Considérations (1)
 Politique d’allocation locale/globale :
Remplacement de la page la plus ancienne :
 Globale -- la plus ancienne du système
 Locale -- la plus ancienne du processus
 En général, l ’allocation globale produit de meilleurs résultats
 Redémarrage d’une instruction après le défaut de page
 La taille d’une page? Influe sur les tables de pages utilisées par la MMU
 Mémoire de SWAP
 où stocker les pages délogées de la MC?
 sur un ou plusieurs disques locaux
 partition de swap : + rapide, - de place pour le SGF
 Fichier de swap : - rapide, + de place pour les autres fichiers
 En général, le SE utilise les deux simultanément
 Plusieurs disques = swap en parallèle
 sur un serveur (de disques) distant :
 Net PC, TX, STB, ...

IsetSiliana
CHaabani Nizar
174
174
4. Autres Considérations (2)
 Ecroulement -- thrashing
Si le nombre de processus est très grand, l’espace propre à chacun est
insuffisant et ils passeront leur temps à gérer des défauts de pages
 Ecroulement du système : une haute activité de pagination
 un processus s'écroule lorsqu’il passe plus de temps à paginer qu’à
s'exécuter
 Limiter le risque d'écroulement :

Allocation
plus de page
Défaut
de pages
Limite supérieure
Limite inférieure
Retrait de page
Nombre de pages
 Si un processus provoque trop de défauts de pages :
 au dessus d ’une limite supérieure : on lui allouera plus de pages
 en dessous d’une limite inférieure : on lui en retirera
 S’il y a plus de pages disponibles et trop de défauts de pages, on devra suspendre un des processus
IsetSiliana
CHaabani Nizar
175
175
4. Autres Considérations (3)
 L’espace de travail -- Working set (W)
 W = les pages d’un processus référencées sur un court instant de temps
 Une allocation optimale : allouer à un processus actif autant de pages que nécessite
W
les défauts de pages seront provoqué lors des changements d’espace de travail
 Ce modèle n’est utilisé que pour la prépagination
 Prépagination
 Lors du lancement d ’un processus ou lors de sa reprise après suspension, on
provoque obligatoirement un certain nombre de défauts de page
 Essayer de les limiter -- enregistrer W avant suspension
 Au lancement d ’un programme les 1eres pages de code seront
vraisemblablement exécutées
Conclusions
 Découpage en pages et cases de même taille
 Les pages d’un processus ne sont chargées en mémoire physique que lorsque le
processus y accède
 les pages peuvent être mises dans n’importe quelle case
 Lorsqu’un processus accède à une page non présente en mémoire physique, il se
produit un DEFAUT DE PAGE :
 la page manquante est alors chargée dans une case libre
 pas de case libre, le système utilise un algorithme de remplacement de page pour
choisir une case à libérer

IsetSiliana
CHaabani Nizar
176
176
Chap. II
SYNCHRONISATION ET COMMUNICATION
ENTRE PROCESSUS --IPC
1.Exemple introductif
Int i;
P1
P2
i=0;
while (i<10)
i++;
printf(‘’P1 GAGNE! \n’’);
i=0;
while (i>-10)
i--;
printf(‘’P2 GAGNE !\n’’);
 i variable « partagée »  risque de conflit d’accès!
 Les instructions i++ et i– doivent s’exécuter de manière
indivisible!
 Lequel des processus P1 ou P2 gagne?
 Vont-ils terminer? Si l’un se termine, est-ce que l’autre
termine aussi?
 Est-ce que P1 peut commencer?
177
IsetSiliana
CHaabani Nizar
177
Présentation du problème
Pas d’interaction:
 Exécution dans n’importe quel ordre
 Exécution parallèle ou concurrente
 Interactions entre processus:
 Nécessité de synchroniser

L’ordre d’exécution est important

Cas particulier: Exclusion mutuelle –sérialisation des exécutions
 Moyens de synchronisation:
 Matériel: masquage d’interruption et TAS—Test-And-Set
 Logiciel: verrous, sémaphores, moniteurs, et passage par
messages
178
IsetSiliana
CHaabani Nizar
178
2. Définitions de synchronisation, Section critique
 Synchronisation
 Utilisation d’opérations atomiques afin de garantir une
bonne coopération entre processus.
 Une opération qui consiste à distribuer, dans le temps,
les accès à une ressource partagée entre plusieurs
processus.
 Conditions de rapidité
 un ordre quelconque de processus/instructions peut
produire des résultats incorrects
 La commutation dépend, dans le cas


de concurrence, de l’ordonnancement
de parallélisme, de la vitesse d’exécution relative– on
synchronise le processus le plus rapide sur le processus le plus
lent..
179
IsetSiliana
CHaabani Nizar
179
Section
critique
--SC
 Une partie d’un programme où se produit un conflit
d’accès.
 Comment éviter ce conflit?


Besoin de contrôler l’entrée à une SC
Besoin de supporter l’exclusion mutuelle dans la SC.
 Une bonne solution au problème de SC doit satisfaire:
1.
Exclusion mutuelle: accès exclusif: à tout instant un seul
processus exécute sa SC (ressource partagée).
2.
Avancement et absence de blocage: un processus qui
n’est pas dans sa SC ne doit bloquer un autre processus à
entrer en SC; c-àd pas d’attente s’il n’y a pas de
compétition
3.
Attente bornée (pas de famine): une fois la demande
d’entrée en SC est lancée, le processus ne doit pas attendre
indéfiniment. La demande est assurée de manière
équitable, si possible.
 Aucune hypothèse ne doit être faite sur les vitesses
relatives des processus
180
IsetSiliana
CHaabani Nizar
180
Structure Typique d’un Processus
Soient N processus exécutant le programme suivant:
Do
…
// ’’Entrer en SC’’
] Prologue
SC
// ’’Sortir de la SC’’
SNC
While (1);
] Epilogue
181
IsetSiliana
CHaabani Nizar
181
3. Solutions Possibles
 Hypothèses:
 Vitesses relatives des processus quelconque et inconnu
 tout processus quitte sa SC au bout d’un temps fini
 Aperçu
Opérations
atomiques de Verrous
Sémaphores
haut niveau Send/Receive
(API)
Opérations
atomiques de
Load/Store
bas niveau
TAS
(matériel)
IsetSiliana
Moniteurs
+
Masquage Interruption
182
CHaabani Nizar
182
3.1. Solutions Matérielles
 Permettre à l’utilisateur d’interdire momentanément les
interruptions (difficile et dangereuse!)
 Augmenter l’ensemble des actions atomiques
 Masquage d’interruptions
 Problème: les processus users ne peuvent pas garantir le test
et la modification d’une variable
 Solution: Interdire la commutation de processus pendant
qu’un processus est en SC ou encore masquer les Its (le
système peut le faire en mode SVC par un appel spécifique).
Masquer It
SC
Demasquer It
183
IsetSiliana
CHaabani Nizar
183
Solutions Matérielles --TAS
 TAS (Test-And-Set): Instruction spéciale cablée dont le rôle est de rendre
atomique le ‘’test and set’’ du contenu d’un mot.
Int TAS (int *val)
{ int temp;
temp= *val;
//implantée de manière atomique
*val = 1;
return temp;
}
 Une solution au problème de SC pour n processus:
Int verrou = 0;
void MutexDebut()
Processus Pi
{
Do
while (TAS(&verrou))
MutexDebut();
;
SC
}
MutexFin();
void MutexFin()
SNC
{ verrou = 0; }
while (1);
 Preuve?
184
IsetSiliana
CHaabani Nizar
184
3.2.
Solutions
 Soient
deuxLogicielles
processus –Attente
P0 et P1 Active sur un Verrou
 Algorithme1: A qui le tour!
Public //Variables partagées
int tour=0; //tour =i si Pi veut entrer en SC
Processus Pi
Do
while (tour != i)
;
// on fait rien
SC
tour = (i+1)%2;
SNC
While (1);
 Démontrer que c’est une fausse solution?
 Exclusion mutuelles satisfaite
 Avancement non vérifié: si P0 est plus lent que P1 alors
P0 bloque P1; bien qu’il n’est pas dans sa SC
 Nécessité d’une alternance stricte (jeton)
185
IsetSiliana
CHaabani Nizar
185
Algorithme2
 Algorithme2: deux drapeaux
Public //Variables partagées
int flag[2]=[0]; //flag[i]=0 si Pi est prêt pour entrer en SC
Processus Pi
Do
flag[i] = 1;
while (flag[i])
; // on fait rien
SC
flag[i] = 0;
SNC
While (1);
 Démontrer que c’est une fausse solution?
 Exclusion mutuelles satisfaite
 Avancement non vérifié: si les processus arrivent en même
temps, c-a-d flag[0] = flag[1] =1!
 Une vraie solution consiste delà combiner les deux dernieres!
186
IsetSiliana
CHaabani Nizar
186
Solution de Peterson
 Algorithme3 //pour deux processus
Public //Variables partagées
int flag[2]=[0]; //flag[i]=0 si Pi est prêt pour entrer en SC
int tour = 0;
Processus Pi
Do
flag[i] = 1;
tour = j;
// j = (i+1)%2;
while (flag[i] && tour == j)
; // on fait rien
SC
flag[i] = 0;
SNC
While (1);
 Preuve de correction?
 Cet algorithme satisfait les 3 conditions de SC, à
démontrer?
 Généralisation à n processus: voire algorithme de Bakery
187
IsetSiliana
CHaabani Nizar
187
3.3. Attente active --Conclusion
 Solutions qui fournissent des attentes actives
 Inefficace: il faut que le processus en attente libère le
processeur explicitement (exemple la fonction sleep sous
Unix).
 Les processus de priorité élevé peuvent être prives
(inversion de priorité)
 Solutions de blocage
 Sémaphores
 Moniteurs
 Send/Receive
188
IsetSiliana
CHaabani Nizar
188
4. Les SEMAPHORES
Motivation : synchronisation des processus concurrents
 Une approche par attente active n’est pas intéressante, puisque le processeur
est immobilisé simplement pour attendre
Gaspillage de la puissance CPU disponible
 Une approche alternative = utilisation de sémaphores

 Principe et définition des sémaphores
 Mécanisme de synchronisation simple et ancien entre des processus
concurrents
 Le principe est directement hérité des chemins de fer -- Signal muni d’un bras
indiquant si la voie ferrée est libre ou occupée
Sémaphore levé : le processus P peut continuer son chemin
 Sémaphore baissé : il doit attendre jusqu'à ce qu’un autre processus Q
le lève
 Eviter des collisions en assurant l'accès exclusif à un croisement ferré

 Inventés par le mathématicien Allemand Dijkstra (1965)
 4.1. Syntaxe et Sémantique
 Un sémaphore S est une variable spéciale contenant un nombre entier (IN)
et manipulé uniquement par 3 opérations atomiques : initialisation, P et V
189
IsetSiliana
CHaabani Nizar
189
4.1. Syntaxe et Sémantique d’un Sémaphore
 P --passer : P(S)/Wait(S)/Down(S)
Décrémenter la variable S (à moins qu’elle ne soit déjà à 0)
Utilisée (lorsque déjà 0) pour bloquer (suspendre) le processus
appelant jusqu'à ce qu’un événement survienne.
V --relâcher : V(S)/Signal(S)/Up(S)
 Incrémenter le sémaphore de 1
 Utilisée pour signaler un événement, et si possible, réactiver un
processus en attente.
Initialisation de S : interprétée comme un nombre d’autorisations
(disponibles quand l’entier est positif, attendues quand le le nombre est
négatif).
Déclaration de sémaphores -- Notation d’Andrews
 Sem S1, S2; Sem ingred[3]=([3] 1); S1 = 0; S2 = 1;
 Apres initialisation, les seules opérations permises sont P et V
 P(S) : < attendre(S>0); S--; >
 V(S) : < S++; >
Sémaphores général vs. sémaphore binaire :
 Sémaphore général : peut prendre n ’importe quelle valeur nonnégative
 Sémaphore binaire : la valeur peut être uniquement 0 ou 1






190
IsetSiliana
CHaabani Nizar
190
4.1. Syntaxe et Sémantique d’un Sémaphore (suite)
 Sémaphore associé à une file d’attente -- Sémaphore de
blocage
 A chaque sémaphore est associée une file d’attente pour les
processus bloqués
 Création d’un sémaphore général
typedef struct semaphore {
int valeur;
bcp *tete; }
void P(semaphore *S)
{ if ( --S->valeur < 0) {
insérer ce processus dans la FA associée
Bloquer }
}
void V(semaphore *S)
{ if ( ++S->valeur <= 0) {
supprimer le processus courant de la FA associée à
ce sémaphore
Réveiller }
}
 L’utilisation correcte des sémaphores ne doit pas dépendre d’une
gestion particulière de la file d’attente
191
IsetSiliana
CHaabani Nizar
191
4.2. Utilisation des Sémaphores
 Les sémaphores peuvent être utilisés tant pour la réalisation des sections critiques
que pour diverses formes de synchronisation conditionnelle
Compétition entre 2 processus
privé
Variables partagées
Semaphore Mutex=1;
Processus Pi
Repeat
P(Mutex);
V(Sync);
Coopération -- sémaphore
Variables partagées
Semaphore Sync = 0;
Processus P0
Processus P1
.......
.......
P(Sync);
.......
SECTION CRITIQUE
V(Mutex);
until flase;
précédence P1 < P0
.......
Il existe une relation de
 Conséquence :

Un sémaphore est toujours initialisé à une valeur non-négative mais peut
devenir négative après un certain nombre d'opérations P(S) -- nombre des
processus en attente.
192
IsetSiliana
CHaabani Nizar
192
4.3. Problèmes de dysfonctionnement des sémaphores
 Remarques :
 La plupart des mises en œuvre des sémaphores assurent que les processus en
attente sont réactivés dans l’ordre dans lequel ils ont été suspendus sur le
sémaphore.

Equité dans l’ordonnancement des processus
 Les sémaphores sont les principales primitives de synchronisation dans Unix
 Un sémaphore est un mécanisme qui permet le blocage et le réveil explicite.

 
Servir à traiter tous les paradigmes de la programmation concurrente
Aucune garantie qu’une synchronisation est exempte de problèmes!! :
 Interblocage (Deadlock) -- attente circulaire


Un processus est bloqué indéfiniment s’il est en attente d’un
événement qui ne peut être produit que par le processus déjà en
attente
Considérons 2 processus utilisant 2 sémaphores d’exclusion mutuelle
P1
P2
P(S1)
P(S2)
P(S2)
P(S1)
...
...
 Famine (starvation) : des processus qui s'exécutent indéfiniment sans aucun
changement; certains processus peuvent ne jamais obtenir les ressources!
193
IsetSiliana
CHaabani Nizar
193
4.4. Attente active vs. Blocage
 L ’attente active est-elle plus coûteuse que le blocage?
 Coût de blocage contre le coût de manipulation des
files d ’attente + la commutation de contexte?
 La durée de l ’attente?
 L’attente active peut être meilleure pour des sections
critiques de courtes durées, plus particulièrement pour
les multiprocesseurs, elle est incontournable.
194
IsetSiliana
CHaabani Nizar
194
4.5. Problèmes Classiques de Synchronisations
 Rendez-vous -- Principe général
P1 P2
Pn
Point de
rendez-vous
Point de
synchronisation
 Version simplifiée du problème pour 2 processus (généralisation -- voir TD)
 Synchronisation par sémaphores privés :
 Semaphores arrivee1=0, arrivee2 = 0;
Processus P1
......
V(arrivee1);
.......
V(arrivee2);
// signaler mon arrivée
P(arrivee2);
......
Processus P2
P(arrivee1);
// attendre l'arrivée de l’autre
......
195
IsetSiliana
CHaabani Nizar
195
4.5. Problèmes Classiques de Synchronisations (2)
Problème de Producteur/Consommateur (tampon borné)
Vide
N cases
Producteur
Consommateur
Plein
 Contraintes de synchronisation :


Relation de précédence : Producteur <
Consommateur
Section critique (tampon)



tampon plein  Producteur se bloque
tampon vide  Consommateur se bloque
Exclusion mutuelle au tampon
196
IsetSiliana
CHaabani Nizar
196
Solution au Problème de Producteur/Consommateur (tampon borné)
 Variables partagées
#define N 100
Semaphore mutex=1; /* protège l'accès au tampon */
Semaphore plein=0; /* compte le nombre d ’informations produites dans le
tampon */
Semaphore vide = N; /* Nb d ’emplacements libres dans le tampon */
Processus Producteur
Processus Consommateur
Repeat
Repeat
......
......
Produire_objet();
P(plein); /*
décrémenter nb info. */
......
P(mutex); /* entrée en SC */
P(vide) /* dec. Cases libres */
retirer_objet();
P(mutex); /* entrée en SC */
V(mutex); /* sortie de
SC */
deposer_objet();
V(vide);
cases vides */
V(mutex); /* sortie de SC */
V(plein); /* Incr. nb info. */
until false;
/* Incr. nb
Consommer_objet()
until false;
197
IsetSiliana
CHaabani Nizar
197
Synchronisations (4)
Problème des Lecteurs/Rédacteurs
 Considérons ce problème comme étant un système de réservation de billets
d’avions où plusieurs processus tentent de lire et d'écrire des informations:
 On accepte que plusieurs lisent ensemble (degré  d'accès 1)
 On n’autorise qu’un seul processus à modifier (on exclut les lecteurs et les
autres rédacteurs)  Exclusion mutuelle (degré = d'accès 1)
 On suppose que les lecteurs sont prioritaires par rapport aux rédacteurs
 Un rédacteur bloqué doit attendre le dernier des lecteurs pour qu’il puisse
entrer en section critique
 Solution
Variables partagées
Semaphore mutex1=1;
Semaphore mutex2=1;
Semaphore wrt=1;
rédacteurs */
int nblect=0;
/* protège le compteur des lecteurs */
/* garantir la priorité des lecteurs)
/* exclusion mutuelle pour les
/* Nombre de lecteurs actifs */
198
IsetSiliana
CHaabani Nizar
198
Solution au Problème des Lecteurs/Rédacteurs
avec priorité des lecteurs par rapport aux rédacteurs
Processus Lecteur
Processus Rédacteur
......
P(mutex1); /* accès exclusif à nblect */
P(mutex2); /* priorité des
lecteurs*/
if (++nblect == 1)
P(wrt);
/* accès exclusif */
P(wrt); /* bloquer les rédacteurs */
Ecriture
V(mutex1); /* libérer l ’utilisation de nblect */
V(wrt); /* libérer l'accès
exclusif */
Lecture
V(mutex2);
P(mutex1);
if (--nblect == 0) /* si le dernier lecteur */
V(wrt); /* autoriser une écriture */
V(mutex1);
......
199
IsetSiliana
CHaabani Nizar
199
5. Les MONITEURS
Motivation :
 Les sémaphores peuvent être utilisés pour résoudre à peu près
n'importe quel problèmes d'exclusion mutuelle ou synchronisation ...
mais les sémaphores possèdent certains désavantages :
 Mécanisme de bas niveau qui demande une discipline sévère
dans la façon dont ils sont utilisés, sous peine d'erreurs: que se
passe-t-il si on oublie d'indiquer un appel à V? ou si on effectue
une action P en trop?
 Le rôle d'une opération P ou V (exclusion mutuelle?
synchronisation conditionnelle?) dépend du type de sémaphore,
de la façon dont il est initialisé et manipulé par les divers processus
pas explicite
 Moniteur :
 Mécanisme de synchronisation de haut niveau, proposé par Hoare et
Brinch Hansen.
 Forme de module qui supporte, à l ’aide de deux mécanismes
indépendants, l ’exclusion mutuelle et la synchronisation
conditionnelle.
 Conceptuellement, un moniteur simule une classe en OO (des
variables partagées et les méthodes qui les manipulent)
 Un moniteur est censé assurer une exclusion mutuelle (un seul
processus actif dans le moniteur) d’accès aux données qu’il contient
IsetSiliana
CHaabani Nizar
2
0
200
0
5.1. Syntaxe et Sémantique d’un Moniteur
 Structure d’un Moniteur
VARIABLES Partagées
- d’Etat
- Condition
Procédures
Points
d'entrée
Externe
s
Interne
s
 Sémantique d’un Moniteur =
 Type abstrait, mais avec des propriétés d’exclusion mutuelle et de
synchronisation lorsque le moniteur est partagé par plusieurs
processus.
 On n’a accès qu’aux procédures externes, pas aux variables
 Les procédures sont exécutées en exclusion mutuelle et donc les
variables internes sont manipulées en exclusion mutuelle
 On peut bloquer et réveiller des taches. Le blocage et le réveil
s’exprime au moyen de conditions.
IsetSiliana
CHaabani Nizar
2
0
201
1
5.1. Syntaxe et Sémantique d’un Moniteur (suite)
 Syntaxe : la forme générale d’une déclaration de moniteur :
Monitor nom_moniteur {
/* --- Déclarations des variables --- */
.....; /* variables d'états */
Condition ... ; /* variables conditions */
/* ------------ Déclarations des procédures ------------ */
Public nom_fonction (...)
{
....
}
Public void nom_procedure (..)
{
....
}
Private .... (...)
{
.....
}
{ /* -- Initialisation des variables ---*/
}
IsetSiliana
CHaabani Nizar
2
0
202
2
5.1.1. Exclusion Mutuelle
 Philosophie des moniteurs = séparer de façon claire l ’exclusion
mutuelle de la synchronisation conditionnelle (coopération):
 L ’exclusion mutuelle est supportée de façon implicite : un appel, par
un processus, d’une procédure exportée par le moniteur assure que la
procédure sera exécutée de façon exclusive, c-à-d, au plus un appel
d’une procédure du moniteur sera actif à un instant donné
 le moniteur maintient une FA des processus en attente d'entrée.
 Les synchronisations conditionnelles doivent être décrites de façon
explicite à l ’aide de variables condition (Condition variables)
 En d ’autres termes, l’exclusion mutuelle est automatique, sa mise en
œuvre étant assurée par le langage (compilateur), la librairie, ou le
système d ’exploitation, pas le programmeur lui-même.
 Langages de programmation
 JAVA (le meilleur) déclarations en exclusion mutuelle
(‘’synchronized’’) certaines méthodes d ’une classe.
 ADA95 -- type protégé, objet protégé « protected »; ainsi, toutes les
procédures de ces objets protégés sont exécutées en exclusion
mutuelle.
IsetSiliana
CHaabani Nizar
2
0
203
3
5.1.2. Variables de Condition
 Une variable condition est utilisée pour suspendre un processus jusqu'à ce
qu’une certaine condition devienne vraie.
 Déclarée comme une variable, mais on ne peut ni lui attribuer de
valeur ni la tester) -- Condition C;
 Servir de FA des processus qui attendent sur cette condition
 3 opérations possibles sur une variable condition C :
 Empty(C)
// La FA associée est-elle vides ?
 Mise en attente d’un processus : Wait(C) // le processus appelant
se bloque et doit libérer le moniteur.
 Réactivation de processus en attente : Signal(C) // reprend
exactement un processus (en tête de la FA associée à C). Si aucun
processus n ’est suspendu alors cette opération est sans effet.
 Problème de signalisation : un processus P fait un signal et réveille un
processus Q, alors qui aura le contrôle exclusif du moniteur? 2 approches :
 Signaler et continuer : le processus qui exécute signal continue son
exécution, donc conserve l'accès exclusif au moniteur. Le processus
ayant été signalé sera exécuté plus tard Approche non-préemptive -- la
plus couramment utilisée (Unix, Java, Pthreads).
 Signaler et Attendre : le processus qui signale attend pendant que celui
qui vient d'être signale acquiert l accès exclusif au moniteur
IsetSiliana
CHaabani Nizar
2
0
204
4
IsetSiliana
CHaabani Nizar
2
0
205
5
5.2. Similitudes/Différence entre P/Wait et V/Signal
 Les opérations Wait et P peuvent toutes deux avoir pour effet
de suspendre un processus qui exécute cette opération :
 Wait suspend toujours le processus
 P ne le fait que si la valeur du sémaphore est négative ou nulle
 Signal et V peuvent réactiver un processus suspendu :
 Signal n ’a aucun effet si aucun processus n’est suspendu,
 alors que V aura pour effet d’incrémenter la valeur du
sémaphore si aucun processus n ’est suspendu.
 Implantation des moniteurs par des sémaphores :
 Assurer l ’exclusion mutuelle au moniteur mutex (P entrée V
après sortie)
 A chaque variable condition sont associés un sémaphore et un
compteur
 Wait (V(mutex); P(semcond))
IsetSiliana
CHaabani Nizar
2
0
206
6
Exemple: Producer-consumer
Monitor ProducerConsumer
condition full, empty;
integer count;
procedure insert(item:integer);
begin
if count = N then wait(full);
insert_item(item);
count := count + 1;
if count = 1 then signal(empty)
end;
function remove: integer;
begin
if count = 0 then wait(empty);
remove = remove_item;
count := count - 1;
if count = N-1 then signal(full)
end;
procedure producer;
begin
while true do
item = produce_item();
ProducerConsumer.insert(item)
end;
procedure consumer;
begin
while true do
ProducerConsumer.remove();
consume_item(item);
end
count := 0;
end monitor;
IsetSiliana
CHaabani Nizar
2
0
207
7
Lecteurs/Rédacteurs
1.Un objet (par ex. un fichier, un enregistrement dans un fichier ou une base de
données toute entière) est partagé entre plusieurs activités concurrentes.
2.Certaines activités les lecteurs) ne modifient pas le contenu de l’objet
contrairement à d’autres (les écrivains).
3.Les lecteurs peuvent donc accéder simultanément au fichier.
4.Un écrivain au contraire doit accéder seul au fichier.
5.Si le fichier est disponible, lecteur et rédacteur ont la même priorité.
Il existe plusieurs versions classiques du problème.
IsetSiliana
CHaabani Nizar
2
0
208
8
Lecteurs/Rédacteurs
variante n°1 : Priorité aux lecteurs.
S’il existe des lecteurs sur le fichier, toute nouvelle demande
de lecture est acceptée.
risque : le rédacteur peut ne jamais accéder au fichier (famine).
variante n°2 : Priorité aux lecteurs, sans famine des
rédacteurs.
S’il existe des lecteurs sur le fichier, toute nouvelle demande de
lecture est acceptée sauf s’il y a un rédacteur en attente.
variante n°3 : Priorité aux rédacteurs.
Un lecteur ne peut lire que si aucun rédacteur n’est présent ou en
attente.
risque : famine des lecteurs.
IsetSiliana
CHaabani Nizar
2
0
209
9
Lecteurs/Rédacteurs
variante n°4 : FIFO.
Les demandes d’accès à l’objet sont servies dans l’ordre
d’arrivée. S’il y a plusieurs lecteurs consécutifs, ils sont
servis ensemble.
risque : Le regroupement des lecteurs est inefficace si les
demandes sont lecteur/écrivain en alternance.
IsetSiliana
CHaabani Nizar
2
1
210
0
IsetSiliana
CHaabani Nizar
2
1
211
1
Exemple: Lecteurs/Rédacteurs
type lecture_écriture = moniteur
private écriture: booléen;
private lecteurs: entier;
private accord_lecture,accord_écriture: condition;
procédure début_lecture;
début
si écriture ou accord_écriture.non_vide
alors accord_lecture.wait
findesi;
lecteurs:= lecteurs + 1;
accord_lecture.signal
fin;
procédure fin_lecture;
début
lecteurs:= lecteurs − 1;
si lecteurs = 0 alors
findesi
fin;
IsetSiliana
?
accord_écriture.signal
CHaabani Nizar
2
1
212
2
procédure début_écriture;
début
si lecteurs > 0 ou écriture
alors accord_écriture.wait
findesi;
écriture:= vrai
fin;
procédure fin_écriture;
début
écriture:= faux;
si accord_lecture.non_vide
alors accord_lecture.signal
sinon accord_écriture.signal
findesi
fin;
début {du moniteur}
écriture:= faux;
lecteurs:= 0
fin;
IsetSiliana
CHaabani Nizar
2
1
213
3
import lecture_écriture
processus lecteur
{
lecture_écriture.début_lecture ;
< lecture >
lecture_écriture.fin_lecture ;
}
processus écrivain
{
lecture_écriture.début_écriture ;
< écriture >
lecture_écriture.fin_écriture ;
}
IsetSiliana
CHaabani Nizar
2
1
214
4
Structure des Systèmes Informatiques
 Opérations des Systèmes Informatiques
 Structure des E/S
 Structure de stockage
 Hiérarchie de stockage
 Protection matérielle
 Structure réseau
IsetSiliana
CHaabani Nizar
215
Opérations des SI
 Périphériques d’E/S et la CPU peuvent s’exécuter
simultanément
 Chaque contrôleur de périphérique est en charge d’un
type particulier de périphériques
 Chaque contrôleur de périphérique a un tampon local
 CPU transfère les données de/à la mémoire centrale
au/du tampon local
 E/S se fait du périphérique au tampon local du
contrôleur
 Le contrôleur de périphérique informe la CPU qu’il a
fini l’opération en générant une interruption
IsetSiliana
CHaabani Nizar
216
Traîtement des Interruptions
 L’OS sauvegarde l’état de la CPU (registre, compteur
de programme)
 Détermine quelle interruption a eu lieu:
 polling
 Vecteur d’interruption
 Différentes fonctions du noyau correspondent aux
traîtement rattachés à chaque interruption
IsetSiliana
CHaabani Nizar
217
Structure des E/S
 E/S Synchrones – Après le début de l’E/S, le contrôle ne retourne
au processus utilisateur qu’à la terminaison de l’opération d’E/S
 Instruction Wait qui fait attendre la CPU jusqu’à la nouvelle
interruption
 Boucle Wait (contentieux sur l’accès mémoire)
 E/S Asynchrones – Après le début de l’E/S, le contrôle retourne au
processus utilisateur sans attendre la fin de l’E/S
 Appel système – requête à l’OS pour permettre à l’utilisateur
d’attendre la fin de l’E/S
 Table de Statut de Périphérique contient une entrée par
périphérique d’E/S indiquant son type, son adresse, et son état
 L’OS regarde dans cette table d’E/S pour déterminer l’état du
périphérique, pour y ajouter une requête, et pour refléter
l’occurrence d’une interruption
IsetSiliana
CHaabani Nizar
218
Deux Méthodes d’E/S
Synchronous
IsetSiliana
Asynchronous
CHaabani Nizar
219
Storage Structure
 Mémoire Principale – le seul média de stockage que la
CPU peut accéder directement
 Mémoire Secondaire – extension de la mémoire
centrale qui offre un espace de stockage persistent
 Disques Magnétiques – plateaux couverts de matériel
magnétique pour le stockage d’informations
 Surface du disque décomposée logiquement en pistes,
divisées elles-mêmes en secteurs
 Le contrôleur de disque fait l’intermédiaire entre la vue
logique du disque par l’OS et sa disposition physique
réelle
IsetSiliana
CHaabani Nizar
220
Hiérarchie des Périphériques de Stockage
IsetSiliana
CHaabani Nizar
221
La lecture sur le disque
IsetSiliana
CHaabani Nizar
222
Principe
– les plateaux tournent à très haute vitesse (entre 3600
et 15000 tours/min)
– la tête de lecture flotte au-dessus du plateau grâce au
coussin d’air induit (à 10 nm de la surface)
– lecture / écriture
• écriture : le courant électrique dans la tête génère un
champ magnétique qui magnétise la surface
• lecture : la magnétisation du support induit un
courant électrique dans la tête
IsetSiliana
CHaabani Nizar
223
Capacité d’un disque
Taille d’une piste
= nb de secteurs par piste * taille d’un secteur
• Taille d’un cylindre
= nb de faces * taille d’une piste
• Taille d’un plateau
= nb de pistes par face * taille d’une piste * 2
• Taille du disque
= nb de cylindres * taille d’un cylindre
= nb de plateaux * taille d’un plateau
IsetSiliana
CHaabani Nizar
224
Qu’est-ce qu’un fichier ?
Une suite de secteurs
– l’ordre est essentiel !!!
IsetSiliana
CHaabani Nizar
225
Qu’est-ce qu’un répertoire ?
 une collection de noms de fichiers
 + un accès à la liste de leurs secteurs
 un répertoire est lui-même un fichier (rangé dans une
suite de secteurs)
Les temps d’accès
Quand on demande à lire un secteur, la carte d'interface va
 1. Placer les têtes de lecture sur le bon cylindre
 2. Attendre que le secteur cherché arrive sous la tête
 3. Copier le secteur sur la carte d'interface.
 4. Envoyer les données de la carte à l'ordinateur.
IsetSiliana
CHaabani Nizar
226
Temps de lecture
Temps de lecture d’un secteur
= durée de 1 tour / nombre de secteurs par piste
• Durée constante (ex : 0,5 ms)
• Débit
= le nombre d'octets lus par seconde si on lisait sans arrêt
= le nombre d'octets qui passent sous la tête en 1 seconde
• Temps de latence
= durée moyenne d’attente d’un secteur = durée d’un 1/2 tour
• Exemple
– secteurs de 512 octets, 32 secteurs par piste, 7200 tours/min
• 16 ko par piste, 120 tours / s
• débit max = 1920 ko/s = 1,875 Mo/s
• temps de lecture d’un secteur = 1/(120*32) = 2,5.10-4s = 0,25ms
• temps de latence = 1/(120*2) = 4,2ms
IsetSiliana
CHaabani Nizar
227
Cache
 Utilisation d’une mémoire très rapide d’accès pour
maintenir des informations dernièrement accédées
 Besoin d’une polititque de gestion de cache
 Le cache introduit un autre niveau de stockage
 Besoin que les données stockées à plusieurs niveaux
soient cohérents
IsetSiliana
CHaabani Nizar
228
Transfert d’un Entier “A” du Disque au Registre
IsetSiliana
CHaabani Nizar
229
Architecture Système Générale
 Composition
 Un (ou plusieurs) processeur(s)
 Mémoire
 Contrôleurs de périphériques
 Périphériques associés
 Bus de liaison d’n système informatique
IsetSiliana
CHaabani Nizar
230
Exemple : architecture Pentium
IsetSiliana
CHaabani Nizar
231
Cycle de Von Neumann
Scenario
 Extraction d’une instruction
 Stockage dans le registre d’instruction
 Décodage
 Extraction de données éventuelles (opérandes)
 Exécution
Implémentation
 Jeu d’instructions spécifique à chaque CPU
 Utilisation de registres CPU. Registres spéciaux : PC
(Program Counter), SP (Stack Pointer), PSW (Program Status
Word)
 Architectures modernes : pipelines, CPU super-scalaires, RISC
etc.
IsetSiliana
CHaabani Nizar
232
Initialisation
BIOS (Basic Input Output System)
 initialise le matériel (registres processeur, mémoire
etc.)
 scanne les bus (ISA et PCI d’abord) pour trouver un
périphérique amorçable (bootable) Premier secteur =)
partition active =) deuxième « boot loader » ou
système
 charge le système d’exploitation en mémoire
Système d’Exploitation
 lance le premier processus (« init »)
 attend un événement
 Les événements sont produits par des « interruptions »
IsetSiliana
CHaabani Nizar
233