You are on page 1of 189

Systmes d'exploitation

Systmes d'exploitation (Operating Systems)


Remi Bonidal (remi.bonidal@loria.fr)

Formation Continue
Anne 2010

R. Bonidal (FC 2010)

Systmes d'exploitation

Systmes d'exploitation

Introduction

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Systmes d'exploitation
Introduction

Sommaire
1 Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle
2 Conception des sytmes d'exploitation
3 Gestion des processus
1 Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Sommaire
1

Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Systme d'exploitation ... ?

Qu'est-ce qu'un systme d'exploitation ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Systme d'exploitation ... ?

Qu'est-ce qu'un systme d'exploitation ?

L'interface entre le logiciel et le physique.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Systme d'exploitation ... ?

Qu'est-ce qu'un systme d'exploitation ?

L'interface entre le logiciel et le physique.

1 Sparer les applications des spcicits du matriel : portabilit

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Systme d'exploitation ... ?

Qu'est-ce qu'un systme d'exploitation ?

L'interface entre le logiciel et le physique.

1 Sparer les applications des spcicits du matriel : portabilit


2 Sparer les applications des limitations du matriel : ni

inni

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Systme d'exploitation ... ?

Qu'est-ce qu'un systme d'exploitation ?

L'interface entre le logiciel et le physique.

1 Sparer les applications des spcicits du matriel : portabilit


2 Sparer les applications des limitations du matriel : ni

inni

3 Protger le matriel des applications.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Systme d'exploitation ... ?

Qu'est-ce qu'un systme d'exploitation ?

L'interface entre le logiciel et le physique.

1 Sparer les applications des spcicits du matriel : portabilit


2 Sparer les applications des limitations du matriel : ni

inni

3 Protger le matriel des applications.


Ce n'est pas facile ! !

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Pourquoi se pencher dessus ?


Pourquoi tudier les systmes d'exploitation (SE) ?
Tout utilisateur est concern

Tout programme est concern

meilleure matrise

amliorer l'ecacit

Confrontation aux mmes problmes

ne pas rinventer la

roue
Challenge intellectuel... et c'est intressant, tout simplement

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Pourquoi un SE ?
Les ressources matrielles sont complexes  dtails techniques
embtants

Contrleur de disquettes NEC PD765


Possde 16 commandes, manipules criture de 1 9 octets dans des registres :
lecture/criture d'un secteur (13 paramtres cods sur 9 octets)
dplacement du bras de lecture
initialisation du contrleur et calibration des ttes de lecture
Retourne 23 champs d'tat et d'erreurs cods sur 7 octets. Il faut grer
soi-mme le dmarrage et la mise en veille du moteur (compromis entre surcot
temps et usure).
Le programmeur doit-it vraiment grer a ? ! ?
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Un rle de gestionnaire

exemple : Partage d'imprimante


Machine multi-utilisateurs avec service d'impression. Plusieurs
programmes dmarrs susceptibles d'imprimer :
verrouillage temporaire de l'accs l'imprimante

ne pas mlanger les ots de caractres

tampons d'impression

un programme ne doit pas attendre inutilement

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Un rle de gestionnaire

Pour grer l'accs une ressource coteuse. Il faut :


connatre l'utilisateur de la ressource
grer les accs concurrentiels
viter les conits entre les programmes/usagers

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

Systmes d'exploitation
Introduction
Dnition

Fonctionnalits d'un SE
Buts d'un systme d'exploitation :
dcharger le programmeur d'une tache norme et fastidieuse

concentration sur le dveloppement de SON application

protger le systme et ses usagers de fausses manipulations


orir une vue simple/uniforme/cohrente de la machine et des
ressources

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

10

Systmes d'exploitation
Introduction
Dnition

Place du SE dans l'ordinateur

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

11

Systmes d'exploitation
Introduction
Historique

Sommaire
1

Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

12

Systmes d'exploitation
Introduction
Historique

les premiers ordinateurs


Gnration 0  La gense
18211836 : Premire machine numrique de Charles Babbage
N'a jamais pu fonctionner correctement

Premire gnration
19401955 : Relais et tubes vide, programms par tableaux
d'interrupteurs
Trs lent, cycle mesur en secondes

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

13

Systmes d'exploitation
Introduction
Historique

volution des ordinateurs


Deuxime gnration  Les mainframes
19551965 : Transistors, cartes perfores et excution par lots
Systme d'exploitation FMS
(Fortran Monitor System)
$JOB $FORTRAN ...Programme...
$LOAD $RUN ...Donnes... $END

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

14

Systmes d'exploitation
Introduction
Historique

volution des ordinateurs


Troisime gnration
19651980 : Circuits intgrs et multi-programmation
Systme d'exploitation OS/360 (3-4 plus complexe que
FMS)

Suivent direntes volutions :


Multi-utilisateurs
Extension de la multi-programmation vers le temps partag
Premier systme temps partag CTSS (MIT)
MULTICS (MIT - Bell Labs - General Electric)
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

15

Systmes d'exploitation
Introduction
Historique

volution des ordinateurs


Mini-ordinateurs
1961 : PDP-1 au PDP-11 (DEC) avec 4 K-mots de 18
bits(Programmable Data Processor)
1969 : MULTICS allg pour PDP-7 (Ken Thompson, Bell
Labs) : UNICS
19711977 : UNIX sur PDP-11 (Ken Thompson, Dennis
Ritchie et al.) en C
1974 : Distribution d'UNIX aux universits amricaines par
AT&T
1977 : BSD 1 par l'universit de Berkeley

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

16

Systmes d'exploitation
Introduction
Historique

volution des  Unices 


http://www.levenez.com/unix/

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

17

Systmes d'exploitation
Introduction
Historique

volution des ordinateurs


Quatrime gnration  Les micro-ordinateurs
1980maintenant : Puces LSI (Large Scale Integration) et
ordinateurs personnels
CP/M (Gary Kildall, Digital Research), puis IBM PC et
MS-DOS
Interface graphique (GUI : Engelbart, Xerox PARC), fentre et
souris
Steve Jobs reprend le concept : Apple
MS Windows (3.1, 95, 98, NT, Me, XP, Vista) se  rpand 

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

18

Systmes d'exploitation
Introduction
Types de systmes d'exploitation

Sommaire
1

Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

19

Systmes d'exploitation
Introduction
Types de systmes d'exploitation

Dirents types d'utilisations ...


Dirents Systmes d'exploitations !
Systmes pour mainframes
Systmes pour serveurs
Systmes multiprocesseurs
Systmes personnels
Systmes temps rel
Systmes embarqus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

20

Systmes d'exploitation
Introduction
Types de systmes d'exploitation

Systmes pour mainframes


Grosses machines, beaucoup de ressources
Batch, transactionnel ou temps partag

Systmes pour serveurs


Beaucoup d'utilisateurs
Beaucoup de rseau

Systmes multiprocesseurs
Plusieurs processeurs
Gestion concurrente des ressources

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

21

Systmes d'exploitation
Introduction
Types de systmes d'exploitation

Systmes personnels
Interface conviviale
Utilisation  basique 

Systmes temps rel


Respect de contraintes temporelles
Temps rel  dur  vs Temps rel  mou 

Systmes embarqus
Interface conviviale
Contraintes matrielles
Systmes pour smart-cards
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

