Professional Documents
Culture Documents
Systme
dexploitation 1
TI11-16
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.h
tml
IsetSiliana
CHaabani Nizar
PLAN du COURS
I. Chapitre 1: Introduction
II.
III.
IV.
V.
VI.
Chapitre
Chapitre
physique
Chapitre
virtuelle
Chapitre
Chapitre
2: Gestion de Processus
3: Gestion de la mmoire
4: Gestion de la mmoire
5: Gestion des entres-sorties
6: Gestion des fichiers
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.h
tml
IsetSiliana
CHaabani Nizar
Chapitre 1: Introduction
Cest quoi un OS?
Grands Systmes
Systmes Personnels
Systmes Multiprocesseurs
Systmes Distribus
Systmes Temps Rel
Systmes la main
Historique des OSs et des Concepts
CHaabani Nizar
facile utiliser
manire efficace
IsetSiliana
CHaabani Nizar
IsetSiliana
CHaabani Nizar
Le systme dexploitation
Le noyau
IsetSiliana
CHaabani Nizar
Le systme dexploitation
Le
noyau
gestion
des priphriques (au moyen de pilotes)
gestion des processus :
attribution de la mmoire chaque processus
ordonnancement des processus (rpartition du
temps dexcution sur le ou les processeurs)
synchronisation et communication entre
processus (services de synchronisation,
dchange de messages, mise en commun de
segments de mmoire, etc.)
gestion des fichiers (au moyen de systmes de
fichiers)
gestion des protocoles rseau (TCP/IP, IPX, etc.)
IsetSiliana
CHaabani Nizar
Le systme dexploitation
Autres composantes de
Les bibliothques dynamiques regroupent les
lOS
oprations
IsetSiliana
CHaabani Nizar
CHaabani Nizar
Systme dexploitation
(SE)
Fournit linterface usager/machine:
Masque les dtails du matriel aux
applications
Le SE doit donc traiter ces dtails
Contrle lexcution des applications
Le fait en reprenant priodiquement le
contrle de lUCT
Dit lUCT quand excuter tel programme
Il doit optimiser lutilisation des ressources pour
maximiser la performance du systme
IsetSiliana
CHaabani Nizar
10
IsetSiliana
CHaabani Nizar
11
CHaabani Nizar
Mode de
fonctionnement de
tous
les programmes
Une partie
seulement des
instructions sont
accessibles
Les instructions qui
affectent les I/O sont
inaccessibles
12
IsetSiliana
CHaabani Nizar
13
IsetSiliana
CHaabani Nizar
14
Ressources et leur
gestion
Ressources:
physiques: mmoire, units E/S, UCT...
Logiques = virtuelles: fichiers et bases de
IsetSiliana
CHaabani Nizar
15
CHaabani Nizar
16
CHaabani Nizar
17
IsetSiliana
CHaabani Nizar
18
Systmes Batch
Multiprogramms
Plusieurs tches sont simultanment en mmoire, et le CPU
est multiplex entre elles; si une doit attendre une E/S, une
autre tche est choisie
IsetSiliana
CHaabani Nizar
19
des
signaux extrieur urgents
plusieurs systmes d'exploitations n'y arrivent pas
car
l'interruption de certaines activits met le systme
dans
un tat instable
IsetSiliana
CHaabani Nizar
20
Systmes Personnels
Ordinateurs Personnels Systmes ddis
un seul utilisateur
Priphriques dE/S clavier, souris, crans,
imprimante, .
Convivialit et interactivit avec lutilisateur
Peuvent tourner diffrents types dOS
(Windows, MacOS, UNIX, Linux)
IsetSiliana
CHaabani Nizar
21
Systmes Parallles
Systmes avec plusieurs CPUs en
communication
Aussi connus comme systmes
multiprocesseurs
Systmes fortement coupls processeurs
IsetSiliana
CHaabani Nizar
22
Systmes Rpartis
Rpartir la computation sur plusieurs processeurs
physiques
Systmes faiblement coupls chaque processeur
possde sa propre mmoire; les processeurs
communiquent entre eux via des lignes de
communication, tels des bus, des lignes de tlphone,
des rseaux, etc
Avantages des systmes rpartis
Partage des ressources
Puissance de computation plus grande Partage de
charge
Tolrance aux pannes
Communications
IsetSiliana
CHaabani Nizar
23
Echelle (WAN)
Peuvent tre des systmes client-serveur
ou peer-to-peer
IsetSiliana
CHaabani Nizar
24
IsetSiliana
CHaabani Nizar
25
IsetSiliana
CHaabani Nizar
26
Systmes la main
Personal Digital Assistants (PDAs)
Tlphones Mobiles
Contraintes:
Mmoire limite
Processeurs lents
Ecrans daffichage petits
IsetSiliana
CHaabani Nizar
27
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.h
tml
IsetSiliana
CHaabani Nizar
28
Exemples :
Systme
Mono-utilisateur
DOS
WIN9X
Multi-utilisateur
Mono-Tche
Multi-Tche
X
X
WIN NT\2000
Unix
Mac \ OS X
IsetSiliana
CHaabani Nizar
29
Repertoire1
fichier1
R2
fichier2
R5
R3
..
R4
R6
R7
R8
fichier3
IsetSiliana
CHaabani Nizar
30
IsetSiliana
CHaabani Nizar
31
IsetSiliana
CHaabani Nizar
32
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 caractres plus 3 pour
l'extension.
De plus, les fichiers ne doivent contenir que les caractres suivants:
lettres de A Z
chiffres de 0 9
caractres spciaux 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 spare le nom de l'extension).
CHaabani Nizar
33
NUL
AUX
COM1
COM2
COM3 COM4
PRN
IsetSiliana
CHaabani Nizar
34
CHaabani Nizar
35
IsetSiliana
CHaabani Nizar
36
IsetSiliana
37
IsetSiliana
CHaabani Nizar
38
Rpertoire
courant
IsetSiliana
Repertoire1
fichier1
R2
fichier2
R5
R3
R4
R6
R7
R8
fichier3
CHaabani Nizar
39
IsetSiliana
CHaabani Nizar
surnom.txt
40
IsetSiliana
41
cd
change de rpertoire
cd ..
rpertoire parent
md ou mkdir
deltree
copy, xcopy
copie de fichier
move
dplacement de fichier
del
supprime le fichier
help
format
ver
IsetSiliana
CHaabani Nizar
42
IsetSiliana
IsetSiliana
CHaabani
Nizar
CHaabani
Nizar
4343
La commande
Commandes
EXECUTER
MsConfig
RegEdit
et WINDOWS
DOS
SysEdit
MsInfo32
MMC
WinMSD
Ping
IpConfig
MsMsgs
Perfmon
Charmap (table des
distance)
Wab (Carnet dadresse Outlook
Express)
Sfc (Intgrit des fichiers systme
Winver (N version Windows)
caractres
IsetSiliana
CHaabani Nizar
44
Ordinateur
IsetSiliana
CHaabani Nizar
45
Principes de fonctionnement
Ordinateur
IsetSiliana
Unit centrale
de traitement
Unit de contrle
ou
Unit de commande
Mmoire
Cache
Unit arithmtique
et logique
ou
Unit de traitement
ou
Unit de calcul
Instructions
Mmoire centrale
ou principale
Donnes
Units dentre/sortie
ou dI/O
Contrleur de
priphriques
CHaabani Nizar
Carte
rseau
46
Bus de donnes
CPU
Mmoire
Centrale
Unit
d E/S
Priphriques
IsetSiliana
Autre reprsentation
Bus d adresses
Bus de contrle
CHaabani Nizar
47
IsetSiliana
Horloge
tat
Unit de
calcul
Unit arithmtique
et logique
oprandes
Registres
rsultat
CHaabani Nizar
48
Chap. I I
lordinateur
IsetSiliana
programmes
Description le fonctionnement dun SE
processeur
de Processus
CHaabani Nizar
49
IsetSiliana
CHaabani Nizar
50
IsetSiliana
CHaabani Nizar
51
Processus et
terminologie
Concept de processus: un programme en
(aussi
appel
job,
task,
user
excution
program)
Possde des ressources de mmoire, priphriques, etc
Ordonnancement de processus
Oprations sur les processus
Processus cooprants
Processus communicants
IsetSiliana
CHaabani Nizar
52
1. Notion de Processus
Quest-ce quun programme ?
Ensemble de modules sources/objets
Rsultat de l'dition de liens (actions manipulant des donnes)
Dbut
Etat
Temps t
Fin
CHaabani Nizar
53
SE pour
lallocation de la MC (code, donnes, pile) espace
dadressage
lallocation du processeur (CO, )
Intrt de la notion de processus
Abstraction de la notion d'excution squentielle
Reprsentation des activits parallles et de leurs
IsetSiliana
CHaabani Nizar
54
2. Paralllisme et Concurrence
Soient deux processus P1 et P2 en mmoire centrale (prts sexcuter)
Mise en uvre concrte de lexcution de P1 et P2 :
P1
P2
P1
P2
Excution squentielle
(1 processeur)
Excution parallle
(2 processeurs)
P2
P1
Excution concurrente
(1 processeur)
Systme
T
IsetSiliana
CHaabani Nizar
55
P1
P3
P4
P5
CHaabani Nizar
56
Pile
dexcution
Donnes
Code
Les segments
dun processus
57
Contexte du processeur:
Hypothses : 1 seul processeur +
IsetSiliana
CHaabani Nizar
58
dynamique du processus
commut
restaurer lorsque le processus reprend la
main
IsetSiliana
CHaabani Nizar
59
Ordonnanceur UCT
Dans un systme multitches, le systme
d'exploitation doit grer l'allocation du processeur
aux processus. On parle d'ordonnancement des
processus
IsetSiliana
CHaabani Nizar
60
tat de processus
Au fur etIMPORTANT
a mesure quun processus excute, il
change dtat
IsetSiliana
CHaabani Nizar
61
Changer
Etat
Sauvegarder
Etat
Contexte du
processus
CO
Contexte du
processeur
Info.
dordonnancem
ent
Info.
Complem. +
divers
Contexte accessible
Allocation
mmoire
BCP
(Process Control Block)
IsetSiliana
Etat
dexcution
Mode de
fonctionnement
Masque dIt
Contexte de processus
CHaabani Nizar
CO
PSW
6
2
62
processus
IsetSiliana
CHaabani Nizar
63
Nouveau
processus
PRET
Commutatio
n
It -- Tps
dpass
E/S
termines
BLOQUE
Terminaison
ACTIF
Demande
dE/S
Attente
CHaabani Nizar
64
Le multithreading
IsetSiliana
CHaabani Nizar
65
Trait de Texte
ultithreaded
Absbjshd
Absbjshd
Absbjshd
Dnddjkjdq
Dnddjkjdq
Dnddjkjdq
HqdjlqdjlHqdjlqdjlHqdjlqdjl
JddmkmJddmkmJddmkm
Djdlqjdjdq
Djdlqjdjdq
Djdlqjdjdq
djdqkmkd
djdqkmkd
djdqkmkd
clavier
noyau
Disque
IsetSiliana
CHaabani Nizar
66
Diffrences et
similitudes
entre
La communication entre les threads est
plus rapide que
communication entre
threads
etlaprocessus
:
les processus.
Les Threads possdent les mmes tats
que les processus.
Deux processus peuvent travailler sur une
mme donne (un tableau par exemple) en
lecture et en criture dans une situation
de concurrence de Deux processus il
en est de mme pour les threads.
IsetSiliana
CHaabani Nizar
67
enchanes ( voir)
tat de processus: ready, running, waiting
compteur programme: le processus doit
reprendre l instruction suivante
autres registres UCT
bornes de mmoire
fichiers quil a ouvert
etc., v. manuel
IsetSiliana
CHaabani Nizar
68
CHaabani Nizar
69
IsetSiliana
CHaabani Nizar
70
70
IsetSiliana
P1
Une solution
possible : Faire attendre les processeurs
71
Synchronisation
Un processus doit attendre quun autre processus ait
franchi un certain point de son excution point de
synchronisation
Imposer des contraintes de synchronisation aux
processus
Prcdence des processus
Conditions de franchissement de certains points
IsetSiliana
CHaabani Nizar
critiques
72
processus
Solution 1: attente active
P1
while (ressouce occupee)
occupee = True;
{ };
Ressource;
-- Faire
Faire attendre un
P2
Ressource
Utiliser
IsetSiliana
CHaabani Nizar
Rveil
Reprendre excution
BLOQUE
73
IsetSiliana
acyclique o
suivante :
S1
S2
S3
S4
lire(x)
lire(y)
z=x*y
crire(z)
CHaabani Nizar
S1
S2
S3
S4
74
Iset Siliana
IsetSiliana
CHaabani Nizar
75
IsetSiliana
Chap. I I
1. Introduction
2. Types dordonnancement
3. Modle simple d'ordonnancement
4. Politiques dordonnancement
Organisations des files dattente
Ordonnancement FCFS / SJF/ RR/ priorit/
SRTF/ Multi-niveaux
5. Hirarchie dordonnancement
CHaabani Nizar
76
1. Introduction -- Gnralits
Le SE permet 2 types de dcisions sur le processeur :
Ordonnancement
des
processus :
Lordonnanceur
(scheduler) choisit quel est le processus qui doit tourner
Problme: Dans quel ordre les processus sont servis?;
par exemple, un processeur et plusieurs processus.
Allocation du processeur : lallocateur (dispatcher)
lexcution du processus choisi par le scheduler
lance
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).
Rle : Prendre en charge la commutation de processus, qui
rgle les transitions dun tat un autre des diffrents
processus.
IsetSiliana
CHaabani Nizar
77
Types
Il existe diffrentes politiques d'allocation :
dordonnancement
- 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 premption, ou non
IsetSiliana
CHaabani Nizar
79
UC
Demande E/S
Tranche de temps expire
exit
Fils sexcute
Interruption
IsetSiliana
CHaabani Nizar
Fork un fils
Attente It
80
4. Politique dOrdonnancement
Organisations des FAs
H : Un seul processeur + plusieurs processus
IsetSiliana
Scheduler= Ordi
UC
Service
satisfait
Sortie
Dispatcher =
allocateur
81
4. Politiques dordonnancement
Algorithmes sans premption (sans
Algorithme FCFS (First Come First Served) -- Premier Arriv Premier
Servi
rquisition)
(
FCFS,
SJF,
Priorit)
(1)
FCFS
Un processus s'excute jusqu' sa terminaison, sans retrait forc de la
ressource.
Modle adapt au partage du processeur par des processus de mme
priorit (aucun privilge entre les processus)
Avec les algorithmes d'ordonnancement sans rquisition, un processus
affect au processeur ne peut pas tre interrompu.
Facile implanter,
mais
efficace
(leDa
choix
Proce
ssus peu
Dur
eestime
tedanest
rrivepas li lutilisation
de lUC)
Exemple
P1
24
P2
P3
P4
8
12
3
1
2
3
Schmatiser lexcution des processus selon leur ordre d'arrive. Pour cela,
on utilise le DIAGRAMME DE GANTT
P1
0
P2
24
P3
32
P4
44
47
CHaabani Nizar
82
4. Politiques dordonnancement
Algorithmes sans premption (FCFS, SJF,
SJF
Algorithme SJF -- Shortest Job First (STCF -- Shortest Time to
Priorit)
Completion (2)
First) : Algorithme du Plus Court dAbord :
Suppose la connaissance des temps d'excution : estimation de la
(sans premption)
Algorithme optimal
Minimise
le temps moyen
d'excution
Dans le cas o plusieurs processus possdent la mme dure, la
politique FCFS sera alors utilise.
IsetSiliana
CHaabani Nizar
83
4. Politiques dordonnancement
Algorithmes sans premption (FCFS, SJF,
SJF
Le principe de cet algorithme consiste attribuer
Priorit)
(2)
Priorit
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 systme.
2. Processus interactifs.
3. Processus batch.
4. Processus utilisateurs.
L'ordonnancement avec priorit sans rquisition peut
CHaabani Nizar
84
4. Politiques dordonnancement
Algorithmes avec premption (Priorit,
Priorit RR,
SRTF)
(1)rquisition est d'interrompre un processus en cours
L'ide
de la
d'excution n'importe quel moment.
A chaque processus est assigne (automatiquement par le SE /externe)
une priorit
IsetSiliana
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 dordonnancement
Algorithmes avec premption (Priorit,
Priorit RR,
SRTF) (1)
IsetSiliana
92
P2
(4 units)
Excution
CPU
P1
(3 units)
Q
P8
(2 units)
Q
Q
P7
(4 units)
IsetSiliana
P3
(2 units)
CHaabani Nizar
P4
(3 units)
P5
(3 units)
P6
(5 units)
93
10 12
14
16
17 19
20 21
23
25 26 Temps de vie
FA n-1 (Q n1)
FA1
Rquisition
(Q1)
Q 0 Q 1 Q 2 ... Q
n-1
Arrive
FA 0
(Q 0)
CPU
Terminaison
+
Priorit
Scheduler
Dispatcher
rquisition
Choisir le processus dont le temps d'excution restant est le plus court
Il y a rquisition selon le critre de temps d'excution restant et l'arrive
dun processus
Ncessit de sauvegarder le temps restant
Exemple :
8
5
5
2
0
2
3
4
Diagramme de Gantt
P1 P2
0
P4
4
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
Thoriquement, + SRTF offre un minimum de temps dattente; - difficile de
IsetSilianaprdire le
CHaabani
96
futurNizar
priorits
IsetSiliana
CHaabani Nizar
97
IsetSiliana
CHaabani Nizar
Sortie
5. Hirarchie dOrdonnancement
(2)
Ordonnancement multi-niveaux permet de satisfaire :
Favoriser les processus courts
Favoriser les processus , qui ne demandent pas trop lUC
Dterminer la nature de chaque processus le plutt possible et
IsetSiliana
(RR)
(FCFS/SJF)
+
Priorit fixe
CHaabani Nizar
FA n-1
Rquisition
FA1
Processus Interactifs
CPU
FA 0
Terminaison
Processus Systme
99
FA n-1
(RR)
Rquisition
Arrive niveau 1
(FCFS)
Arrive niveau 0
(FCFS)
FA1
FA 0
CPU
Terminaison
IsetSiliana
CHaabani Nizar
100
IsetSiliana
CHaabani Nizar
101
Plan du chapitre
1. Introduction
2. Fonctions attendues
3. Va-et-vient (swapping)
4. Mmoire Virtuelle
5. Algo. de Replacements de Pages
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
IsetSiliana
CHaabani Nizar
102
1. Introduction
La mmoire centrale est une ressource requise par
tout processus
Un programme doit tre charg dans la mmoire
centrale pour tre excut
Demarrer_processus(p) Allouer(taille(p))
Terminer_processus(p) Liberer(zone_alloue_ (p))
Problmatique
Grer les processus associs des programmes trop
volumineux
Grer le partage de la mmoire physique entre diffrents
processus
IsetSiliana
CHaabani Nizar
103
Monoprogrammation:
Mmoire rserve au SE
Mmoire rserve au seul processus en excution.
Multiprogrammation:
La Multiprogrammation amliore le taux
2. Fonctions
dutilisation duattendues
CPU mais requiert un bon
partitionnement de la mmoire.
A linitialisation du systme, la mmoire est
CHaabani Nizar
104
File vide
File pleine
IsetSiliana
CHaabani Nizar
105
2. Fonctions attendues
IsetSiliana
CHaabani Nizar
106
2. Fonctions
attendues
Mmoire physique: mmoire principale RAM de la machine
Mmoire physique :
Suite contigu de mots (8, 16, 32, 64 bits selon processeur)
Adressage direct alatoire
Tailles courantes : 256 Mega 2 4 Giga
Mmoire logique :
Espace logiquement contigu
Adressage direct alatoire de mots
Taille maximum = 2K 1 (k = la capacit dadressage)
IsetSiliana
CHaabani Nizar
107
2. Fonctions attendues
Mise en uvre des mmoires logiques au
CHaabani Nizar
108
Ex. dapplication
max?
Dterminer le taux dutilisation de CPU, si les
16Mo de mmoire?
IsetSiliana
CHaabani Nizar
109
3. Le va-et-vient
(swapping)
IsetSiliana
CHaabani Nizar
110
IsetSiliana
CHaabani Nizar
111
Le va-etvient
i.
(swappin
g)
(a) A est en
mmoire
ii.
(b,c) B et C sont
cres
ou chargs
le
iii. depuis
(d) A est
disque
transfrer sur
le disque
iv. (e,f) D arrive,
tandis
que B sen va
v.
(g) A
revient
IsetSiliana
CHaabani Nizar
112
Fonction attendue :
Objectifs :
Optimiser lutilisation de la mmoire (limiter la
fragmentation)
Optimiser les algorithmes dallocation / libration
Techniques :
Zones contigus de taille fixes
Zones contigus de taille variables
Zones non contigus de taille fixe (systmes pagins)
Zones non contigus de taille variable (systmes
segments)
IsetSiliana
CHaabani Nizar
113
CHaabani Nizar
114
Allocation Contigue
Allocation plusieurs partitions
(Cont.)
Trous bloc de mmoire disponible; trous de taille
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
116
Fragmentation: mmoire
non utilise
Un problme majeur dans l`affectation
contigu:
Il y a assez despace pour excuter un
IsetSiliana
CHaabani Nizar
117
Partitions fixes
Mmoire principale
subdivise en rgions
distinctes: partitions
Les partitions sont soit
de mme taille ou de
tailles ingales
Nimporte quel progr.
peut tre affect une
partition qui soit
suffisamment grande
(Stallings)
IsetSiliana
CHaabani Nizar
118
8M
12M
CHaabani Nizar
119
8M
12M
(Stallings)
IsetSiliana
CHaabani Nizar
120
CHaabani Nizar
121
CHaabani Nizar
122
IsetSiliana
compactage
CHaabani Nizar
123
Compactage
Une solution pour la fragmentation externe
Dfinition: Le compactage (ou
dfragmentation) est une opration ralise
par le systme d'exploitation consistant
dplacer toutes les pages vers des
emplacements contiges pour avoir un grand
espace libre et minimiser ainsi le nombre de
trous mmoires.
dsavantages
temps de transfert programmes
besoin de rtablir tous les liens entre adresses de
diffrents programmes
IsetSiliana
CHaabani Nizar
124
Problme de lAllocation
Comment satisfaire une requte de taille n partir dune
Dynamique
liste de blocs
First-fit: Allouer le premier bloc assez grand
Best-fit: Allouer le plus petit bloc assez grand;
CHaabani Nizar
125
Exercice
On considre le schma d'allocation de la
IsetSiliana
CHaabani Nizar
126
Systmes d'Exploitation
Chapitre 2.
Partie II.
La Mmoire Virtuelle
Contenu du cours
Prsentation
La pagination -- transformation des adresses
Les algorithmes de Remplacement
FIFO/LRU/OPTIMAL/NRU
IsetSiliana
CHaabani Nizar
127
1. Prsentation
Objectif : fournir un espace dadressage indpendant de
Pagination -- Principe :
lespace dadressage virtuel est divis en petites units -- PAGES
lespace dadressage physique est aussi divis en petites units --
CASES (frames)
Les pages et les cases sont de mme tailles
IsetSiliana
CHaabani Nizar
128 128
Pagination
CHaabani Nizar
129
2. Pagination -- Principe
l'espace d'adressage du programme est dcoup en morceaux linaires de
Disque (MV)
7
6
5
4
3
2
1
0
Case
X
0
3
2
1
0
X
2
1
X
X
Espace
dadressage
Virtuel
Processus
en MC
charger un programme en
mmoire 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
Processeur 16 bits
Table de Pages
216 adresses
virtuelles et 64Ko
Mmoire physique
de 32Ko
Page de 4Ko
Nbr pages
virtuelles = 64/4 =
16
Nbr cadres de
pages = 32/48192
= -8 12287
4096 - 8191
0
- 4095
IsetSiliana
CHaabani Nizar
134
quivalent
en mmoire physique
Npage dplacement
Ncase dplacement
N case
Mmoire physique
L'adresse d'un octet est donc form par le couple <nde page laquelle
appartient l'octet, dplacement relativement au dbut de cette page >.
IsetSiliana
CHaabani Nizar
135
CPU
MMU
B. Donnes (lecture/criture)
@ Physique
Mmoire Centrale
Mmoire Virtuelle
P
1
P0
IsetSiliana
CHaabani Nizar
137
Mmoire Virtuelle
CHaabani Nizar
138
8192 =
1024*8
12287
=
122
92=
(102
4*12
)
+4
1024*12
(8*10
24)+
4
=
819
6
IsetSiliana
CHaabani Nizar
139
IsetSiliana
CHaabani Nizar
140
SE
N
N case
Droutement
(Dfaut de page)
0
Table des pages
Processus
Case libre
Restaurer la table des pages
Rfrence
Redmarrer linstruction
IsetSiliana
Ramener
en MC la
page
absente
Mmoire Centrale
CHaabani Nizar
141 141
coder les
pages
IsetSiliana
CHaabani Nizar
142 142
IsetSiliana
CHaabani Nizar
143
IsetSiliana
CHaabani Nizar
144
3. Algorithmes de Remplacement de
Pages
A la suite dun dfaut de page, le SE doit retirer une page de la MC pour
Recently Used)
Optimal
Remplacement dune page non rcemment utilise -- NRU (Not Recently
Used)
IsetSiliana
CHaabani Nizar
145 145
FIFO :
Lors dun dfaut de page, la page la plus anciennement charge est la page
cases\ref.
2
3
D
B
C
A
B
4 dfauts de
pages
IsetSiliana
CHaabani Nizar
146 146
CHaabani Nizar
147
choisir comme victime la page qui sera rfrence le plus tard possible
Ncessite la connaissance, pour chacune des pages, le nombre
dinstructions qui seront excutes avant que la page soit rfrence
Algorithme irralisable dans un contexte offline
Connaissance des rfrences qui seront faites
Intrt : permet de comparer les performances des autres algorithmes
Exemple : reprendre exemple 1 en appliquant optimal
cases\ref.
2
3
C
C
B
C
IsetSiliana
B
2 dfauts de
pages
CHaabani Nizar
148 148
cases\ rf.
1
2
3
D
B
IsetSiliana
C
A
D
LRU :
9 dfauts de
pages
Optimal : ?
B
D
C
A
CHaabani Nizar
D
149 149
IsetSiliana
CHaabani Nizar
150
IsetSiliana
CHaabani Nizar
151
12 DEFAUT PAGE
IsetSiliana
CHaabani Nizar
152
RM
RM
RM
RM
=
=
=
=
00
01
10
11
:
:
:
:
CHaabani Nizar
153 153
Optimal
LRU
NRU
FIFO/Alatoire
-
IsetSiliana
CHaabani Nizar
154 154
4. La Mmoire Virtuelle
Principe
Pagination
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 dentres!
CHaabani Nizar
156
Tables de pages
multiniveaux
CHaabani Nizar
157
Tables de pages
inverses
Cas dun processeur 64 bits, 256Ko
de mmoire et page de 4Ko
IsetSiliana
CHaabani Nizar
158
Structure dune
entre de la Table des
pages
Prsent/ Absent: 1 bit, indique si la page est en mmoire ou non.
Protection: 1 bit (0: RW, 1: R) ou 3 bits (RWX).
Modifi: 1 bit, une page modifie doit tre crite sur le disque.
Rfrenc: 1 bit, chaque fois que la page est rfrence (lue ou crite) il
est mis 1.
Cache inhib: 1 bit, permet dinhiber le cache pour une page.
IsetSiliana
CHaabani Nizar
159
Algo
de
remplacement
de
Dfaut de page
pages
Algo. optimal
IsetSiliana
CHaabani Nizar
160
Principe
Recently
Used)
Classes de pages
CHaabani Nizar
161
CHaabani Nizar
162
Algo de lhorloge
Page
charge
rcemment
Page
charge en
premier
En cas de dfaut
de page et A tel
que R = 1
Algo de lhorloge
CHaabani Nizar
163
Implantations
Cellules initialises 0
Quand une page k est rfrence, tous les bits de la
range k 1, tous les bits de la colonne k 0
Un dfaut de page vince la page dont la range est la
+ petite
IsetSiliana
CHaabani Nizar
164
Algo LRU
CHaabani Nizar
165
Algo de vieillissement
Principe
Cet algo ncessite un compteur/ page (init: 0)
A chaque interruption, le SE examine toutes
les pages en mmoire, et pour chaque page
son bit R est ajout son compteur, comme
suit:
CHaabani Nizar
166
Algo de vieillissement
IsetSiliana
CHaabani Nizar
167
Algo de vieillissement
Diffrence
1:
vs
LRU
Slide 27 (e)>> les pages 3 (00100000) et 5
Diffrence 2:
Le compteur de lalgo de vieillissement a un
CHaabani Nizar
168
Algo ensemble de
travail
Pagination la demande
Les pages sont charges la demande et
Ensemble de Travail
Cest lensemble de pages exploites par le
processus lors des k rfrences en mmoire
les + rcentes
Il est intressant que le SE mmorise
lensemble de travail de chaque processus
et pr-charge en mmoire lensemble de
travail du processus
En cas de dfaut de page, vincer une page
qui lensemble de travail du processus
IsetSiliana
CHaabani Nizar
169
Algo ensemble de
travail
IsetSiliana
CHaabani Nizar
170
Algo WSClock
IsetSiliana
CHaabani Nizar
171
IsetSiliana
CHaabani Nizar
172
CHaabani Nizar
173 173
IsetSiliana
CHaabani Nizar
174 174
Allocation
plus de page
Dfaut
de pages
Limite suprieure
Limite infrieure
Retrait de page
Nombre de pages
Si un processus provoque trop de dfauts de pages :
au dessus dune limite suprieure : on lui allouera plus de pages
en dessous dune limite infrieure : on lui en retirera
Sil y a plus de pages disponibles et trop de dfauts de pages, on devra
suspendre un des processus
IsetSiliana
CHaabani Nizar
175 175
ncessite W
les dfauts de pages seront provoqu lors des changements despace de
travail
Ce modle nest utilis que pour la prpagination
Prpagination
Lors du lancement dun processus ou lors de sa reprise aprs suspension,
on provoque obligatoirement un certain nombre de dfauts de page
CHaabani Nizar
176 176
Chap. II
SYNCHRONISATION ET COMMUNICATION
ENTRE PROCESSUS --IPC
1.Exemple introductif
Int i;
P1 P2
i=0;
i=0;
while (i<10)
while (i>-10)
i++;
i--;
printf(P1 GAGNE! \n);
GAGNE !\n);
printf(P2
manire indivisible!
Lequel des processus P1 ou P2 gagne?
Vont-ils terminer? Si lun se termine, est-ce que
lautre termine aussi?
Est-ce que P1 peut commencer?
177
IsetSiliana
CHaabani Nizar
177
Prsentation du problme
Pas dinteraction:
Excution dans nimporte quel ordre
Excution parallle ou concurrente
Moyens de synchronisation:
Matriel: masquage dinterruption et TASTest-And-Set
Logiciel: verrous, smaphores, moniteurs, et passage
par messages
178
IsetSiliana
CHaabani Nizar
178
Conditions de rapidit
un ordre quelconque de processus/instructions
peut produire des rsultats incorrects
La commutation dpend, dans le cas
de concurrence, de lordonnancement
de paralllisme, de la vitesse dexcution relative on
synchronise le processus le plus rapide sur le processus
le plus lent..
179
IsetSiliana
CHaabani Nizar
179
daccs.
Comment viter ce conflit?
satisfaire:
1.
2.
3.
180
IsetSiliana
CHaabani Nizar
180
// Entrer en SC
] Prologue
SC
// Sortir de la SC
SNC
While (1);
] Epilogue
181
IsetSiliana
CHaabani Nizar
181
3. Solutions Possibles
Hypothses:
Vitesses relatives des processus quelconque et inconnu
tout processus quitte sa SC au bout dun temps fini
Aperu
Opratio
ns
atomique Verrous
s de haut Moniteurs
niveau
(API)
Opratio
ns
Smaphores
Send/Receive
182
IsetSiliana
CHaabani Nizar
182
CHaabani Nizar
183
Solutions Matrielles
--TAS
184
IsetSiliana
CHaabani Nizar
184
185
IsetSiliana
CHaabani Nizar
185
Algorithme2
Algorithme2: deux drapeaux
dernieres!
186
IsetSiliana
CHaabani Nizar
186
Solution de Peterson
Algorithme3 //pour deux processus
dmontrer?
Gnralisation n processus: voire algorithme de
Bakery
187
IsetSiliana
CHaabani Nizar
187
Solutions de blocage
Smaphores
Moniteurs
Send/Receive
188
IsetSiliana
CHaabani Nizar
188
4. Les SEMAPHORES
Motivation : synchronisation des processus concurrents
Une approche par attente active nest pas intressante, puisque
processus concurrents
Le principe est directement hrit des chemins de fer -- Signal
muni dun bras indiquant si la voie ferre est libre ou occupe
CHaabani Nizar
189
CHaabani Nizar
190
Smaphore de blocage
A chaque smaphore est associe une file dattente
pour les processus bloqus
Cration dun smaphore gnral
typedef struct semaphore {
int valeur;
bcp *tete; }
void P(semaphore *S)
{ if ( --S->valeur < 0) {
insrer ce processus dans la FA associe
Bloquer }
}
void V(semaphore *S)
{ if ( ++S->valeur <= 0) {
supprimer le processus courant de la FA
associe ce smaphore
Rveiller }
}
Lutilisation correcte des smaphores ne doit pas
dpendre dune gestion particulire de la file dattente
191
IsetSiliana
CHaabani Nizar
191
peut devenir ngative aprs un certain nombre d'oprations P(S) -nombre des processus en attente.
192
IsetSiliana
CHaabani Nizar
192
processus en attente sont ractivs dans lordre dans lequel ils ont t
suspendus sur le smaphore.
193
IsetSiliana
CHaabani Nizar
193
blocage?
Cot de blocage contre le cot de manipulation des
files dattente + la commutation de contexte?
La dure de lattente?
Lattente active peut tre meilleure pour des sections
194
IsetSiliana
CHaabani Nizar
194
Pn
Point de
synchronisation
Processus
.......
// signaler mon arrive
195
CHaabani Nizar
// attendre
l'arrive de lautre
195
Consommateur
Plein
Contraintes de synchronisation :
Relation de prcdence : Producteur <
Consommateur
Section critique (tampon)
IsetSiliana
CHaabani Nizar
196
Variables partages
#define N 100
Semaphore mutex=1; /* protge l'accs au tampon */
Semaphore plein=0; /* compte le nombre dinformations
Processus Producteur
Processus Consommateur
Repeat
Repeat
......
......
Produire_objet();
P(plein);
/* dcrmenter nb info.
*/
......
P(mutex); /* entre en SC */
P(vide) /* dec. Cases libres */
retirer_objet();
P(mutex); /* entre 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
Problme
des Lecteurs/Rdacteurs
des informations:
Variables partages
Semaphore mutex1=1;
/* protge le compteur des lecteurs
*/
Semaphore mutex2=1;
/* garantir la priorit des lecteurs)
Semaphore wrt=1;
/* exclusion mutuelle pour les rdacteurs */
int nblect=0;
/* Nombre de lecteurs actifs */
198
IsetSiliana
CHaabani Nizar
198
Processus Rdacteur
exclusif */
P(wrt);
P(wrt);
/* bloquer les rdacteurs */
V(mutex1); /* librer lutilisation de nblect */
librer l'accs exclusif */
/* accs
Ecriture
V(wrt); /*
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 smaphores peuvent tre utiliss pour rsoudre
peu prs n'importe quel problmes d'exclusion mutuelle ou
synchronisation ... mais les smaphores possdent certains
dsavantages :
Mcanisme de bas niveau qui demande une discipline
svre dans la faon dont ils sont utiliss, 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 rle d'une opration P ou V (exclusion mutuelle?
synchronisation conditionnelle?) dpend du type de
smaphore, de la faon dont il est initialis et manipul
par les divers processus pas explicite
Moniteur :
Mcanisme de synchronisation de haut niveau, propos
par Hoare et Brinch Hansen.
Forme de module qui supporte, laide de deux
mcanismes indpendants, lexclusion mutuelle et la
synchronisation conditionnelle.
Conceptuellement, un moniteur simule une classe en OO
(des variables partages et les mthodes qui les
manipulent)
Un moniteur est cens assurer une exclusion mutuelle (un
seul processus actif dans le moniteur) daccs aux donnes
quil contient
IsetSiliana
CHaabani Nizar
2
0
200
0
dun
VARIABLES Partages
- dEtat
- Condition
Procdures
Points
d'entre
Externe
s
Interne
s
IsetSiliana
CHaabani Nizar
2
0
201
1
Monitor nom_moniteur {
/* --- Dclarations des variables --- */
.....; /* variables d'tats */
Condition ... ; /* variables conditions */
/* ------------ Dclarations des procdures
*/
Public nom_fonction (...)
{
....
}
Public void nom_procedure (..)
{
....
}
Private .... (...)
{
.....
}
{ /* -- Initialisation des variables ---*/
}
IsetSiliana
CHaabani Nizar
------------
2
0
202
2
IsetSiliana
CHaabani Nizar
2
0
203
3
CHaabani Nizar
2
0
204
4
IsetSiliana
CHaabani Nizar
2
0
205
5
nulle
IsetSiliana
CHaabani Nizar
2
0
206
6
Exemple:
ProducerMonitor ProducerConsumer
consumer
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/Rdacteurs
1.Un objet (par ex. un fichier, un enregistrement dans un fichier ou une base de
IsetSiliana
CHaabani Nizar
2
0
208
8
Lecteurs/Rdacteurs
CHaabani Nizar
2
0
209
9
Lecteurs/Rdacteurs
variante n4 : FIFO.
Les demandes daccs lobjet sont servies dans lordre
darrive. Sil y a plusieurs lecteurs conscutifs, 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:
type lecture_criture = moniteur
private criture: boolen;
Lecteurs/Rdacteurs
private lecteurs: entier;
procdure dbut_lecture;
dbut
si criture ou accord_criture.non_vide
alors accord_lecture.wait
findesi;
lecteurs:= lecteurs + 1;
accord_lecture.signal
fin;
procdure fin_lecture;
dbut
lecteurs:= lecteurs 1;
si lecteurs = 0 alors
findesi
fin;
IsetSiliana
accord_criture.signal
CHaabani Nizar
2
1
212
2
procdure dbut_criture;
dbut
si lecteurs > 0 ou criture
alors accord_criture.wait
findesi;
criture:= vrai
fin;
procdure fin_criture;
dbut
criture:= faux;
si accord_lecture.non_vide
alors accord_lecture.signal
sinon accord_criture.signal
findesi
fin;
dbut {du moniteur}
criture:= faux;
lecteurs:= 0
fin;
IsetSiliana
CHaabani Nizar
2
1
213
3
import lecture_criture
processus lecteur
{
lecture_criture.dbut_lecture ;
< lecture >
lecture_criture.fin_lecture ;
}
processus crivain
{
lecture_criture.dbut_criture ;
< criture >
lecture_criture.fin_criture ;
}
IsetSiliana
CHaabani Nizar
2
1
214
4
IsetSiliana
CHaabani Nizar
215
Oprations des SI
Priphriques dE/S et la CPU peuvent sexcuter
simultanment
Chaque contrleur de priphrique est en charge
dun type particulier de priphriques
Chaque contrleur de priphrique a un tampon
local
CPU transfre les donnes de/ la mmoire
centrale au/du tampon local
E/S se fait du priphrique au tampon local du
contrleur
Le contrleur de priphrique informe la CPU quil
a fini lopration en gnrant une interruption
IsetSiliana
CHaabani Nizar
216
Tratement des
Interruptions
LOS sauvegarde ltat de la CPU (registre,
compteur de programme)
Dtermine quelle interruption a eu lieu:
polling
Vecteur dinterruption
IsetSiliana
CHaabani Nizar
217
interruption
Boucle Wait (contentieux sur laccs mmoire)
CHaabani Nizar
218
IsetSiliana
Asynchronous
CHaabani Nizar
219
Storage Structure
Mmoire Principale le seul mdia de stockage que
CHaabani Nizar
220
IsetSiliana
CHaabani Nizar
221
La lecture sur le
disque
IsetSiliana
CHaabani Nizar
222
Principe
les plateaux tournent trs haute vitesse (entre
3600 et 15000 tours/min)
la tte de lecture flotte au-dessus du plateau
grce au coussin dair induit ( 10 nm de la
surface)
lecture / criture
criture : le courant lectrique dans la tte gnre
un champ magntique qui magntise la surface
lecture : la magntisation du support induit un
courant lectrique dans la tte
IsetSiliana
CHaabani Nizar
223
CHaabani Nizar
224
Quest-ce quun
fichier
?
Une suite de secteurs
lordre est essentiel !!!
IsetSiliana
CHaabani Nizar
225
Quest-ce quun
une collection de noms de fichiers
rpertoire
?
+ un accs la liste de leurs secteurs
un rpertoire est lui-mme un fichier (rang dans
CHaabani Nizar
226
Temps de lecture
Temps de lecture dun secteur
= dure de 1 tour / nombre de secteurs par piste
Dure constante (ex : 0,5 ms)
Dbit
= le nombre d'octets lus par seconde si on lisait sans arrt
= le nombre d'octets qui passent sous la tte en 1 seconde
Temps de latence
= dure moyenne dattente dun secteur = dure dun 1/2 tour
Exemple
secteurs de 512 octets, 32 secteurs par piste, 7200 tours/min
16 ko par piste, 120 tours / s
dbit max = 1920 ko/s = 1,875 Mo/s
temps de lecture dun secteur = 1/(120*32) = 2,5.10-4s =
0,25ms
temps de latence = 1/(120*2) = 4,2ms
IsetSiliana
CHaabani Nizar
227
Cache
Utilisation dune mmoire trs rapide daccs
IsetSiliana
CHaabani Nizar
228
IsetSiliana
CHaabani Nizar
229
Architecture Systme
Gnrale
Composition
Un (ou plusieurs) processeur(s)
Mmoire
Contrleurs de priphriques
Priphriques associs
Bus de liaison dn systme informatique
IsetSiliana
CHaabani Nizar
230
Exemple : architecture
Pentium
IsetSiliana
CHaabani Nizar
231
CHaabani Nizar
232
Initialisation
BIOS (Basic Input Output System)
initialise le matriel (registres processeur,
mmoire etc.)
scanne les bus (ISA et PCI dabord) pour trouver
un
priphrique amorable (bootable) Premier secteur
=) partition active =) deuxime boot loader
ou systme
charge le systme dexploitation en mmoire
Systme dExploitation
lance le premier processus ( init )
attend un vnement
Les vnements sont produits par des
interruptions
IsetSiliana
CHaabani Nizar
233