Vous êtes sur la page 1sur 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

1 2 3 1

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

2 3 1

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

meilleure matrise amliorer l'ecacit

Tout programme est concern

Confrontation aux mmes problmes roue

ne pas rinventer la

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 7

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

2 3 1

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

2 3 1

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

2 3 1

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
Systmes d'exploitation  Cours 1 29

R. Bonidal (FC 2010)

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)
Systmes d'exploitation  Cours 1 31

R. Bonidal (FC 2010)

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 !

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

R. Bonidal (FC 2010)

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 L'attente peut tre longue (imprimante, graveur, ...) Le prog d'E/S rend la main, on continue

write

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 ,

e dition, fvrier 2008, 1104 pages, Prentice Hall

Andrew S. Tanenbaum

Principes des systmes d'exploitation ,

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

e dition, mars 2008, 872 pages, Vuibert


Daniel P. Bovet, Marco Cesati

Le noyau Linux ,

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 2
Introduction

Conception des sytmes d'exploitation Rle d'un SE Structures de SE

3 1

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 Organisation Communication Gestion de la mmoire Aectation Protection

Gestion des E/S Contrler tous les priphriques Unier les interfaces Gestion des chiers Robustesse 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 mmoire) La mmoire = code + donnes du processus pendant son excution

1 espace d'adressage (un ensemble d'adresses

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 Cration Modication Suppression

Rle du SE

Lecture criture

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 ( 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 2
Introduction

Conception des sytmes d'exploitation Rle d'un SE Structures de SE

3 1

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 : (1968)

THE de Djiksrta

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 Exemple d'un noyau monolithique

R. Bonidal (FC 2010)

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

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

Systmes d'exploitation

Cours 2

62

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

Exemple de l'appel

read(fd, &buffer, nbytes) ;

R. Bonidal (FC 2010)

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 Exemple : Windows NT

optimsation

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 fournit le traitement des interruptions

Une partie infrieure :

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 2 3
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
Systmes d'exploitation  Cours 3 72

R. Bonidal (FC 2010)

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 virtuellement concurrente Chaque processus a son espace d'adressage contenant

l'excution des processus est

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 La pile kernel (kernel stack) pour la gestion des fonctions de tous les processus en appel systme
Systmes d'exploitation  Cours 3

Liste des chiers ouverts Valeurs des registres, ...

R. Bonidal (FC 2010)

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

tats

R. Bonidal (FC 2010)

Systmes d'exploitation

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
Systmes d'exploitation  Cours 3 79

R. Bonidal (FC 2010)

Systmes d'exploitation Gestion des processus Changement de contexte

Sommaire
1 2 3
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
Systmes d'exploitation  Cours 3 80

R. Bonidal (FC 2010)

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) PID, registres, compteur ordinal, tat du processus, temps CPU utilis, UID, GID, umask, rpertoire courant, descripteurs chiers, ...
Systmes d'exploitation  Cours 3 81

Champs possibles dans un PCB

R. Bonidal (FC 2010)

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 2 3
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
Systmes d'exploitation  Cours 3 83

R. Bonidal (FC 2010)

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
Excutions Trs frquentes Occasionnelles Performances demandes Excellentes Bonnes
 Cours 3

Bas niveau Haut niveau


R. Bonidal (FC 2010)

Systmes d'exploitation

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

maximiser

Temps coul entre soumission et n d'excution Temps de gestion (swap, changement de contexte, ...) Temps d'excution des E/S (processus interactifs) 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, ...)
Systmes d'exploitation  Cours 3 90

R. Bonidal (FC 2010)

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 Premptifs

Exemples

Non premptifs

Unix, Windows NT/2000/XP..., BeOS MS-DOS, Windows 3.1, ancien MacOS


Systmes d'exploitation  Cours 3 91

R. Bonidal (FC 2010)

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
Solutions