22

Systmes d'exploitation
Introduction
Architecture matrielle

Sommaire
1

Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

23

Systmes d'exploitation
Introduction
Architecture matrielle

un ordinateur ...qu'est ce donc ?

Quels sont les composants de base de l'ordinateur ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

24

Systmes d'exploitation
Introduction
Architecture matrielle

un peu d'histoire....(encore !)

Architecture de von Neumann


Pas de sparation
donnes/instructions !
Architecture
rvolutionnaire en 45
...mais un peu dpass !

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

26

Systmes d'exploitation
Introduction
Architecture matrielle

Et maintenant ...

Architecture moderne
Unit de calcul et de
contrle runies
BUS pour change de
donnes
Mmoire non uniforme !

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

27

Systmes d'exploitation
Introduction
Architecture matrielle

Un peu plus en dtail : le CPU


Cycle principal du CPU
rcuprer l'adresse de la prochaine instruction excuter (dans
un registre spcique)
rcuprer l'instruction elle-mme (par le bus)
excuter l'instruction
incrmenter le compteur ordinal pour pointer vers la prochaine
instruction

Un exemple d'instruction

add1 %eax, %edx


R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

28

Systmes d'exploitation
Introduction
Architecture matrielle

Le  cerveau  de l'ordinateur
Excute les instructions selon un cycle
Fetch

Decode

Execute

Fonctionne selon plusieurs niveaux de


privilges

Mode noyau : pas de restrictions


Mode utilisateur : pas toutes les instructions
Le systme d'exploitation s'excute en mode
noyau
Les programmes s'excutent en mode
utilisateur
Les services du systme sont accessibles via
des appels systmes qui basculent en mode
noyau le temps d'excuter le service

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

29

Systmes d'exploitation
Introduction
Architecture matrielle

La memoire
Temps d'accs
1 ns
2 ns
10 ns
10 ms

Registres
Caches
Mmoire principale
Disque

Gr par
Compilateur
Materiel
OS
OS

Capacit
< 1 Ko
1 Mo
1 Go
1 To

Une mmoire non uniforme mais hirarchique


Des rles dirents
Des technologies direntes
Des gestions direntes

Nous verrons plus en dtail la problmatique de la gestion de la


mmoire.
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

30

Systmes d'exploitation
Introduction
Architecture matrielle

Les bus : transfert d'information au sein de l'ordinateur


Classication des bus
Synchrone ou Asynchrone
En fonction de ce qu'ils connectent :

bus de processeur
bus de mmoire (synchrone)
bus d'entre/sortie (asynchrone)

En fonction de ce qu'ils transportent :

bus de donnes : circulation donnes et instructions


bus d'adressage : adresses (mmoire ou priphrique)
bus de contrle : actions demandes (criture ou une lecture,
entre/sortie de ou vers un priphrique) + interruptions
matrielles (IRQ)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

31

Systmes d'exploitation
Introduction
Architecture matrielle

Les bus classiques

Des bus pour communiquer...


...mais comment ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

32

Systmes d'exploitation
Introduction
Architecture matrielle

Communiquer ...
...avec quoi ?

Tout ce qui entre ou sort de l'ordinateur


Disque dur, rseau, clavier, souris, ...
...est ce simple ?

Le SE doit grer les ux de donnes entre le CPU et les


priphriques.
Les priphriques sont lents.
Les priphriques peuvent tre asynchrones.
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

33

Systmes d'exploitation
Introduction
Architecture matrielle

Communiquer ...

...en sondant
Le SE demande
rgulirement si il y a de
nouvelles donnes.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

34

Systmes d'exploitation
Introduction
Architecture matrielle

Communiquer ...

...en sondant
Le SE demande
rgulirement si il y a de
nouvelles donnes.
INEFFICACE !

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

34

Systmes d'exploitation
Introduction
Architecture matrielle

Communiquer ...

...en sondant
Le SE demande
rgulirement si il y a de
nouvelles donnes.
INEFFICACE !

R. Bonidal (FC 2010)

...en interrompant
Le priphrique
interrompt le CPU en
l'avertissant qu'il y a de
nouvelles donnes.
MODERNE !

Systmes d'exploitation

Cours 1

34

Systmes d'exploitation
Introduction
Architecture matrielle

Le CPU attend les E/S

write

transmet le contrle au

programme d'E/S
Le prog d'E/S prpare le priphrique
Le CPU doit attendre la n du

write

L'attente peut tre longue


(imprimante, graveur, ...)
Le prog d'E/S rend la main, on
continue

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

35

Systmes d'exploitation
Introduction
Architecture matrielle

On attends ...On attends ...


Inconvnient :
On attends ... On attends ....On attends ....et ....On attends plus
qu'autre chose !
Solution : se faire avertir quand c'est ni !
...mais comment ?
Systme physique ddis : une partie du bus de contrle.
une procdure spcique.

C'est le principe des interruptions.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

36

Systmes d'exploitation
Introduction
Architecture matrielle

Le gestionnaire d'interruptions
Procdure d'interuption :
Sauvegarde du contexte d'excution du programme en cours.
Lire l'emplacement du programme destin grer cet
vnement (table d'association prtablie)
Excution de la routine
Restauration du contexte
Reprise du programme

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

37

Systmes d'exploitation
Introduction
Architecture matrielle

Exemple d'interruption
Interruptions

meilleur usage du CPU

Le gestionnaire d'interruptions prpare le


prog d'E/S et le lance
Il recharge le prog utilisateur qui s'excute
en mme temps que les E/S : pas
d'attente
la n du module d'E/S le gestionnaire
d'interruption reprend la main pour
examiner son tat
Le prog utilisateur reprend son cours (... si
tout s'est bien pass)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

38

Systmes d'exploitation
Introduction
Architecture matrielle

Direntes classes d'interruption :

Les E/S
Retourne l'tat du module d'E/S : normal ou erreur
Les exceptions
Dbordements, instructions illgales, rfrence hors espace
utilisateur
Timers
Tick horloge
Suspend un programme pour eectuer des tches annexes
Dfauts matriels

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

39

Systmes d'exploitation
Introduction
Architecture matrielle

IRQ pour le PC/AT


Liste des Interrupt Requests :

IRQ 0 : Horloge Systme


IRQ 1 : Clavier
IRQ 2 : N/A (cascade du second
contrleur)
IRQ 3 : Port srie
(COM2/COM4)
IRQ 4 : Port srie
(COM1/COM3)
IRQ 5 : LPT2 (carte de son)
IRQ 6 : Lecteur de disquettes
R. Bonidal (FC 2010)

IRQ 7 : Port parallle (LPT1)


IRQ 8 : Horloge temps rel
IRQ 9 : N/A (PCI)
IRQ 10 : N/A
IRQ 11 : N/A (USB)
IRQ 12 : N/A (PS/2)
IRQ 13 : Coprocesseur math.
IRQ 14 : Disque dur primaire
IRQ 15 : Disque dur secondaire
Systmes d'exploitation

Cours 1

40

Systmes d'exploitation
Introduction
Architecture matrielle

Rfrences bibliographiques
La bible (aussi disponible en franais) :
Modern Operating Systems ,

Andrew S. Tanenbaum

e dition, fvrier 2008, 1104 pages, Prentice Hall

Principes des systmes d'exploitation ,

A. Silberschatz, P.B. Galvin, G. Gagne

e dition, mars 2008, 872 pages, Vuibert

Le noyau Linux ,

Daniel P. Bovet, Marco Cesati

e dition, aot 2006, O'Reilly

Multiboot :

http://www.bellamyjc.org/fr/multiboot.html
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 1

41

Systmes d'exploitation
Conception des sytmes d'exploitation

Sommaire
1 Introduction
2 Conception des sytmes d'exploitation
Rle d'un SE
Structures de SE
3 Gestion des processus
1 Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

42

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Sommaire
1

Introduction

Conception des sytmes d'exploitation


Rle d'un SE
Structures de SE

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

43

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Le modle Processus / Ressources


SE = interface entre Programme et Matriel

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

44

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Le modle Processus / Ressources


SE = interface entre Programme et Matriel
Interface plusieurs niveaux d'abstraction entre :

Le programme eectue des tches processus


Les tches sont excutes par le matriel ressources

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

44

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Rle du SE

Grer les processus


Grer les ressources (pour le compte des processus)

CPU
Mmoire
Fichiers

Protger les processus et les ressources

Dcomposition d'un SE en sous-systme.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

45

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Une protection ...


A quel niveau ?
Le matriel : partage quitable, bonne utilisation
Les programmes : les accs, le priv

Protection assiste par le matriel


2 niveaux d'excutions :
mode utilisateur
mode privilgi (ou superviseur, noyaux, etc ...)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

46

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Exemples de protections
Entres/Sorties

Toutes les instructions E/S sont privilgies


Elles passent toutes par le noyau
La mmoire

Certaines rgions ne doivent pas tre vu par les utilisateurs


tables d'authentications
zones d'auteurs utilisateurs
Gestion de la mmoire au niveau matriel
Temps processeur
viter les boucles innies
R. Bonidal (FC 2010)
Systmes d'exploitation

Cours 2

47

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Les aspects du SE
2 aspects
Passif : orir des services aux applications.
Actif : Surveillance et contrle.

Quelques termes :
Interface de commande (Texte ou graphique) : application
standard
Appel systme(System call API) : Fonctions fournies par le SE
aux applications
Noyau : Systme qui joue le rle actif et qui implante les
appels systmes
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

48

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Les sous-systmes d'un SE

Gestion des processus

Gestion des E/S

Organisation

Contrler tous les priphriques

Communication

Unier les interfaces

Gestion de la mmoire

Gestion des chiers

Aectation

Robustesse

Protection

Scurits

Quels problmes sont traits par ces sous systmes ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

49

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Processus et CPU
Processus

Un processus = code + donnes


CPU : Control Process Unit
, Unit de Contrle des Traitements
Le CPU = ressource qui sert excuter le code des processus
Rle du SE pour les processus

(R)Activer un processus
Suspendre un processus
Tuer un processus
Contler l'excution d'un processus De manire optimale pour le
CPU
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

50

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Processus et CPU : les ds


Comment transfrer l'excution d'un processus un
autre ?
Comment choisir l'ordre des processus excuter ?
Comment s'assurer que tous les processus vont pouvoir
s'excuter ?
Comment synchroniser les processus lorsqu'ils accdent
une mme ressource partage ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

51

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Processus et mmoire
1 processus

1 espace d'adressage (un ensemble d'adresses

mmoire)
La mmoire = code + donnes du processus pendant son
excution

Rle du SE

Charger un processus en mmoire


Librer la mmoire en n d'excution d'un processus
Allouer et librer de la mmoire dynamiquement demande par
les processus

De manire optimale pour le CPU

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

52

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Processus et mmoire : les ds


Questions :

Comment organiser les processus en mmoire ?


(partitionnement, segmentation, ...)
Comment protger les zones mmoires de chaques
processus ?
Comment s'assurer qu'il y a assez de mmoire pour un
processus ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

53

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Gestion des chiers


Fichier = informations organises sur un support
Caractrise les chiers

types
droits d'accs
structure

Rle du SE

Cration
Modication
Lecture
criture

Suppression

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

54

Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE

Autres composants
Gestion des E/S (clavier, souris, cran, ...)
Gestion du rseau
rseau local
SE distribu

Gestion des comptes utilisateurs (groupes, ...)


Gestion de l'alimentation
plus haut niveau (6 SE)
, Terminaux/Interprtes de commandes (shell)
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

55

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Sommaire
1

Introduction

Conception des sytmes d'exploitation


Rle d'un SE
Structures de SE

Gestion des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

56

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Structure d'un SE
Plusieurs possibilits de conception pour un SE
1 Sans relle structure

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

57

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Structure d'un SE
Plusieurs possibilits de conception pour un SE
1 Sans relle structure
2 En couches

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

57

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Structure d'un SE
Plusieurs possibilits de conception pour un SE
1 Sans relle structure
2 En couches
3 noyau
Monolithique
Microkernel
Hybride
Exokernel

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

57

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Sans relle structure

Structuration hirarchique
mal dnie
Une entit peut faire appel
aux services de toutes les
couches infrieures
Restrictions limites, peu de
contrles : pas de scurit
Exemple : MS-DOS

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

58

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

couches
Structuration hirarchique
bien dnie
Une couche ne fait appel
qu'au services de la couche
directement infrieure
Bonne thorie gnrale,
extensible
Trs peu ecace, trop
d'intermdiaires
Exemple :

THE de Djiksrta

(1968)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

59

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

noyau
Structuration 2 niveaux
gnralement :

1
2

Mode noyau
(Kernel Mode)
Mode utilisateur
(User Mode)

Les applications en mode


utilisateurs peuvent
(doivent) demander des
services au noyau travers
des appels systme

R. Bonidal (FC 2010)

Exemple d'un noyau monolithique

Systmes d'exploitation

Cours 2

60

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Les appels systmes : lien entre applications et SE

Gnralement accd par des

Interface)