Non premptif : SJF / PCA

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 Vieillissement automatique des processus
Systmes d'exploitation  Cours 3 94

Solution

R. Bonidal (FC 2010)

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 : Cas SJF :

TAM = TAM =

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

= 15

= 8, 5

2 Pnalit : rapport temps pass / temps requis

Large pnalit dans un systme non premptible mieux vaut passer du temps partag
Systmes d'exploitation  Cours 3 99

R. Bonidal (FC 2010)

Systmes d'exploitation Gestion des processus Le cas des Unix

Sommaire
1 2 3
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
Systmes d'exploitation  Cours 3 100

R. Bonidal (FC 2010)

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()

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)

fork() cre un nouveau processus

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
Systmes d'exploitation  Cours 3 104

R. Bonidal (FC 2010)

Systmes d'exploitation Gestion des processus Synchronisation des processus

Sommaire
1 2 3
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
Systmes d'exploitation  Cours 5 105

R. Bonidal (FC 2010)

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 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 ?

Question

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 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 ? Il faut un mcanisme d'exclusion mutuelle pour controler l'accs la ressource
Systmes d'exploitation  Cours 5 112

Question

Solution

R. Bonidal (FC 2010)

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

Processus 1

Rpter { Tantque
;

(a_qui_le_tour != 0)

Rpter { Tantque
;

(a_qui_le_tour != 1)

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

/* 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
Systmes d'exploitation  Cours 5 118

R. Bonidal (FC 2010)

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

Solution de Peterson

Processus 1 appelle entrer_SC()

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 ; }
 Cours 5 119

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)

Systmes d'exploitation

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 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 Rgler les race conditions sur l'accs au buer
Systmes d'exploitation  Cours 5 122

Objectifs

Problme

R. Bonidal (FC 2010)

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 processus endormi Si un autre processus appelle

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

le

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 Illustration

cpt

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 !
wakeup()
les smaphores

 Mmoriser  le

R. Bonidal (FC 2010)

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 n enregistrement


Lp valeur : int Lp : liste de PID

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 Quand elle est

elle indique le nombre d'units de

la ressoucre qui sont disponibles

<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) up(S)

Puis vrie si elle est toujours 0 Si c'est n'est pas le cas, sleep() est dclenche
(ou V) incrmente

(ou P) dcrmente

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


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

Exemple d'implantation

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


R. Bonidal (FC 2010)

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
Systmes d'exploitation  Cours 5 129

R. Bonidal (FC 2010)

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) ; } } void consommateur() { int item ; while(TRUE) { down(&full) ; down(&mutex) ; item = retirer_objet(buffer) ; up(&mutex) ; up(&empty) ; consommer_objet(item) ; } }
 Cours 5

R. Bonidal (FC 2010)

Systmes d'exploitation

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 2 3 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 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
Systmes d'exploitation  Cours 6 136

Point de vue plus raliste

R. Bonidal (FC 2010)

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 % 10 % 0% 0 1 2 3 4 5 20% d'attente en E/S 50% d'attente en E/S 80% d'attente en E/S 6 7 8 9 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 2

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 Grer par une entit spcique : la MMU (Memory Managment Unit) Fait l'aide de 2 registres :

2 Le CPU met toujours des adresses logiques qui sont chaque


fois converties en adresses physiques

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)
Systmes d'exploitation  Cours 6 144

R. Bonidal (FC 2010)

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


Systmes d'exploitation

Maintenance plus aise, recherche moins coteuse


R. Bonidal (FC 2010)  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
Systmes d'exploitation  Cours 6 151

R. Bonidal (FC 2010)

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
Systmes d'exploitation  Cours 6 152

R. Bonidal (FC 2010)

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 2 3 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 Beaucoup de processus en cours d'excution en mme temps Impossibilit de tout faire tenir en mmoire

Multiprogrammation + interactivit

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
 Cours 6 159

R. Bonidal (FC 2010)

Systmes d'exploitation

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