API (Application Program

Cas particulier d'interruption logicielle


Les 3 plus courantes : Win32 API, POSIX API et JAVA API
Pourquoi des API ? ...Pour comprendre les rponses des appels
systmes !

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

61

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Exemple de l'appel

R. Bonidal (FC 2010)

read(fd, &buffer, nbytes) ;

Systmes d'exploitation

Cours 2

62

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

noyau : Monolithique
Un seul programme

lourd et dicile dbugger

The big mess


gchis de mmoire (tout est charg)
possibilit de modularit (Linux)
Exemple : Linux

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

63

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

noyau : Micronoyau
Noyau rduit au presque minimum (microkernel)
Gre principalement l'ordonnancement et les transferts de
messages entre les programmes
Les drivers et les applications s'excutent en mode utilisateur
Systme client-serveur
Portable et facilement
maintenable
Ecacit plutt
mauvaise (pas
d'optimisation)
Exemples : Mach, Minix
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

64

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

noyau : Hybride
Compromis entre le kernel monolithique et le micorkernel
Les drivers s'excutent en mode noyau

optimsation

Exemple : Windows NT

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

65

Windows 2000

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

noyau : Exonoyau
Exokernel est un petit noyau grant gneralement des
machines virtuelles excutes en mode utilisateur
Les ressources sont alloues aux machines virtuelles par
l'exokernel
Un SE de SE en quelque sorte

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

67

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Le cas de linux
Approche descriptive
Interface d'appels systmes
Sous-systmes de gestion des processus :

gestion des processus


ordonnancement
gestion de la mmoire

Sous-systmes de gestion des chiers :

gestion du buer-cache
gestion des chiers
gestion des priphriques

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

68

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Le cas de linux

Approche fonctionnelle
Une partie suprieure :

fournit des services aux processus utilisateurs

Une partie infrieure :

fournit le traitement des interruptions

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

69

Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE

Dirence interruption/exception
Une interruption est provoque par un signal provenant du
monde extrieur au processeur, et modiant le comportement
de celui-ci.
Une exception est un signal provoque par un
dysfonctionnement du programme en cours d'excution
Chaque interruption ou exception dispose d'un
sous-programme (handler) qui prend en charge l'vnement
correspondant : table de vecteurs d'interruption ou IDT :
Interrupt Descriptor Table dans le langage Linux.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

70

Systmes d'exploitation
Gestion des processus

Sommaire
1 Introduction
2 Conception des sytmes d'exploitation
3 Gestion des processus
Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus
1 Gestion de la mmoire
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

71

Systmes d'exploitation
Gestion des processus
Concepts

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus


Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

72

Systmes d'exploitation
Gestion des processus
Concepts

Concepts

Processus et boot

Le kernel est charg partir du disque lors du dmarrage du


systme

Bootstrapping = initialisation du systme et dnition de


l'environnement pour excuter des processus

Un premier processus (init) est lanc


S'excute (rside) jusqu' l'arrt du systme
Les autres processus sont alors crs partir d'init (ou d'un
de ses descendants)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

73

Systmes d'exploitation
Gestion des processus
Concepts

Concepts

Processus et espace d'adressage


Plusieurs processus partagent le CPU, la mmoire, les
priphriques
Si systme temps partag

l'excution des processus est

virtuellement concurrente
Chaque processus a son espace d'adressage contenant

Ses instructions (code)


Ses donnes

Cet espace est a priori virtuel


Il contient un ensemble de registres (compteur ordinal,
pointeur de pile, ...) ncessaires au bon fonctionnement du
processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

74

Systmes d'exploitation
Gestion des processus
Concepts

Concepts

Processus et noyau
La smantique des interactions entre le kernel et les processus
utilisateurs est dnie travers l'API systme : les appels
systme

Ainsi le kernel eectue les instructions pour le compte du


processus
Le kernel intervient galement quand un processus eectue
une action interdite

division par zro


dbordement de pile (stack overow)
adressage mmoire incorrect (segmentation fault)

cause une exception matriel (hardware exception) que le

kernel traite pour le compte du processus


R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

75

Systmes d'exploitation
Gestion des processus
Concepts

Concepts

Espace d'adressage des processus et noyau


Une partie de l'espace d'adressage de chaque processus
correspond du code et des objets du kernel : c'est la partie
espace systme
Il n'existe qu'une seule instance du kernel dans le systme
Tous les processus pointent sur ce mme espace kernel
L'accs l'espace systme se fait en mode systme travers
les appels systme
Le kernel gre les processus via 2 objets spciques chaque
processus :

L'espace usager (user space) qui contient des infos sur le


processus
Liste des chiers ouverts
Valeurs des registres, ...

La pile kernel (kernel stack) pour la gestion des fonctions de


tous les processus en appel systme

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

76

Systmes d'exploitation
Gestion des processus
Concepts

Concepts
En rsum

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

77

Systmes d'exploitation
Gestion des processus
Concepts

Concepts

Cycle de vie d'un processus

Interruption possible d'un processus

R. Bonidal (FC 2010)

=
6

Systmes d'exploitation

tats

Cours 3

78

Systmes d'exploitation
Gestion des processus
Concepts

Concepts

Cycle de vie d'un processus

Alternance de sections actives, durant lesquelles des units de


temps CPU (les gicles CPU, CPU burst) sont consommes, et
de temps d'attentes d'E/S

Le passage d'un processus l'autre s'eectue par un


changement de contexte (context switch)
2 mcanismes de gestion :

L'ordonnancement (scheduling) : choix du processus activer


La synchronisation : gestion de l'accs une ressource partage

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

79

Systmes d'exploitation
Gestion des processus
Changement de contexte

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus


Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

80

Systmes d'exploitation
Gestion des processus
Changement de contexte

Changement de contexte
Interruption/activation de processus

changement de

contexte pour le systme (pour le CPU)


Besoin d'un mcanisme de sauvegarde des donnes  vitales 
du processus

Maintient d'une table (process table) des processus


Chaque entre contient une structure, le PCB (Process Control
Block), dcrivant le contexte d'un processus (structure
task_struct sous Linux)

Champs possibles dans un PCB

PID, registres, compteur ordinal, tat du processus, temps


CPU utilis, UID, GID, umask, rpertoire courant, descripteurs
chiers, ...

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

81

Systmes d'exploitation
Gestion des processus
Changement de contexte

Changement de contexte

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

82

Systmes d'exploitation
Gestion des processus
Ordonnancement

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus


Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

83

Systmes d'exploitation
Gestion des processus
Ordonnancement

Ordonnancement
Scheduling

L'ordonnanceur (scheduler) choisit les processus qui vont


pouvoir accder au CPU
Pour la gestion de la mmoire virtuelle (espace d'adressage du
processus) et du temps partag (accs CPU),
l'ordonnancement se fait deux niveaux

Une rpartition de haut niveau qui slectionne le prochain


processus charger en mmoire (mmoire virtuelle)
Une rpartition de bas niveau (dispatcher) qui slectionne,
chaque fois que le CPU devient inactif, un processus parmi
tous ceux prts

Bas niveau
Haut niveau
R. Bonidal (FC 2010)

Excutions
Trs frquentes
Occasionnelles

Performances demandes
Excellentes
Bonnes

Systmes d'exploitation

Cours 3

84

Systmes d'exploitation
Gestion des processus
Ordonnancement

Ordonnancement
Files d'attente

Ide : gestion des accs par le d'attente


Une le d'attente pour chaque priphrique (ressource) et
par type d'E/S (lecture, criture, ...)
Questions :
Ordre d'insertion des processus ?
Mode de passage le

CPU ?

Gestion E/S et CPU identiques ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

85

Systmes d'exploitation
Gestion des processus
Ordonnancement

Files d'attentes
Traitement par lots

Batch mode
Pas d'ordonnancement de bas niveau
Si demande d'E/S le CPU reste inactif durant le traitement

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

86

Systmes d'exploitation
Gestion des processus
Ordonnancement

Files d'attentes
Multiprogrammation

Si demande d'E/S, le CPU est libr pour traiter un autre


processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

87

Systmes d'exploitation
Gestion des processus
Ordonnancement

Files d'attentes
Temps partag

Quantum de temps : dure de temps maximale alloue


chaque processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

88

Systmes d'exploitation
Gestion des processus
Ordonnancement

Files d'attentes
Mmoire virtuelle

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

89

Systmes d'exploitation
Gestion des processus
Ordonnancement

Ordonnancement
Les algorithmes

Les critres

minimiser

Temps coul entre soumission et n d'excution


Temps de gestion (swap, changement de contexte, ...)
Temps d'excution des E/S (processus interactifs)

maximiser

Taux d'activit du CPU


Nombre de processus traits par unit de temps

Comment quantier ?

Faire des tests


Faire des statistiques (moyenne, variance, mdiane,
extremums, ...)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

90

Systmes d'exploitation
Gestion des processus
Ordonnancement

Ordonnancement
Les algorithmes

2 classes d'ordonnanceurs

1
2

Non premptifs : un processus ne relche le CPU que quand il


a ni ou quand il passe en E/S
Premptif : l'utilisation du CPU est sujette un quantum de
temps

Exemples

Premptifs

Unix, Windows NT/2000/XP..., BeOS

Non premptifs

MS-DOS, Windows 3.1, ancien MacOS

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

91

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes

Non premptifs : FCFS / PAPS


First Come First Served (FCFS)
Premier Arriv, Premier Servi (PAPS)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

92

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes

Non premptif : SJF / PCA

Shortest Job First (SJF)


Plus Court d'Abord (PCA)
Les processus ayant un minimum d'units CPU
consommer sont mis en tte de liste
En cas d'galit utiliser FCFS
Problme
Comment connatre le temps CPU des processus ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

93

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes

Non premptif : SJF / PCA


Solutions

Le demander l'utilisateur
L'estimer partir de l'historique
tn+1 = a tn + (1 a) pn

- tn est le temps du ne passage dans le CPU


- pn est la prdiction faite au ne passage dans le CPU
- a est un coecient de pondration (indice de conance)

Problme

Famine (starvation) des processus gourmands en CPU

Solution

Vieillissement automatique des processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

94

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes
Premptif : RR

Round Robin (RR)


Algorithme du tourniquet
FCFS premptif quantum de temps
Un processus libre le CPU si :
Demande d'E/S
Terminaison
Fin du quantum de temps allou

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

95

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes
Premptif : RR

Problme
Choix du quantum

Si quantum long processus courts pnaliss


Si quantum FCFS
Si quantum trop court meilleure interactivit, mais
trop de changement de PCB

Sous Unix
Dpend de l'utilisation (serveur, ordinateur de bureau, ...)
Gnralement 100ms

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

96

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes
Listes multiples

Les processus ont des caractristiques direntes


Calcul scientique
Applications bureautiques
Jeux

Utilisation dirente du CPU


Plusieurs les de priorit suivant le type de processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

97

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes
Listes multiples

Les processus de niveau 2 ne seront activs que lorsque ceux


de niveau 1 seront termins (eux-mmes activs quand la liste
de niveau 0 sera vide)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

98

Systmes d'exploitation
Gestion des processus
Ordonnancement

Les algorithmes

valuation des algorithmes


1 TAM : temps d'attente moyen
Exemple : 4 processus A, B, C et D arrivs dans cet ordre avec
des temps CPU de 16, 2, 8 et 12 units respectivement

Cas FCFS :

TAM =

0+(16)+(16+2)+(16+2+8)
4

TAM =

0+(2)+(2+8)+(2+8+12)
4

Cas SJF :

= 15

= 8, 5

2 Pnalit : rapport temps pass / temps requis

Large pnalit dans un systme non premptible mieux vaut


passer du temps partag

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

99

Systmes d'exploitation
Gestion des processus
Le cas des Unix

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus


Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

100

Systmes d'exploitation
Gestion des processus
Le cas des Unix

Cration de processus sous Unix


Les tats

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

101

Systmes d'exploitation
Gestion des processus
Le cas des Unix

Cration de processus sous Unix


Identiant d'un processus

PID (Process IDentier)


PPID (Parent Process IDentier)
, structure arborescente des processus
UID (User IDentier) et GID (Group IDentier)
UID, GID rels : ceux de l'utilisateur du processus
UID, GID eectifs : ceux du propritaire du processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

102

Systmes d'exploitation
Gestion des processus
Le cas des Unix

Cration de processus sous Unix


La fonction fork()

fork() cre un nouveau processus

Elle duplique l'espace d'adressage du processus original


(code, donnes, variables, registres, descripteurs de
chiers, ...)
Le processus appelant la fonction fork() est le processus
pre (parent process)
Le processus cr est le processus ls (child process)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

103

Systmes d'exploitation
Gestion des processus
Le cas des Unix

Cration de processus sous Unix


La fonction fork()

Un appel systme est transmis au kernel travers la fonction

fork()

de la librairie C

Le kernel recherche une place disponible dans la table des


processus

S'il en trouve une, il copie toute l'info du pre dans le bloc de


contrle du ls
Remarque

La seule dirence entre les 2 PCB sont les champs PID et


PPID du processus et de son pre
Souvent l'appel fork() est immdiatement suivi d'un appel
la fonction exec() pour remplacer le code du pre

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 3

104

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus


Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus

Gestion de la mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

105

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les problmes classiques

Producteurs/Consommateurs
Lecteurs/Rdacteurs
Diner des Philosophes

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

106

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Producteurs/Consommateurs

Lorsque des processus lgers souhaitent communiquer entre


eux, ils peuvent le faire par l'intermdiaire d'une le.
Il faut dnir le comportement avoir lorsqu'un thread
souhaite lire depuis la le lorsque celle-ci est vide et lorsqu'un
thread souhaite crire dans la le mais que celle-ci est pleine.
Peut tre rsolu l'aide des smaphores.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

107

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Lecteurs/Rdacteurs

Ce problme traite de l'accs concurrent en lecture et en


criture une ressource.
Plusieurs processus lgers (thread) peuvent lire en mme
temps la ressource, mais il ne peut y avoir qu'un et un seul
thread en criture.
Peut tre rsolu l'aide des smaphores.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

108

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Le Diner des philosophes

cinq philosophes (initialement mais il peut y en avoir beaucoup


plus) se trouvent autour d'une table ;
chacun des philosophes a devant lui un plat de spaghetti ;
gauche de chaque assiette se trouve une fourchette.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

109

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Le Diner des philosophes

Un philosophe n'a que trois tats possibles :


penser pendant un temps indtermin ;
tre aam (pendant un temps dtermin et ni sinon il y a
famine) ;
manger pendant un temps dtermin et ni.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

110

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Le Diner des philosophes


Des contraintes extrieures s'imposent cette situation :
quand un philosophe a faim, il va se mettre dans l'tat 
aam  et attendre que les fourchettes soient libres ;
pour manger, un philosophe a besoin de deux fourchettes :
celle qui se trouve gauche de sa propre assiette, et celle qui
se trouve gauche de celle de son voisin de droite (c'est--dire
les deux fourchettes qui entourent sa propre assiette) ;
si un philosophe n'arrive pas s'emparer d'une fourchette, il
reste aam pendant un temps dtermin, en attendant de
renouveler sa tentative.

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

111

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Race condition
Situation de comptition (Race condition)

Situation o plusieurs processus accdent la mme ressource,


de manire concurrente (au  mme moment , souvent la
mmoire)
Faille qui fait que le rsultat va dpendre de l'ordre d'accs
la ressource par les dirents processus

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

112

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Race condition
Situation de comptition (Race condition)

Situation o plusieurs processus accdent la mme ressource,


de manire concurrente (au  mme moment , souvent la
mmoire)
Faille qui fait que le rsultat va dpendre de l'ordre d'accs
la ressource par les dirents processus

Question

Que se passe-t-il si un processus est interrompu lors de son


accs la ressource, laissant la main un autre processus qui
utilse la mme ressource ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

112

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Race condition
Situation de comptition (Race condition)

Situation o plusieurs processus accdent la mme ressource,


de manire concurrente (au  mme moment , souvent la
mmoire)
Faille qui fait que le rsultat va dpendre de l'ordre d'accs
la ressource par les dirents processus

Question

Que se passe-t-il si un processus est interrompu lors de son


accs la ressource, laissant la main un autre processus qui
utilse la mme ressource ?

Solution

Il faut un mcanisme d'exclusion mutuelle pour controler


l'accs la ressource

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

112

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Synchronisation des processus, exemple :

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

113

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Section critique
Une suite d'instructions d'un programme accdant une
ressource partage est appele une section critique (SC)

Critres requis pour bien grer les race conditions

1
2
3
4

tout moment, au plus un processus en SC


Aucune hypothse sur la vitesse et le nombre de CPU
Aucun processus s'excutant en dehors d'un SC ne doit
bloquer les autres
Aucun processus ne doit attendre indniment avant de
pouvoir entrer dans une SC (viter les deadlock et la famine)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

114

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Dsactivation des interruptions


Pour ne pas tre interrompu lors de l'entre en SC, un
processus peut dsactiver les interruptions
Elles sont ensuite ractives la sortie de la SC
Problmes

Si erreur, l'ordinateur peut rester bloquer


On repasse en monoprogrammation, on n'optimise pas l'usage
du CPU
Privilge trop imoprtant pour un processus utilisateur
Que faire quand on a plusieurs CPU ?

Nanmoins, a peut tre pratique pour le kernel

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

115

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Verrous
Lock variables
Le principe

Associer chaque ressource partage une variable  verrou 


prenant la valeur LIBRE ou OCCUPE
Ce verrou est consult et modi par chaque processus pour
pouvoir accder la ressource

Exemple

Tantque (etat_verrou == OCCUPE) /* Attente active */ ;


etat_verrou = OCCUPE ;
accs la ressource paratge
etat_verrou = LIBRE ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

116

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Verrous
Problmes

1
2

On dplace le problme sur le verrou : le verrou devient la


ressource partage
Si l'ordonnanceur est premptif le processus peut tre
interrompu entre le test du verrou et l'accs la ressource

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

117

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

L'alternance stricte
L'alternance

Processus 0

Rpter {
Tantque
;

Processus 1

Rpter {
Tantque

(a_qui_le_tour != 0)

/* section critique */
a_qui_le_tour = 1 ;
/* section non critique */

(a_qui_le_tour != 1)

/* section critique */
a_qui_le_tour = 0 ;
/* section non critique */

vite les race conditions, mais...


Problme

Verrouillage avec attente active (spin lock)


Viole la condition 3 de bonne gestion des race conditions
Si un processus est trs long il peut bloquer un autre processus
pendant un certain temps

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

118

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Solution de Peterson
Combinaison d'alternance strict et de verrouillage

Processus 0 appelle entrer_SC()


interesse[0] = TRUE
tour = 0

Processus 1 appelle entrer_SC()

interesse[1] = TRUE
tour = 1
Attente sur le while que processus
0 appelle quitter_SC()

Processus 0 et 1 appellent
entrer_SC()

interesse[0]=interesse[1] =
TRUE
tour = 0 puis tour = 1
Donc processus 0 en SC et
processus 1 bloque sur le while
R. Bonidal (FC 2010)

Solution de Peterson

int tour ;
int interesse[2] ;
void entrer_SC(int proc) {
int autre = 1 - proc ;
interesse[proc] = TRUE ;
tour = proc ;
while (tour == proc &&
intresse[autre] ==
TRUE) ;
}
void quitter_SC(int proc) {
interesse[proc] = FALSE ;
}

Systmes d'exploitation

Cours 5

119

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Solution matrielle
TSL : Test and Set Lock
Certains processeurs disposent d'une instruction permettant
d'eectuer de manire indivisible (atomique) le test de la
valeur d'un registre et de lui assigner une nouvelle valeur
Instruction TSL

entrer_sc :
TSL REGISTRE, LockFlag
CMP REGISTRE, #0
JNE enter_region
RET
R. Bonidal (FC 2010)

quitter_sc :
MOV LockFlag, #0
RET

Systmes d'exploitation

Cours 5

120

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Inconvnients
Les processus doivent jouer le jeu et cooprer pour que les
techniques fonctionnent
Attente active

gaspillage du temps CPU

Conditions 3 et 4 de gestion des race conditions pas tjrs


vries
Inversion des priorits

Deux procesus H (haute priorit) et B (basse priorit)


On active toujours le processus de plus haute priorit

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

121

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
Problme des Producteurs / Consommateurs
Ressource partage

Un buer (mmoire tampon) de taille BUFFER_SIZE

Objectifs

Un ou plusieurs producteurs produisent des objets


Chaque producteur qui vient de produire un objet l'ajoute au
buer
S'il est plein, le producteur s'endort en attendant une place
libre
Un ou plusieurs consommateurs viennent retirer les objets
Si le buer est vide, le consommateur s'endort

Problme

Rgler les race conditions sur l'accs au buer

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

122

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
Comment viter l'attente active ?
2 fonctions
sleep()
wakeup()

Ide
Quand un processus appelle

sleep(), il s'endort
wakeup(), il rveille

Si un autre processus appelle

le

processus endormi

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

123

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
Problme des Producteurs / Consommateurs

#define BUFFER_SIZE 100


int buffer[BUFFER_SIZE] ;
int cpt = 0 ;
/* nbr d'objets dans le buffer */
void producteur() {
int item ;
while(TRUE) {
item = produire_objet() ;
if (cpt == BUFFER_SIZE)
sleep() ;
deposer_objet(item, buffer) ;
++cpt ;
if (cpt == 1)
wakeup(consommateur) ;
}
}
R. Bonidal (FC 2010)

void consommateur() {
int item ;
while(TRUE) {
if (cpt == 0)
sleep() ;
item =
retirer_objet(buffer) ;
--cpt ;
if (cpt == BUFFER_SIZE - 1)
wakeup(producteur) ;
consommer_objet(item) ;
}
}
Systmes d'exploitation

Cours 5

124

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
Problme
Conit sur la variable

cpt

Illustration

Solution

Un consommateur teste cpt et trouve 0


L'ordonnanceur bascule sur un producteur
Le producteur incrmente cpt et constate que le buer
tait vide
Le producteur lance un wakeup()  perdu  car le
consommateur n'tait pas encore endormi !

 Mmoriser  le

R. Bonidal (FC 2010)

wakeup()

les smaphores

Systmes d'exploitation

Cours 5

125

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
Dnition
Une smaphore est une variable qui
Contrle l'accs une ressource partage
Indique le nombre d'lments de la ressource qui sont
disponibles
Maintient une liste des processus bloqus en attente de cette
ressource (s'il y en a)

Quand une smaphore ne peut pas prendre de valeur plus


grande que 1, on parlera de smaphore binaire, ou de mutex
(exclusion mutuelle)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

126

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
Implantation possible d'une smaphore

type semaphore = enregistrement


valeur : int
Lp : liste de PID

n enregistrement
Lp

est une liste de processus qui va tre utilise pour conserver

les processus bloqus en attente de la ressource partage (qui


ont cherch y accder alors qu'elle n'tait pas/plus
disponible)
Quand la smaphore est

elle indique le nombre d'units de

la ressoucre qui sont disponibles


Quand elle est

<0

elle indique gnralement le nombre de

processus qui sont bloqus en attente de la ressource


R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

127

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores
2 oprations atomiques permettent de modier l'tat d'une
smaphore

down(S)

(ou P) dcrmente

Puis vrie si elle est toujours 0


Si c'est n'est pas le cas, sleep() est dclenche

up(S)

(ou V) incrmente

Si celle-ci est 0, un processus de la liste d'attente du


smaphore est rveill

Exemple d'implantation

down(S)
S.valeur = S.valeur - 1
si S.valeur < 0
ajouter(processus_courant,
S.Lp)
sleep()
R. Bonidal (FC 2010)

up(S)
S.valeur = S.valeur + 1
si S.valeur 0
processus = retirer(S.Lp)
wakeup(processus)
Systmes d'exploitation

Cours 5

128

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores  Utilisation


Une solution au problme des producteurs / consommateurs
Elle utilise 3 smaphores

full

Initialise 0 avec une liste vide


Contrle le nombre d'objet rangs dans le buer
La liste contient les processus consommateurs bloqus
empty
Initialise BUFFER_SIZE avec une liste vide
Contrle le nombre de places vides dans le buer
La liste contient les processus producteurs bloqus
mutex
Une smaphore binaire initialise 1
Contrle l'entre et la sortie en SC

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 5

129

Systmes d'exploitation
Gestion des processus
Synchronisation des processus

Les smaphores  Utilisation


Producteurs / Consommateurs avec smaphores

#define BUFFER_SIZE 100


int buffer[BUFFER_SIZE] ;
/* Les smaphores doivent tre initialises avant usage */
sema_t mutex, full, empty ;
sema_init(&mutex, 1) ; sema_init(&full, 0) ; sema_init(&empty,
BUFFER_SIZE) ;
void producteur() {
int item ;
while(TRUE) {
item = produire_objet() ;
down(&empty) ;
down(&mutex) ;
deposer_objet(item, buffer) ;
up(&mutex) ;
up(&full) ;
}
}

R. Bonidal (FC 2010)

void consommateur() {
int item ;
while(TRUE) {
down(&full) ;
down(&mutex) ;
item =
retirer_objet(buffer) ;
up(&mutex) ;
up(&empty) ;
consommer_objet(item) ;
}
}

Systmes d'exploitation

Cours 5

130

Systmes d'exploitation
Gestion de la mmoire

Sommaire
1 Introduction
2 Conception des sytmes d'exploitation
3 Gestion des processus
1 Gestion de la mmoire
Gestion des allocations mmoires
Mmoire virtuelle

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

131

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire
Gestion des allocations mmoires
Mmoire virtuelle

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

132

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Gestion de la mmoire
Objectifs

Ressource critique du systme grer :


Connatre les zones libres de la mmoire physique
Allouer de la mmoire au processus (viter le gaspillage)
Rcuprer la mmoire la terminaison d'un processus
Orir aux processus des services de mmoire virtuelle, de taille
suprieure la mmoire physique  technique de va-et-vient
(swapping) et de pagination

Toujours penser l'ecacit !

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

133

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Gestion de la mmoire
Diversit de congurations

En fonction du type de systme :

Monoprogrammtion
Multiprogrammtion

Partitionnement xe
Partitionnement variable

En fonction du type de code :

Code absolu
Code relogeable

Quels algorithmes de gestion ?

Chargements en mmoire
Libration de la mmoire
Dplacements en mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

134

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Monoprogrammation
Gestion de la mmoire

Plutt basique car 1 seul processus en mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

135

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Modlisation et valuation

Objectif de la multiprogrammation : optimiser l'utilisation CPU


Point de vue naf

Si un processus calcule en moyenne pendant 20% de son temps


5 processus en mmoire pour une utilisation CPU optimale
Vision optimiste car on suppose aucun temps d'attente en E/S

Point de vue plus raliste

Modlisation probabiliste de l'usage du CPU


p : probabilit pour un processus d'tre en attente en E/S
n : nombre de processus
Taux d'utilisation du CPU : 1 pn

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

136

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Modlisation
Pourcentage d'utilisation du CPU

100 %
90 %
80 %
70 %
60 %
50 %
40 %
30 %
20 %

20% d'attente en E/S


50% d'attente en E/S
80% d'attente en E/S

10 %
0%
0

10

Degr de multiprogrammation (nombre de processus)


R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

137

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Gestion de la mmoire

Partitions xes : division de l'espace mmoire en n partitions


de tailles xes (initialisation du SE)

Une le de priorit par


partition
Fragmentation externe :
un processus attend alors
que des partitions sont
libres

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

138

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Gestion de la mmoire

Partitions xes : division de l'espace mmoire en n partitions


de tailles xes (initialisation du SE)

Une le de priorit


globale
Fragmentation interne :
grande partition pour un
petit processus (mauvaise
estimation)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

139

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Contrle de la mmoire

Comme plusieurs processus sont en mmoire simultanment, la


multiprogrammation introduit
deux problmes essentiels rsoudre :
1

Le relogement du code (code relocation)

La protection des zones mmoires

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

140

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Code et espace d'adressage


Adress binding

Un programme crit dans un langage autre que le langage


machine fait appel des noms pour accder aux donnes
et fonctions qu'il manipule
Le programme en langage machine, lui, n'utilise pas ces
noms, mais des adresses par lesquelles il accde ces
donnes
quel moment et comment se fait ce passage des
adresses symboliques aux adresses systme ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

141

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Code et espace d'adressage


Adress binding

Code absolu : adresses dtermines une fois pour toute


lors de la compilation ou de l'assemblage
Pratique en monoprogrammation car 1 seul processus la
fois est en mmoire
Pas de protection, si ce n'est avec le SE (trs facile alors)
Utilis dans certains systmes embarqus par exemple

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

142

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Code et espace d'adressage


Adress binding
2

Code relogeagble : adresses dtermines une fois le code


charg en mmoire
Il n'est pas possible de connatre la compilation
l'adresse relle physique o sera la donne, l'adressage
doit doit tre relatif
Gnralement utilis en multiprogrammation avec des
adresses relatives au dbut de la partition
Peut aussi se rencontrer en monoprogrammation si le
systme n'est que partiellement rsident en mmoire

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

143

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Code et espace d'adressage


Adresses logique / adresses physiques
Deux possibilits :

1 Au moment du chargement en mmoire le chargeur (loader)


modie toutes les adresses en leur ajoutant l'adresse de dpart
de la partition

Les adresses mises par le CPU l'excution sont donc des


adresses physiques

2 Le CPU met toujours des adresses logiques qui sont chaque


fois converties en adresses physiques

Grer par une entit spcique : la MMU (Memory


Managment Unit)
Fait l'aide de 2 registres :

Le registre de base : adresse du dbut de la partition


Le registre limite : correspond la taille de la partition,
permet de vrier si l'accs est autoris (protection mmoire)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

144

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Code et espace d'adressage


Adresses logique / adresses physiques

Unit de conversion des adresses logiques en adresses physiques

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

145

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation

Mcanisme de va-et-vient : le swapping


Partitions variables : le nombre, la taille et la localisation des
partitions changent au cours du temps
Un processus ne connat pas l'avance l'emplacement de sa
partition

code relogeable

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

146

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Partitions variables

Fragmentation externe non rsolue


Si A se repsente avant que B ne soit dcharg,
blocage de A alors qu'il reste assez de place libre au total

Fragmentation interne amliore, + de contrle


Les dlimitations n'tant pas xes, on peut se permettre
de dplacer les zones
S'il y a trop de  trous  on peut compacter la mmoire

Utilisation d'un ramasse-miette (Garbage Collector)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

147

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Allocation d'espace libre

Plusieurs stratgies possibles


Le premier trou disponible (First Fit)
Le plus petit trou disponible (Best Fit)
Parcourir la liste des trous
Le plus grand trou disponible (Worst Fit)
Sauf si l'on rencontre un trou de taille adquate
Le trou restant sera encore grand et donc utilisable
Dans tous les cas il faut une bonne reprsentation
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

148

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Reprsentation de l'espace

Par bitmap : dcoupage en blocs d'allocation (gnralement de

taille 2 )

Choix de n dlicat

Trop petit bitmap trop grand


Trop grand gaspillage de mmoire

Recherche de k blocs libres : lourd

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

149

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Reprsentation de l'espace

Listes chanes : construire et maintenir une liste de blocs de


mmoire libres et occups

Chaque bloc est une suite d'adresses conscutives

Toutes occupes par un mme processus


Ou toutes libres

Maintenance plus aise, recherche moins coteuse


R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

150

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Reprsentation de l'espace

Listes chanes : optimisation


Utiliser des listes doublement chanes
Maintenir deux listes

Une pour les blocs occups


Une pour les blocs libres

Ordonner chaque liste suivant la taille des blocs


La liste des bloc libres se simule avec... les blocs libres

Pour chaque zone libre, le 1er octet est la taille de la zone, le


2e est l'adresse du prcdent bloc libre et le 3e est l'adresse du
bloc libre suivant

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

151

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Reprsentation de l'espace

Listes chanes

Acclre l'allocation
Mais ralentit la libration

D'o allocation par subdivision (Buddy system)

Le gestionnaire de mmoire ne manipule que des blocs de taille


une puissance de 2
Chan par vecteur de listes : une liste d'indice k contient les
blocs de taille 2k
Ou reprsentation par arbre binaire
Fragmentation interne forte
Fragmentation externe persistante
Mais gestion des blocs trs ecace

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

152

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Buddy System

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

153

Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires

Multiprogrammation
Buddy System

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

154

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Sommaire
1

Introduction

Conception des sytmes d'exploitation

Gestion des processus

Gestion de la mmoire
Gestion des allocations mmoires
Mmoire virtuelle

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

155

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Problmes :
Monoprogrammation

Programmes trop volumineux pour tenir entirement en


mmoire

Multiprogrammation + interactivit

Beaucoup de processus en cours d'excution en mme temps


Impossibilit de tout faire tenir en mmoire

Solution : la mmoire virtuelle (virtual memory)


Ne mettre en mmoire que les parties rellement utilises des
processus
Charger et dcharger les direntes parties suivant les besoins
des processus
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

156

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Pagination

Mmoire physique trop petite pour contenir en mme temps et


entirement TOUS les processus prts

On dcoupe les processus en petites tranches


n

Les tranches sont de la mme taille (xe, 2 ), on les appelle


des pages
Elles sont places (mapped) en mmoire physique dans des
cadres de page (frames) de mme taille

Seules les pages utiles sont charges en mmoire physique

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

157

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Pagination

Problme : pas assez de


cadres libres pour toutes les
pages
Que faire si accs une page
non mappe en mmoire
(52K-56K par exemple) ?

Trap dans le SE : page fault


Repr par la MMU (bit de
prsence/abscence)
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

158

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Pagination

On utilise une table des pages


Une par processus (puisque
chacun a son propre espace
d'adressage)
Problmes :

La table des pages peut tre


trs grande (adressage 32
bits, page de 4 Ko 1000000
de pages)
Temps d'accs dgrads si
trop d'indirections

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

159

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Pagination

Solution / Optimisation pour la gestion des tables de pages :

Plusieurs niveaux d'indirection


Systme de cache : utilisation de registres spcialiss, le TLB
(Translation Lookaside Buer)

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

160

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Swap in / swap out

Quand un dfaut de page (page fault ) survient... que fait-on ?

1
2
3
4

La MMU lve une exception : interruption processeur, kernel


trap
Le processus est endormi
Le pager est activ et charge, s'il n'y a pas d'erreur, la page
requise dans un cadre de page
Quand la page est charge le processus est rveill

Problme :
Quelle page remplace-t-on ?

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

161

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Demande de page

Algorithme optimal :
chaque fois qu'une page est accde, elle est tiquete avec
un label donnant le nombre d'instructions excuter avant le
prochain accs cette page
Lors d'une demande de remplacement de page, la page avec le
label le plus lev est choisie pour tre dcharge de la
mmoire principale

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

162

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Demande de page

Algorithme optimal :
chaque fois qu'une page est accde, elle est tiquete avec
un label donnant le nombre d'instructions excuter avant le
prochain accs cette page
Lors d'une demande de remplacement de page, la page avec le
label le plus lev est choisie pour tre dcharge de la
mmoire principale

Impossible implanter :p !
Mais thoriquement c'est une bonne base de comparaison

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

162

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Demande de page

Algorithme NRU (Not Recently Used) :


2 bits : R, page refrence, et M, page modie
Rgulirement (timer qui gnre une interruption) le bit R est
remis zro
4 cas possibles :

1
2
3
4

Non accde, non modie (R ,M )


Non accde, modie (R ,M )
Accde, non modie (R ,M )
Accde, modie (R ,M )

On enlve en priorit suivant l'ordre croissant des cas


Facile implanter et assez ecace
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

163

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Demande de page

Algorithme FIFO (First In, First Out) :


Liste des pages en mmoire principale suivant leur ordre
d'arrive
Trs basique et peut remplacer des pages importantes juste
parce qu'elles sont  vieilles 
Algorithme de la seconde chance (amlioration FIFO)
Tenir compte du bit R
Si bit R 1 (accs rcent), le bit R est remis zro et la page
est rinsre en n de la liste des pages
Si tous les bits R sont 1

dgnre en FIFO

Trs nette amlioration par rapport FIFO


Algorithme de l'horloge = seconde chance avec liste circulaire
R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 6

164

Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle

Mmoire virtuelle
Demande de page

Algorithme LRU (Least Recently Used) :


Enlever la page utilise le moins rcemment
Un peu plus coteux, mais excellente approximation de
l'optimal
Liste chane des pages, mettre jour chaque accs une
page
Ou bien compteur incrmenter chaque accs (matriel)
Approximation par NFU (Not Frequently Used) :
Mcanisme de vieillissement
chaque interruption (timer) un compteur associ la page
est dcal droite (division par 2) et bit R recopi dans le bit
de poids le plus fort
R. Bonidal (FC 2010)

grand nombre = rcemment accde


Systmes d'exploitation

Cours 6

165

You might also like