Vous êtes sur la page 1sur 232

Iset Siliana

Systme
dexploitation 1

TI11-16
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.h
tml

IsetSiliana

CHaabani Nizar

PLAN du COURS
I. Chapitre 1: Introduction

II.
III.
IV.
V.
VI.

Chapitre
Chapitre
physique
Chapitre
virtuelle
Chapitre
Chapitre

2: Gestion de Processus
3: Gestion de la mmoire
4: Gestion de la mmoire
5: Gestion des entres-sorties
6: Gestion des fichiers

http://www.academiepro.com/enseignants-104-Chaabani.Nizar.h
tml

IsetSiliana

CHaabani Nizar

Chapitre 1: Introduction
Cest quoi un OS?
Grands Systmes
Systmes Personnels
Systmes Multiprocesseurs
Systmes Distribus
Systmes Temps Rel
Systmes la main
Historique des OSs et des Concepts

Architecture pour les systmes


IsetSiliana

CHaabani Nizar

Cest quoi un OS?


Programme intermdiaire entre lutilisateur

dun ordinateur et le matriel

But dun OS:

Excuter les programmes des utilisateurs


Rendre lordinateur (systme informatique)

facile utiliser

Exploiter le systme informatique dune

manire efficace

IsetSiliana

CHaabani Nizar

Quelques mots sur les systmes


dexploitation
Dfinition
Un systme d'exploitation (SE; en anglais: OS =
operating system) est un ensemble de
programmes de gestion du systme qui permet de
grer les lments fondamentaux de l'ordinateur:
Le matriel - les logiciels - la mmoire - les
donnes les rseaux.
Typiquement, un Systme d'Exploitation est
compos
d'un noyau ;
de bibliothques dynamiques ;
d'un ensemble d'outils systme ;
de programmes applicatifs de base.

IsetSiliana

CHaabani Nizar

Le systme dexploitation
Le noyau

IsetSiliana

CHaabani Nizar

Le systme dexploitation
Le
noyau
gestion
des priphriques (au moyen de pilotes)
gestion des processus :
attribution de la mmoire chaque processus
ordonnancement des processus (rpartition du
temps dexcution sur le ou les processeurs)
synchronisation et communication entre
processus (services de synchronisation,
dchange de messages, mise en commun de
segments de mmoire, etc.)
gestion des fichiers (au moyen de systmes de
fichiers)
gestion des protocoles rseau (TCP/IP, IPX, etc.)
IsetSiliana

CHaabani Nizar

Le systme dexploitation
Autres composantes de
Les bibliothques dynamiques regroupent les
lOS
oprations

les plus utilises dans les programmes informatiques


viter la redondance de ces oprations dans tous les
programmes
certains systmes ne proposent pas de bibliothques
dynamiques
Les outils systme permettent :
de configurer le systme
de passer le relais aux applications proposant des services
un ou plusieurs utilisateurs ou d'autres ordinateurs
Les programmes applicatifs de base offrent des
services l'utilisateur (calculatrice, diteur de texte,
navigateur web, etc.)

IsetSiliana

CHaabani Nizar

Petit retour historique


1re gnration (1945-1955)
Tubes vides
Tableaux dinterrupteurs, cartes perfores
2me gnration (1955-1965)
Transistors
Traitements par lots
3me gnration (1965-1980)
Circuits intgrs
Mini-ordinateurs, faible rapport qualit/prix
4me gnration (1980-aujourdhui)
Microprocesseurs (circuits intgrs
IsetSiliana

CHaabani Nizar

Systme dexploitation
(SE)
Fournit linterface usager/machine:
Masque les dtails du matriel aux

applications
Le SE doit donc traiter ces dtails
Contrle lexcution des applications
Le fait en reprenant priodiquement le
contrle de lUCT
Dit lUCT quand excuter tel programme
Il doit optimiser lutilisation des ressources pour
maximiser la performance du systme
IsetSiliana

CHaabani Nizar

10

Diffrents niveaux dun


Systme

IsetSiliana

CHaabani Nizar

11

Kernel Mode vs. User


Mode
Kernel mode:
User Mode
Mode de
fonctionnement du
S.E
Acces complet et
total a
toutes les ressources
materielle
Execute nimporte
quelle
instruction que la
machine peut executer
IsetSiliana

CHaabani Nizar

Mode de

fonctionnement de
tous
les programmes
Une partie
seulement des
instructions sont
accessibles
Les instructions qui
affectent les I/O sont
inaccessibles
12

Fonctions dun systme


dexploitation
Gestion de la mmoire
Gestion des systmes de fichiers
Gestion des processus
Mcanismes de synchronisation
Gestion des priphriques
Gestion du rseau
Gestion de la scurit.

IsetSiliana

CHaabani Nizar

13

Vue abstraite dun SE

IsetSiliana

CHaabani Nizar

14

Ressources et leur
gestion
Ressources:
physiques: mmoire, units E/S, UCT...
Logiques = virtuelles: fichiers et bases de

donnes partags, canaux de communication


logiques, virtuels...
les ressources logiques sont bties par le
logiciel sur les ressources physiques

Allocation de ressources: gestion de

ressources, leur affectation aux usagers qui


les demandent, suivant certains critres

IsetSiliana

CHaabani Nizar

15

volution historique des


SE
Le dbut: routines dE/S, amorage systme
Systmes par lots simples
Systmes par lots multiprogramms
Systmes partage de temps
Ordinateurs personnels
SE en rseau
SE rpartis
Les fonctionnalits des systmes simples se

retrouvent dans les systmes complexes.


Les problmes et solutions qui sont utiliss dans les
systmes simples se retrouvent souvent dans les
systmes complexes.
IsetSiliana

CHaabani Nizar

16

Systmes de traitement par lots


(batch) simples
Sont les premiers SE (mi-50)
Lusager soumet un job (ex: sur cartes
perfores) un oprateur
Loprateur place un lot de plusieurs jobs sur le
dispositif de lecture
Un programme, le moniteur, gre l'excution de
chaque programme du lot
Le moniteur est toujours en mmoire et prt
tre excut
Les utilitaires du moniteur sont chargs au
besoin
Un seul programme la fois en mmoire, et les
programmes sont excuts en squence
La sortie est normalement sur un fichier,
imprimante, ruban magntique
IsetSiliana

CHaabani Nizar

17

Schma Mmoire dun Systme de


Tratement par lots

IsetSiliana

CHaabani Nizar

18

Systmes Batch
Multiprogramms
Plusieurs tches sont simultanment en mmoire, et le CPU
est multiplex entre elles; si une doit attendre une E/S, une
autre tche est choisie

IsetSiliana

CHaabani Nizar

19

Systmes Temps Partag


Sert pour le pilotage et le contrle des droulements

externes (p.ex. centrale lectrique)


doit garantir des temps de ractions donnes pour

des
signaux extrieur urgents
plusieurs systmes d'exploitations n'y arrivent pas

car
l'interruption de certaines activits met le systme
dans
un tat instable
IsetSiliana

CHaabani Nizar

20

Systmes Personnels
Ordinateurs Personnels Systmes ddis

un seul utilisateur
Priphriques dE/S clavier, souris, crans,
imprimante, .
Convivialit et interactivit avec lutilisateur
Peuvent tourner diffrents types dOS
(Windows, MacOS, UNIX, Linux)

IsetSiliana

CHaabani Nizar

21

Systmes Parallles
Systmes avec plusieurs CPUs en

communication
Aussi connus comme systmes

multiprocesseurs
Systmes fortement coupls processeurs

partagent la mmoire et lhorloge;


communication a lieu via la mmoire partage
Avantages des systmes parallles:
Augmentation de la capacit de traitement
Economiques
Tolrance aux pannes

IsetSiliana

CHaabani Nizar

22

Systmes Rpartis
Rpartir la computation sur plusieurs processeurs

physiques
Systmes faiblement coupls chaque processeur
possde sa propre mmoire; les processeurs
communiquent entre eux via des lignes de
communication, tels des bus, des lignes de tlphone,
des rseaux, etc
Avantages des systmes rpartis
Partage des ressources
Puissance de computation plus grande Partage de

charge
Tolrance aux pannes
Communications
IsetSiliana

CHaabani Nizar

23

Systmes Rpartis (cont)


Require une infrastructure rseau
Rseaux Locaux (LAN) ou Rseaux Large

Echelle (WAN)
Peuvent tre des systmes client-serveur
ou peer-to-peer

IsetSiliana

CHaabani Nizar

24

Structure Gnrale dun


Client-Serveur

IsetSiliana

CHaabani Nizar

25

Systmes Temps Rel


Souvent utiliss dans des

environnements spcialiss, tels les


exprimentations scientifiques,
limagerie mdicale, les systmes
de contrle industriels,
Contraintes de temps bien dfinies
Systmes temps rel souples ou
rigides

IsetSiliana

CHaabani Nizar

26

Systmes la main
Personal Digital Assistants (PDAs)
Tlphones Mobiles
Contraintes:
Mmoire limite
Processeurs lents
Ecrans daffichage petits

IsetSiliana

CHaabani Nizar

27

Introduction au systme dexploitation


(Ex : MS-DOS).

http://www.academiepro.com/enseignants-104-Chaabani.Nizar.h
tml

IsetSiliana

CHaabani Nizar

28

Exemples :
Systme

Mono-utilisateur

DOS

WIN9X

Multi-utilisateur

Mono-Tche

Multi-Tche

X
X

WIN NT\2000

Unix

Mac \ OS X

IsetSiliana

CHaabani Nizar

29

Organisation de fichiers et rpertoires

Organisation base sur le concept


d'arbres : " \ " racine de' l'arborescence correspondant
un disque (C: ou A:)

Repertoire1

fichier1

R2

fichier2

R5

R3

..

R4

R6

R7

R8

fichier3
IsetSiliana

CHaabani Nizar

30

IsetSiliana

CHaabani Nizar

31

Introduction au systme MS-DOS


(MicroSoft Disk Operating System)
Le DOS, comme tout systme d'exploitation, contrle les activits de
l'ordinateur. Il gre des oprations telles que la circulation, l'affichage, et
l'entre de donnes entre les divers lments constitutifs du systme.

Le rle du DOS est d'interprter les commandes saisies au clavier par


l'utilisateur.
Ces commandes permettent d'effectuer les tches suivantes:

IsetSiliana

la gestion des fichiers et des rpertoires.


la configuration du matriel.
l'optimisation de la mmoire.
l'excution des programmes.

CHaabani Nizar

32

Les fichiers sous MS-DOS

Sous MS-DOS chaque fichier peut tre aussi volumineux que possible,
cependant le nom que vous lui donnez est soumis des restrictions, on ne peut
en effet lui donner un nom d'une longueur maximale de 8 caractres plus 3 pour
l'extension.
De plus, les fichiers ne doivent contenir que les caractres suivants:
lettres de A Z
chiffres de 0 9
caractres spciaux suivants: _ ^ $ ~ ! # % & - { } ( ) @ '
Enfin, les noms de fichiers ne doivent pas contenir:

IsetSiliana

de blanc (espace).
de virgule.
de barre oblique inverse.
de point (hormis le point qui spare le nom de l'extension).
CHaabani Nizar

33

Les fichiers sous MS-DOS

et ils ne doivent pas non plus appartenir la liste de noms


rservs:
CLOCK$ CON
LPT1 LPT2
LPT3

NUL

AUX

COM1

COM2

COM3 COM4

PRN

Sous MS-DOS, les noms de ces rpertoires sont soumis aux


mmes restrictions de longueur que les fichiers (8 caractres pour
le nom).

IsetSiliana

CHaabani Nizar

34

Quelques commandes MS-DOS

Rle : Afficher le contenu d'un rpertoire


La commande " DIR " fait la liste des fichiers
correspondant aux spcifications prcises par
l argument de la commande et donne quelques
renseignements sur les fichiers.
Remarque : Si on veut afficher la liste des fichiers
dont l extension est .txt , on envoie la commande :
C:\DIR *.txt
IsetSiliana

CHaabani Nizar

35

IsetSiliana

Quelques commandes MS-DOS

Rle : Crer un rpertoire


La commande MKDIR (MaKe DIRectory)
peut tre abrge en MD.
Il suffit de taper :
C:\MD Nom du rpertoire

CHaabani Nizar

36

IsetSiliana

Quelques commandes MS-DOS

Rle : Effacer un rpertoire


La commande RMDIR (ReMove DIRectory)
peut tre abrge en RD.
C:\RD Nom du Rpertoire

Rle : Changer de rpertoire


La commande "CD" ou encore "CHDIR"
permet de passer d'un rpertoire
l'autre (CD pour Change Directory)
C:\cd Nom du Rpertoire
CHaabani Nizar

37

Quelques commandes MS-DOS

Rle : copier un ou une liste de fichiers


Syntaxe : COPY [fichier dpart] [fichier
destinataire]

Il faut passer en premier argument le nom du


fichier copier, et en deuxime argument le
nom que nous voulons donner la copie.

IsetSiliana

CHaabani Nizar

38

Quelques commandes MS-DOS

Exemple : Pour copier fichier1.txt dans le


sous rpertoire R2 en lui donnant un
nouveau nom copie1.txt.
"\"

Rpertoire
courant

IsetSiliana

Repertoire1

fichier1

racine de' l'arborescence correspondant


un disque (C: ou A:)

R2

fichier2

R5

R3

R4

R6

R7

R8

fichier3
CHaabani Nizar

39

Quelques commandes MS-DOS

Rle : Renommer un fichier


La commande RENAME peut tre abrge
en REN
Exemple :
C:\ren fichier1.txt

IsetSiliana

CHaabani Nizar

surnom.txt

40

IsetSiliana

Quelques commandes MS-DOS

Rle : Supprimer un fichier


Elle sert dtruire un fichier ou une liste de
fichier. On lui donne comme argument le nom
d un fichier (et ventuellement son extension)
ou bien les spcifications d une liste de fichiers
l aide des caractres ? ou * .
Il est possible de supprimer tous les fichiers d un
rpertoire en une seule fois : ERASE *.*
Exemple:
C:\erase Nom de fichier
CHaabani Nizar

41

Quelques commandes MS-DOS


dir

liste le contenu d'un rpertoire

cd

change de rpertoire

cd ..

rpertoire parent

md ou mkdir

cre un nouveau rpertoire

deltree

supprime un rpertoire, ainsi que l'ensemble de ses sous-rpertoires.

copy, xcopy

copie de fichier

move

dplacement de fichier

del

supprime le fichier

help

aide sur la commande demande

format

formate le lecteur demand

ver

donne le numro de version

IsetSiliana

CHaabani Nizar

42

IsetSiliana
IsetSiliana

CHaabani
Nizar
CHaabani
Nizar

4343

La commande
Commandes
EXECUTER
MsConfig
RegEdit
et WINDOWS
DOS
SysEdit

CleanMGR (Nettoyage de disque)


CONF (NetMeeting)

MsInfo32
MMC
WinMSD
Ping
IpConfig
MsMsgs
Perfmon
Charmap (table des

DxDiag (DirectX Diagnostics)


HelpCtr (Centre daide)

IcwConn1 (Assistant connexion)


Magnify (Utilisation de la loupe)
MstSc (Assistant de bureau

distance)
Wab (Carnet dadresse Outlook
Express)
Sfc (Intgrit des fichiers systme
Winver (N version Windows)

caractres
IsetSiliana

CHaabani Nizar

44

Ordinateur

Un ordinateur est une machine lectronique


qui permet l'excution des programmes
Un programme est un ensemble d'instructions
qui seront traduites en signaux lectriques
La sortie de ces programmes est convertie
nouveau pour que l'utilisateur puisse la
comprendre
Un ordinateur est compos au moins de :
processeur, carte mre;
mmoire vive;
mmoires de masse;
priphriques

IsetSiliana

CHaabani Nizar

45

Principes de fonctionnement
Ordinateur

IsetSiliana

Unit centrale
de traitement
Unit de contrle
ou
Unit de commande

Mmoire
Cache

Unit arithmtique
et logique
ou
Unit de traitement
ou
Unit de calcul

Instructions

Mmoire centrale
ou principale

Donnes

Units dentre/sortie
ou dI/O
Contrleur de
priphriques
CHaabani Nizar

Carte
rseau
46

Bus de donnes

CPU

Mmoire
Centrale

Unit
d E/S

Priphriques

IsetSiliana

Autre reprsentation

Bus d adresses
Bus de contrle

CHaabani Nizar

47

Principes de fonctionnement CPU


Mmoire centrale

IsetSiliana

Horloge

Reg Adr Reg Mot


rsultats
adresse
mot
instruction mmoire
PC ou CO
RI
Unit de
commande
Dcodeur
Squenceur

tat

Unit de
calcul

Unit arithmtique
et logique
oprandes

Registres

rsultat

CHaabani Nizar

48

Chap. I I

GESTION DES PROCESSUS et


THREADS
Partie 1. La GESTION DES PROCESSUS

Un SE tourne en permanence aprs son dmarrage avec

lordinateur

IsetSiliana

il permet le dveloppement et lexcution de nouveaux

programmes
Description le fonctionnement dun SE

Concept fondamental : La dcomposition !

Le SE fait tourner les programmes utilisateurs sur le

processeur

Abstraction du processeur ? Introduire la notion

de Processus
CHaabani Nizar

49

IsetSiliana

CHaabani Nizar

50

IsetSiliana

CHaabani Nizar

51

Processus et
terminologie
Concept de processus: un programme en
(aussi
appel
job,
task,
user
excution
program)
Possde des ressources de mmoire, priphriques, etc
Ordonnancement de processus
Oprations sur les processus
Processus cooprants
Processus communicants
IsetSiliana

CHaabani Nizar

52

1. Notion de Processus
Quest-ce quun programme ?
Ensemble de modules sources/objets
Rsultat de l'dition de liens (actions manipulant des donnes)

Description Statique (Code + donnes)


Que dsigne le terme processeur ?
Entit matrielle capable d'excuter des instructions
parfois aussi entit logicielle (interprteur, ...)
Quest-ce quun processus ?
Entit dynamique reprsentant lexcution dun programme
sur un processeur
cre un instant donn, a un tat qui volue au cours du
temps et qui disparat, en gnral, au bout dun temps fini

Dbut

Etat

Temps t

Fin

Un programme est une suite d'instructions (un objet statique).


Un processus est un programme en excution et son contexte (un objet
dynamique).
IsetSiliana

CHaabani Nizar

53

Notion de Processus (suite)


Dfinition technique: un processus est labstraction du

SE pour
lallocation de la MC (code, donnes, pile) espace
dadressage
lallocation du processeur (CO, )
Intrt de la notion de processus
Abstraction de la notion d'excution squentielle
Reprsentation des activits parallles et de leurs

interactions unit de structuration


Exemples de processus :
L'excution dun programme
Copie dun fichier sur disque
la transmission dune squence de donnes sur un rseau

IsetSiliana

CHaabani Nizar

54

2. Paralllisme et Concurrence
Soient deux processus P1 et P2 en mmoire centrale (prts sexcuter)
Mise en uvre concrte de lexcution de P1 et P2 :

P1

P2

P1
P2

Excution squentielle
(1 processeur)
Excution parallle
(2 processeurs)

P2
P1

Excution concurrente
(1 processeur)

Systme
T

IsetSiliana

CHaabani Nizar

55

Paralllisme et Concurrence (2)


Multiprogrammation / Pseudo-paralllisme :
Un SE doit, en gnral, traiter plusieurs processus en mme temps
Il y a un seul processeur (la plupart du temps)

Entrelacement des excutions (simuler une excution parallle)

A tout moment le SE ne traite quun seul processus la fois

La commutation tant trs rapide

Les processus utilisateurs sont lancs par un interprte de commandes.


Ils peuvent eux-mmes lancer ensuite dautres processus

P1

Hirarchie des processus


(arborescence)
P2
Fils : processus crs

Pre : processus crateur

P3
P4

P5

Au lancement du systme, il nexiste quun seul processus


: l'anctre de tous
IsetSiliana

CHaabani Nizar

56

3. Processus en Mmoire Centrale


L'tat de la mmoire centrale associ un processus est dfini

par le contenu de 3 segments (le code, la pile et les donnes)


et dun contexte.

Segment code -- Lecture seulement


Contient les instructions
Invariant (toute la dure d'excution du
processus).
Segment donnes -- Lecture/Ecriture
Contient les variables globales +
donnes statiques (Constantes), qui sont
initialises la compilation
Pile d'excution -- Lecture/Ecriture
Un programme est constitu dun
ensemble de fonctions (procdures) qui
s'changent dinformations
Contient les variables changes +
variablesCHaabani
locales
IsetSiliana
Nizar

Pile
dexcution

Donnes
Code

Les segments
dun processus

57

4. Notion de Ressources -- Contexte du


Processeur

Contexte du processeur:
Hypothses : 1 seul processeur +

plusieurs processus le processeur est


rserv lusage dun seul processus
Contexte = Contenu des registres
adressables/spcialiss -- Mot d'tat
(PSW - Program Status Word )

Etat d'excution : Actif/Attente


Mode de fonctionnement :
Superviseur/utilisateur
Masque dinterruption
Contexte accessible en mmoire

IsetSiliana

CHaabani Nizar

58

Contexte dexcution dun


processus
Etat courant du processus
Code du programme excut
Donnes statiques et dynamiques
Informations qui caractrisent ltat

dynamique du processus

Compteur de programme (PC / CO)


Etat des registres
Liste des fichiers ouverts
Variables denvironnement
Image mmoire (tat de lespace dadressage)

sauvegarder lorsque le processus est

commut
restaurer lorsque le processus reprend la
main
IsetSiliana

CHaabani Nizar

59

Ordonnanceur UCT
Dans un systme multitches, le systme
d'exploitation doit grer l'allocation du processeur
aux processus. On parle d'ordonnancement des

processus

IsetSiliana

CHaabani Nizar

60

tat de processus
Au fur etIMPORTANT
a mesure quun processus excute, il

change dtat

nouveau: le processus vient dtre cr


excutant-running: le processus est en train dtre

excut par une UCT


attente-waiting: le processus est en train dattendre un
vnement (p.ex. la fin dune opration dE/S)
prt-ready: le processus est en attente dtre excut
par une UCT
terminated: fin dexcution

IsetSiliana

CHaabani Nizar

61

5. Contexte dun Processus (1)


Quand un processus nest pas en excution, son tat

doit tre sauvegarde dans son descripteur associ.


Excuter
processus

Changer
Etat
Sauvegarder
Etat

Quest-ce quon sauvegarde? Le contexte du processus (info.


ncessaires la gestion des processus)
PID

Contexte du
processus

CO
Contexte du
processeur

Info.
dordonnancem
ent
Info.
Complem. +
divers

Contexte accessible
Allocation
mmoire

BCP
(Process Control Block)
IsetSiliana

Etat
dexcution
Mode de
fonctionnement
Masque dIt

Contexte de processus

CHaabani Nizar

CO
PSW
6
2

62

Contexte dun Processus (2)


Contexte dun processus: ensemble de paramtres regroups dans

les segments du programme en cours d'excution (code + donnes)


Le SE dtient une table, contenant la liste de tous les processus
chaque entre conserve le descripteur de processus, appel Bloc

de Contrle de processus BCP ((Process Control Block)


BCP : structure de donnes associe l'excution

de chaque programme Reprsente la situation actuelle d un

processus

IsetSiliana

CHaabani Nizar

63

6. Etat dun Processus


Commutation des taches (passage dune tache une autre) est

ralis par un ordonnanceur (dispatcher/short term scheduler)

Nouveau
processus
PRET

Commutatio
n
It -- Tps
dpass

E/S
termines
BLOQUE

Terminaison
ACTIF

Demande
dE/S
Attente

3 tats dun processus : actif, prt, bloqu


actif bloqu = action volontaire (lecture sur disque)
bloque prt = action extrieure au processus
(ressource disponible)
prt actif = Dcision de lallocateur du processeur
IsetSiliana

CHaabani Nizar

64

Le multithreading

En fait, chaque processus peut lui-mme


fonctionner comme le systme d'exploitation
en lanant des sous-tches internes au
processus
Ces sous-tches sont nommes "flux
d'excution" "processus lgers "ou Threads.

IsetSiliana

CHaabani Nizar

65

Trait de Texte
ultithreaded
Absbjshd
Absbjshd
Absbjshd
Dnddjkjdq
Dnddjkjdq
Dnddjkjdq
HqdjlqdjlHqdjlqdjlHqdjlqdjl
JddmkmJddmkmJddmkm
Djdlqjdjdq
Djdlqjdjdq
Djdlqjdjdq
djdqkmkd
djdqkmkd
djdqkmkd

clavier
noyau

Disque

Thread 1: remet en forme le document


Thread 2: interaction avec lutilisateur
Thread 3: crit priodiquement le contenu de la RAM sur le disque

IsetSiliana

CHaabani Nizar

66

Diffrences et
similitudes
entre
La communication entre les threads est
plus rapide que
communication entre
threads
etlaprocessus
:

les processus.
Les Threads possdent les mmes tats
que les processus.
Deux processus peuvent travailler sur une
mme donne (un tableau par exemple) en
lecture et en criture dans une situation
de concurrence de Deux processus il
en est de mme pour les threads.

IsetSiliana

CHaabani Nizar

67

7. Mcanisme de Commutation (1)


pointeur: les PCBs sont rangs dans des listes

enchanes ( voir)
tat de processus: ready, running, waiting
compteur programme: le processus doit
reprendre l instruction suivante
autres registres UCT
bornes de mmoire
fichiers quil a ouvert
etc., v. manuel

IsetSiliana

CHaabani Nizar

68

Mcanisme de Commutation (2)


Commutation de processus = commutation

des contextes de processus


Quand lUCT passe de lexcution d un processus

l excution d`un proc 1, il faut mettre jour et


sauvegarder le PCB de 0
reprendre le PCB de 1, qui avait t sauvegard
avant
remettre les registres d UCT tels que le compteur
d instructions etc. dans la mme situation qui est
dcrite dans le PCB de 1
IsetSiliana

CHaabani Nizar

69

IsetSiliana

Mcanisme de Commutation (3) -Schma

CHaabani Nizar IsetSiliana

CHaabani Nizar

70
70

8. Relations entre Processus (1) -Comptition


Il existe entre les processus un certain nombre de

relations, appeles INTERACTIONS;


ces interactions peuvent tre de comptition ou de
coopration s
Comptition
Situation dans laquelle plusieurs processus doivent
utiliser simultanment une ressource accs exclusif
(1 seul processus la fois), encore appele ressource
critique.
Exp.

IsetSiliana

Lusage du processeur (pseudo-paralllisme)


Accs un priphrique (imprimante)

2 processus en comptition sont dits en

exclusion mutuelle pour P2


cette ressource.

P1
Une solution
possible : Faire attendre les processeurs

demandeurs que loccupant actuel ait fini (FIFO)


R
Ressource
Critique
CHaabani Nizar

Ordre dutilisation : Indiffrent


P1; P2 ou P2; P1

71

Relations entre Processus (2) -Coopration


Coopration
Situation dans laquelle plusieurs processus

collaborent une tache commune et doivent se


synchroniser pour raliser cette tache.
Deux processus qui cooprent peuvent galement se
trouver en exclusion mutuelle pour une ressource
P2 imprime
commune.
le fichier F
P1 produit
un fichier F
F

P2 ne peut s'excuter que si:


P1 a termin son excution
P1 < P2

Synchronisation
Un processus doit attendre quun autre processus ait
franchi un certain point de son excution point de
synchronisation
Imposer des contraintes de synchronisation aux
processus
Prcdence des processus
Conditions de franchissement de certains points
IsetSiliana
CHaabani Nizar
critiques

72

Relations entre Processus (3)


Attendre un Processus
Relations entre deux processus

processus
Solution 1: attente active
P1
while (ressouce occupee)
occupee = True;
{ };
Ressource;

-- Faire

Faire attendre un
P2

Ressource
Utiliser

Ressource occupee = True;


Ressource
occupee = False;
....

Trs peu conomique si pseudo-paralllisme


Difficult dune solution correcte (chap. Suivant)

Solution 2 : Blocage du Processus


Blocage

IsetSiliana

Processus bloqu : attente dune ressource non disponible


Arrter l'excution

jusqua son rveil explicite par un autre processus


ACTIF

CHaabani Nizar

Rveil
Reprendre excution

BLOQUE

73

9. Conditions d'Excution Concurrente


(1)
Augmenter le degr de multi-programmation et

IsetSiliana

donc le taux dutilisation du processeur ?


Etablir les contraintes de prcdence (relation <)
Construire un graphe de prcdence : graphe

acyclique o

chaque nud, Si, reprsente une instruction

chaque arc SiSj signifie que linstruction Sj ne pourra


s'excuter que si Si ait termine son excution.

Exemple : Soit la squence dinstructions

suivante :
S1
S2
S3
S4

lire(x)
lire(y)
z=x*y
crire(z)

CHaabani Nizar

S1

S2
S3
S4
74

Iset Siliana

IsetSiliana

CHaabani Nizar

75

IsetSiliana

Chap. I I

GESTION DES PROCESSUS et


THREADS
Partie 2. ORDONNANCEMENT DES PROCESSUS

1. Introduction
2. Types dordonnancement
3. Modle simple d'ordonnancement
4. Politiques dordonnancement
Organisations des files dattente
Ordonnancement FCFS / SJF/ RR/ priorit/
SRTF/ Multi-niveaux
5. Hirarchie dordonnancement

CHaabani Nizar

76

1. Introduction -- Gnralits
Le SE permet 2 types de dcisions sur le processeur :
Ordonnancement
des
processus :
Lordonnanceur
(scheduler) choisit quel est le processus qui doit tourner
Problme: Dans quel ordre les processus sont servis?;
par exemple, un processeur et plusieurs processus.
Allocation du processeur : lallocateur (dispatcher)
lexcution du processus choisi par le scheduler

lance

Ordonnanceur -- Scheduler
Objectif :
Sur un intervalle de temps assez grand, faire progresser tous
les processus, tout en ayant, un instant donn, un seul
processus actif (dans le processeur).
Rle : Prendre en charge la commutation de processus, qui
rgle les transitions dun tat un autre des diffrents
processus.
IsetSiliana

CHaabani Nizar

77

Types
Il existe diffrentes politiques d'allocation :
dordonnancement
- avec ou sans priorit
sans : premier arriv premier servi (first
come, first
served : FCFS)
avec :
la priorit peut tre fixe ou dynamique
il peut y avoir premption, ou non

IsetSiliana

CHaabani Nizar

79

3. Modle Simple dOrdonnancement


Reprsentation de lordonnancement des processus
Terminaison

File des processus prts


Scheduler dispatch

UC

File dattente E/S


E/S

Demande E/S
Tranche de temps expire

exit

Fils sexcute
Interruption

IsetSiliana

CHaabani Nizar

Fork un fils
Attente It

80

4. Politique dOrdonnancement
Organisations des FAs
H : Un seul processeur + plusieurs processus

Une file dattente, soit FA, des processus prts


Principe de chanage dune FA : avant/ arrire/ mixte
Plusieurs processus sont mis dans une FA, et le service

IsetSiliana

demand leur est fourni tour tour, en fonction de


critres de gestion spcifiques la FA.
Rquisition
Arrive

File dattente des prts

Scheduler= Ordi

UC

Service
satisfait

Sortie

Dispatcher =

allocateur

Gre la FA : Arrive des processus et Gre lallocation du processeur,


leur placement
il peut rquisitionner
CHaabani Nizar

81

4. Politiques dordonnancement
Algorithmes sans premption (sans
Algorithme FCFS (First Come First Served) -- Premier Arriv Premier
Servi
rquisition)
(
FCFS,
SJF,
Priorit)
(1)
FCFS
Un processus s'excute jusqu' sa terminaison, sans retrait forc de la
ressource.
Modle adapt au partage du processeur par des processus de mme
priorit (aucun privilge entre les processus)
Avec les algorithmes d'ordonnancement sans rquisition, un processus
affect au processeur ne peut pas tre interrompu.
Facile implanter,
mais
efficace
(leDa
choix
Proce
ssus peu
Dur
eestime
tedanest
rrivepas li lutilisation
de lUC)
Exemple

P1

24

P2
P3
P4

8
12
3

1
2
3

Schmatiser lexcution des processus selon leur ordre d'arrive. Pour cela,
on utilise le DIAGRAMME DE GANTT
P1
0

P2
24

P3
32

P4
44
47

Temps de vie des processus


Temps de traitement moyen = [(24 - 0) + (32 - 1) + (44 -2) + (47
-3)]/4 = 35,25
IsetSiliana

CHaabani Nizar

82

4. Politiques dordonnancement
Algorithmes sans premption (FCFS, SJF,
SJF
Algorithme SJF -- Shortest Job First (STCF -- Shortest Time to
Priorit)
Completion (2)
First) : Algorithme du Plus Court dAbord :
Suppose la connaissance des temps d'excution : estimation de la

dure de chaque processus en attente

Les processus sont disponibles simultanment

(sans premption)

Excuter le processus le plus court

Algorithme optimal

Minimise

le temps moyen

d'excution
Dans le cas o plusieurs processus possdent la mme dure, la
politique FCFS sera alors utilise.

IsetSiliana

CHaabani Nizar

83

4. Politiques dordonnancement
Algorithmes sans premption (FCFS, SJF,
SJF
Le principe de cet algorithme consiste attribuer
Priorit)
(2)
Priorit
chaque processus
une valeur qui indique sa priorit.
Le processeur est allou au processus de plus haute

priorit.
Un classement possible des processus est donn comme
suit (des processus les plus prioritaires aux processus les
moins prioritaires) :
1. Processus systme.
2. Processus interactifs.
3. Processus batch.
4. Processus utilisateurs.
L'ordonnancement avec priorit sans rquisition peut

engendrer un problme de famine puisque les processus


de faible priorit risquent d'attendre indfiniment.
IsetSiliana

CHaabani Nizar

84

4. Politiques dordonnancement
Algorithmes avec premption (Priorit,
Priorit RR,
SRTF)
(1)rquisition est d'interrompre un processus en cours
L'ide
de la
d'excution n'importe quel moment.
A chaque processus est assigne (automatiquement par le SE /externe)
une priorit

Assignation statique -- priorits fixes


facile implanter
Assignation dynamique : la priorit initiale assigne un processus peut

tre ajuste dautres valeurs difficile implanter


Pb. de famine : un processus de faible priorit peut ne jamais s'excuter
si des processus plus prioritaires se prsentent constamment
Recalculer priodiquement le numro de priorit des processus (plusieurs
FA) la priorit dun processus dcrot (croit) au cours du temps pour
ne pas bloquer les autres FA
Principe : On lance le processus ayant la plus grande priorit

IsetSiliana

Algorithme dordonnancement classes de priorit


CHaabani Nizar

85

IsetSiliana

CHaabani Nizar

86

IsetSiliana

CHaabani Nizar

87

IsetSiliana

CHaabani Nizar

88

IsetSiliana

CHaabani Nizar

89

IsetSiliana

CHaabani Nizar

90

IsetSiliana

CHaabani Nizar

91

4. Politiques dordonnancement
Algorithmes avec premption (Priorit,
Priorit RR,
SRTF) (1)

IsetSiliana

Algorithme dordonnancement classes de priorit


CHaabani Nizar

92

4. Politiques dordonnancement Algorithmes avec


premption (Round Robin,
Robin Priorit, SRTF) (2)
L'ide

de la rquisition est d'interrompre un processus en cours


d'excution n'importe quel moment.
Algorithme tourniquet -- RR : lun des algorithmes les plus utilises et des
plus fiables
Ordonnancement selon lordre FCFS Equitable
Chaque processus possde un quantum de temps pendant lequel il sexcute
Lorsquun processus puise son quantum de temps : au suivant !
Sil na pas fini : le processus passe en queue du tourniquet et au suivant !
Exemple : Le quantum de temps, Q, est gale 2 units; quel est le temps de
traitement moyen?

P2
(4 units)
Excution
CPU

P1
(3 units)

Q
P8
(2 units)

Q
Q

P7
(4 units)
IsetSiliana

P3
(2 units)

CHaabani Nizar

P4
(3 units)

P5
(3 units)

P6
(5 units)
93

Algorithme Tourniquet -- Round Robin (suite)


P1 P2 P3 P4 P5 P6 P7 P8 P1 P2 P4 P5 P6 P7 P6
0

10 12

14

16

17 19

20 21

23

25 26 Temps de vie

Diagramme de Gantt (Q=2 units)

Temps de traitement moyen =


[(17-0) + (19-1) + (6-2) + (20-3) + (21-4) + (26-5) + (25-6) + (167)] /8 = 15,25
Problme = rglage du quantum (petit/grand; fixe/variable; est-il
le mme pour tous les processus ?)
Les quanta gaux rendent les diffrents processus gaux
Quantum trop petit provoque trop de commutations de processus
Le changement de contexte devient coteux (perte de temps
CPU)
Quantum trop grand : augmentation du temps de rponse dune
commande (mme simple)
RR dgnre vers FCFS
: varie dun systme (resp. dune charge) 94un
IsetSiliana Rglage
CHaabanicorrect
Nizar

Le systme de gestion possde n FA diffrents niveaux de priorits (+ diffrents quanta)

Algorithme Tourniquet avec priorits


-

FA n-1 (Q n1)

FA1

Rquisition

(Q1)

Q 0 Q 1 Q 2 ... Q
n-1

Arrive

FA 0

(Q 0)

CPU

Terminaison

+
Priorit

Scheduler

Dispatcher

A son arrive, le processus est rang dans la FA la plus prioritaire FA 0


Si un processus dans FAi puise son quantum de temps Qi (0 i n-2), il sera
plac dans la FAi+1 (moins prioritaire)
Une FAi (0 < i n-1) ne peut tre servie que si toutes les FA j (0 j< i) sont
vides
un processus qui a travers toutes les FA sans puiser son temps de
Nizar
95
traitement resteIsetSiliana
dans la FA la CHaabani
moins prioritaire.

4. Politiques dordonnancement Algorithmes


avec premption (Round Robin, Priorit, SRTF)
SRTF
(3)
Algorithme SRTF (Shortest Remaining Time First) -- SJF avec

rquisition
Choisir le processus dont le temps d'excution restant est le plus court
Il y a rquisition selon le critre de temps d'excution restant et l'arrive
dun processus
Ncessit de sauvegarder le temps restant
Exemple :

Processus Dureestime Datedarrive


P1
P2
P3
P4

8
5
5
2

0
2
3
4

Diagramme de Gantt
P1 P2
0

P4
4

P2

P3
9

P1 P1
14

20

Temps de vie
Temps de traitement moyen = [(20 - 0) + (9 -2) + (14 -3) + (6-4)]/4
= 9,5
Thoriquement, + SRTF offre un minimum de temps dattente; - difficile de
IsetSilianaprdire le
CHaabani
96
futurNizar

Pour TAB 1 ,Donner et comparer le temps moyen


d'excution produit par les algorithmes
d'ordonnancement

a. FIFO (FCFS, PAPS)


b. PCTE (SJF),
c. tourniquet avec un quantum de 5
d. Algorithme SRTF (Shortest Remaining Time First )
Pour TAB 2,Donner le diagramme de Gantt et le
temps moyen dexcution pour un
ordonnancement de type tourniquet avec

priorits

IsetSiliana

CHaabani Nizar

97

5. Hirarchie dOrdonnancement (1)


Lensemble des processus prts est-il souvent en mmoire centrale?
Un processus lu, qui est sur disque, prend beaucoup plus de temps quun

processus en RAM pour tre charg.


Les algorithmes dordonnancement complexes permettent de distinguer
entre 2 types diffrents:
Ordonnancement court terme (short term scheduling) :
considre seulement les processus prts en mmoire centrale.
Ordonnancement long terme (long term scheduling) : consiste
utiliser un deuxime algorithme dordonnancement pour grer les
swapping des processus prts entre le disque et la RAM

IsetSiliana

Swap out Processus


Arrive

File dattente des Prts


UC
E/S

CHaabani Nizar

Sortie

Files dattente des E/S


98

5. Hirarchie dOrdonnancement
(2)
Ordonnancement multi-niveaux permet de satisfaire :
Favoriser les processus courts
Favoriser les processus , qui ne demandent pas trop lUC
Dterminer la nature de chaque processus le plutt possible et

effectuer lordonnancement correspondant


Files dattente sans liens : un processus se trouvant dans dans FAi
ne peut se trouver dans FAj (j i); il reste dans FAi jusqu ce quil se
termineI/O Bound

IsetSiliana

(RR)

(FCFS/SJF)
+
Priorit fixe
CHaabani Nizar

FA n-1
Rquisition
FA1
Processus Interactifs
CPU

FA 0

Terminaison

Processus Systme
99

5. Hirarchie dOrdonnancement (3)


Files dattente avec liens : hirarchiser les FAs

Arrive niveau n-1

FA n-1

(RR)
Rquisition
Arrive niveau 1
(FCFS)
Arrive niveau 0
(FCFS)

FA1

FA 0

CPU

Terminaison

Un processus dans FAi ne peut tre slectionn que si toutes


les FAj (j<i) sont toutes vides
Permettre aux processus de se dplacer dune FA une autre
Hirarchie descendante/ascendante/bidirectionnelle
Changement dynamique dans le comportement des processus
Chaque FA a son propre algorithme dordonnancement
Descendante FAn-1 est gre avec FCFS
Ascendante F0 est gre avec FCFS

IsetSiliana

CHaabani Nizar

100

IsetSiliana

CHaabani Nizar

101

Plan du chapitre
1. Introduction
2. Fonctions attendues
3. Va-et-vient (swapping)
4. Mmoire Virtuelle
5. Algo. de Replacements de Pages

http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
IsetSiliana

CHaabani Nizar

102

1. Introduction
La mmoire centrale est une ressource requise par

tout processus
Un programme doit tre charg dans la mmoire
centrale pour tre excut
Demarrer_processus(p) Allouer(taille(p))
Terminer_processus(p) Liberer(zone_alloue_ (p))
Problmatique
Grer les processus associs des programmes trop

volumineux
Grer le partage de la mmoire physique entre diffrents
processus
IsetSiliana

CHaabani Nizar

103

Monoprogrammation:
Mmoire rserve au SE
Mmoire rserve au seul processus en excution.

Multiprogrammation:
La Multiprogrammation amliore le taux

2. Fonctions
dutilisation duattendues
CPU mais requiert un bon
partitionnement de la mmoire.
A linitialisation du systme, la mmoire est

divise en n partitions de taille fixe.


De prfrence, des partitions ingales en taille.
Comment allouer les processus aux partitions?

une file dattente par partition (a)

une file dattente pour toutes les partitions (b)


IsetSiliana

CHaabani Nizar

104

Multiprogrammation avec des


partitions de taille fixe

File vide

File pleine

IsetSiliana

CHaabani Nizar

105

Principe de partage de la ressource mmoire


Fournir une mmoire logique chaque
processus (2K)
Grer les translations entre les mmoires
logiques et la mmoire physique (liaisons
d'adresses)

2. Fonctions attendues

IsetSiliana

CHaabani Nizar

106

2. Fonctions
attendues
Mmoire physique: mmoire principale RAM de la machine

Adresses physiques: les adresses de cette mmoire


Mmoire logique: lespace d`adressage dun programme

Mmoire physique :
Suite contigu de mots (8, 16, 32, 64 bits selon processeur)
Adressage direct alatoire
Tailles courantes : 256 Mega 2 4 Giga
Mmoire logique :
Espace logiquement contigu
Adressage direct alatoire de mots
Taille maximum = 2K 1 (k = la capacit dadressage)

IsetSiliana

CHaabani Nizar

107

2. Fonctions attendues
Mise en uvre des mmoires logiques au

dessus de la mmoire physique


Swapping (partage de la mmoire dans le temps)
Dcoupage (partitionnement)
Multiplexage

Il est difficile de donner chaque programme son


propre espace dadressage solution Rallocation
dynamique

Rallocation dynamique: mapper lespace


dadressage de chaque processus sur une partie
diffrente de la mmoire physique.
IsetSiliana

CHaabani Nizar

108

Ex. dapplication

Un ordinateur dispose de 32Mo de mmoire.


LOS occupe 16Mo
Un processus utilisateur ncessite 4Mo
Dterminer le niveau de multiprogrammation

max?
Dterminer le taux dutilisation de CPU, si les

processus sont indpendants et quun processus


passe 80% de son temps en attente dE/Ss ?
De combien amliore-t-on ce taux si on ajoute

16Mo de mmoire?
IsetSiliana

CHaabani Nizar

109

3. Le va-et-vient
(swapping)

Cest lutilisation de la mmoire secondaire: la swap


file

Stratgie pour pallier les pnuries en mmoire.

Elle considre chaque processus dans son intgralit:

Le processus est dans son intgralit en mmoire

ou est supprim intgralement de la mmoire

IsetSiliana

CHaabani Nizar

110

IsetSiliana

CHaabani Nizar

111

Le va-etvient
i.

(swappin
g)

(a) A est en
mmoire

ii.

(b,c) B et C sont
cres
ou chargs
le
iii. depuis
(d) A est
disque
transfrer sur
le disque
iv. (e,f) D arrive,
tandis
que B sen va
v.

(g) A
revient

IsetSiliana

CHaabani Nizar

112

Les diffrentes techniques de


partitionnement de la mmoire
centrale

Fonction attendue :

Allouer-zone (t : taille) adresse


Librer-zone (a : adresse, t : taille)

Objectifs :
Optimiser lutilisation de la mmoire (limiter la

fragmentation)
Optimiser les algorithmes dallocation / libration

Techniques :
Zones contigus de taille fixes
Zones contigus de taille variables
Zones non contigus de taille fixe (systmes pagins)
Zones non contigus de taille variable (systmes

segments)
IsetSiliana

CHaabani Nizar

113

Registre de relogement contient la valeur de ladresse


physique la plus petite; le registre de limite contient
ltendue des adresses logiques possibles
chaque adresse logique doit tre plus petite que la valeur
du registre limite
IsetSiliana

CHaabani Nizar

114

Allocation Contigue
Allocation plusieurs partitions
(Cont.)
Trous bloc de mmoire disponible; trous de taille

variable disperss dans la mmoire physique


Quand un processus arrive, on lui alloue de la
mmoire dans un trou assez large pour accomoder
ses besoins
OS retient de linformation sur:
a) blocs allous b) blocs libres (trous)
OS

OS

OS

OS

process 5

process 5

process 5

process 5

process 9

process 9
process
10

process 8
process 2

process 2

IsetSiliana

process 2

CHaabani Nizar

process 2

115

MMU: unit de gestion de mmoire


unit de traduction adresses

(memory management unit)


Module 7

116

Fragmentation: mmoire
non utilise
Un problme majeur dans l`affectation

contigu:
Il y a assez despace pour excuter un

programme, mais il est fragment de faon


non contigu
La fragmentation peut tre:
externe:

l`espace inutilis est entre partitions


interne: lespace inutilis est dans les partitions

IsetSiliana

CHaabani Nizar

117

Partitions fixes

Mmoire principale
subdivise en rgions
distinctes: partitions
Les partitions sont soit
de mme taille ou de
tailles ingales
Nimporte quel progr.
peut tre affect une
partition qui soit
suffisamment grande

(Stallings)
IsetSiliana

CHaabani Nizar

118

Algorithme de placement pour (Stallings)


partitions fixes

Partitions de tailles ingales: utilisation


de plusieurs files

assigner chaque processus


la partition de la plus
petite taille pouvant le
contenir
1 file par taille de partition
tente de minimiser la
fragmentation interne

8M

12M

Problme: certaines files


seront vides sil ny a pas de
processus de cette taille (fr.
externe)
IsetSiliana

CHaabani Nizar

119

Algorithme de placement pour partitions


fixes

Partitions de tailles ingales:


utilisation dune seule file

On choisit la plus petite


partition libre pouvant
contenir le prochain
processus
le niveau de
multiprogrammation
augmente au profit de la
fragmentation interne

8M

On pourrait allouer trop


de mmoire un
programme

12M

(Stallings)
IsetSiliana

CHaabani Nizar

120

Partitions dynamiques: exemple


(Stallings)

(d) Il y a un trou de 64K aprs avoir charg 3 processus


Le prochain processus pourrait demander plus
Si tous les proc sont bloqus (p.ex. attente dun vnement), P2 peut
tre suspendu ou permut et P4=128K peut tre charg.
Swapped out
IsetSiliana

CHaabani Nizar

121

Partitions dynamiques: exemple (Stallings)

(e-f) Progr. 4 est charg. Un trou de 224 128 = 96K est cr


(fragmentation externe)
(g-h) P1 se termine ou il est suspendu, P2 est repris sa place:
produisant un autre trou de 320-224=96K...
Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de
fragmentation externe COMPACTAGE pour en faire un seul trou de
256K
IsetSiliana

CHaabani Nizar

122

la mmoire centrale comporte 3 zones libres mais aucune d'elles n'est


assez grande pour contenir un programme 8 de 180K.
Pourtant l'ensemble des 3 zones libres forme un espace de 120 + 20 +
150 = 350K suffisant pour le programme 8.
Pour permettre l'allocation du programme 8, il faut donc runir
l'ensemble des zones libres

IsetSiliana

compactage

CHaabani Nizar

123

Compactage
Une solution pour la fragmentation externe
Dfinition: Le compactage (ou
dfragmentation) est une opration ralise
par le systme d'exploitation consistant
dplacer toutes les pages vers des
emplacements contiges pour avoir un grand
espace libre et minimiser ainsi le nombre de
trous mmoires.

dsavantages
temps de transfert programmes
besoin de rtablir tous les liens entre adresses de

diffrents programmes
IsetSiliana

CHaabani Nizar

124

Problme de lAllocation
Comment satisfaire une requte de taille n partir dune
Dynamique
liste de blocs
First-fit: Allouer le premier bloc assez grand
Best-fit: Allouer le plus petit bloc assez grand;

doit parcourir la liste entire de blocs, sauf si


ordonne par taille. Produit des restes de blocs
les plus petits.
Worst-fit: Allouer le plus grand bloc; doit
aussi rechercher dans toute la liste, sauf si
ordonne. Produit des restes de blocs les plus
larges.

First-fit et best-fit sont meilleurs que worst-fit en termes de


rapidit et utilisation de la mmoire
IsetSiliana

CHaabani Nizar

125

Exercice
On considre le schma d'allocation de la

mmoire reprsent par la Figure 1 et les


processus A, B, C et D (c. Ces processus sont
ordonns suivant l'ordonnancement Round
Robin avec Quantum gal 2. Il est demand
de reprsenter le schma d'allocation mmoire
en traitant les deux cas suivants: L'allocation
first Fit; L'allocation Best Fit; L'allocation
Worst Fit.

IsetSiliana

CHaabani Nizar

126

Systmes d'Exploitation
Chapitre 2.

Partie II.

La Gestion de la Mmoire Centrale

La Mmoire Virtuelle
Contenu du cours

Prsentation
La pagination -- transformation des adresses
Les algorithmes de Remplacement
FIFO/LRU/OPTIMAL/NRU

IsetSiliana

CHaabani Nizar

127

1. Prsentation
Objectif : fournir un espace dadressage indpendant de

celui de la mmoire physique :


Les processus nutilise pas tous les mmoire allou et il ya des

programmes qui ncessite un grand partition pour excut.


La mmoire virtuelle permet d'excuter des programmes dont la
taille excde celle de la mmoire physique

Lespace dadressage > lespace physique


Ralisation de la mmoire virtuelle (MV)
Reprsentation physique : MC + MS (disque)
Gestion base sur les techniques de pagination

Pagination -- Principe :
lespace dadressage virtuel est divis en petites units -- PAGES
lespace dadressage physique est aussi divis en petites units --

CASES (frames)
Les pages et les cases sont de mme tailles
IsetSiliana

CHaabani Nizar

128 128

Pagination

Espace dadressage virtuel est divis en pages.

Les units correspondantes dans la mmoire


physique sont appeles cadres de pages (page
frame).
IsetSiliana

CHaabani Nizar

129

2. Pagination -- Principe
l'espace d'adressage du programme est dcoup en morceaux linaires de

mme de taille : la page.


L'espace de la mmoire physique est lui-mme dcoup en morceaux linaires
de mme taille : la case.
charger un programme en mmoire centrale consiste placer les pages dans
n'importe quelle case disponible taille case = taille page
Page

Disque (MV)

7
6
5
4
3
2
1
0

Ne charger que les


pages utiles un
instant donn
IsetSiliana

Case

X
0

3
2
1
0

X
2
1
X
X
Espace
dadressage
Virtuel

Processus
en MC

charger un programme en
mmoire centrale consiste
placer les pages dans n'importe
quelle case disponible.
CHaabani Nizar
130 130

IsetSiliana

CHaabani Nizar

131

IsetSiliana

CHaabani Nizar

132

IsetSiliana

CHaabani Nizar

133

Pagination
Processeur 16 bits

Table de Pages

216 adresses
virtuelles et 64Ko

Mmoire physique
de 32Ko

Page de 4Ko
Nbr pages
virtuelles = 64/4 =
16

Nbr cadres de
pages = 32/48192
= -8 12287
4096 - 8191
0

- 4095
IsetSiliana

CHaabani Nizar

134

2.1. Transformation des adresses virtuelles


(1)
Les adresses manipules par le programmes sont des
adresses virtuelles
Lorsquune adresse est gnre, elle est transcode,
grce une table, pour lui faire correspondre son
UC

quivalent
en mmoire physique
Npage dplacement

Ncase dplacement

N case

Table des pages

Mmoire physique

L'adresse d'un octet est donc form par le couple <nde page laquelle
appartient l'octet, dplacement relativement au dbut de cette page >.
IsetSiliana

CHaabani Nizar

135

Transformation des adresses virtuelles (2)


Ce transcodage est effectu par des circuits matriels de
gestion : unit de gestion de mmoire -- MMU (Memory
Management Unit)
Carte CPU
@ Virtuelle

CPU

MMU

B. Donnes (lecture/criture)

@ Physique
Mmoire Centrale

Si ladresse gnre correspond une adresse mmoire physique, le


MMU transmet sur le bus ladresse relle, sinon il se produit un
DEFAUT DE PAGE
Chaque table des pages contient les champs ncessaires au
transcodage, avec notamment :
1 bit de prsence (P 1/0) pour marquer la prsence de la page en
IsetSiliana
CHaabani Nizar
136 136
mmoire physique

Mmoire Virtuelle
P
1
P0

IsetSiliana

CHaabani Nizar

137

Mmoire Virtuelle

Dans cet exemple, les pages ont une taille de 4Ko.


Ladresse virtuelle 12292= (1024*12)+4 . elle
correspond un dplacement de 4octets dans la
page virtuelle 3,
correspondant son tour la page physique 2.
Donc ladresse physique correspond un
dplacement de 4 octets dans la page physique 2
soit: (8*1024)+4=8196.
La page virtuelle 2 nest pas mappe. Donc toute
adresse virtuelle comprise entre 8192 et 12287,
donnera lieu un dfaut de page.
Laccs une adresse virtuelle correspondant une
page non mappe donne lieu un dfaut de page.
IsetSiliana

CHaabani Nizar

138

8192 =
1024*8

12287
=

122
92=
(102
4*12
)
+4

1024*12

(8*10
24)+
4
=

819
6

IsetSiliana

CHaabani Nizar

139

IsetSiliana

CHaabani Nizar

140

Bit de Prsence et Dfaut de Page

la page est sur disque

SE

N
N case

Droutement
(Dfaut de page)

0
Table des pages

Processus

Case libre
Restaurer la table des pages

Rfrence
Redmarrer linstruction

IsetSiliana

Ramener
en MC la
page
absente

Mmoire Centrale

CHaabani Nizar

141 141

Exemple et Reprsentation dune Table des


Pages
Codage des @ virtuelle ou relle
on rserve les bits de poids ncessaires pour

coder les

numros des pages ou des cases


les bits de poids faibles codent le dplacement

Par exemple, dans un systme ayant une

mmoire de 32 Mo et des pages de 512 octets,


chaque tableau des pages devrait contenir: 32
Mo/ 512 = 64 K pages
Taille(page) = 4Ko; Taille(MC) = 4 cases; Taille(processus) = 16

pages

Combien de bits a-t-on besoin pour reprsenter les @


virtuelles et les @ relles?

Chaque processus a sa propre table des pages

IsetSiliana

CHaabani Nizar

142 142

Le calcul de l'adresse relle partir de l'adresse virtuelle se ralise ainsi :


le numro de page virtuelle donne l'entre de la TPV dans laquelle se
trouve le numro de page physique ;
le dplacement est le mme (les pages physiques et virtuelles ont la
mme taille) ;
si la page virtuelle n'est pas prsente en m.physique, produit un dfaut de
page.

IsetSiliana

CHaabani Nizar

143

Pour acclrer le processus, on utilise


desmmoires associativesqui recensent les
dernires pages utilises :

IsetSiliana

CHaabani Nizar

144

3. Algorithmes de Remplacement de
Pages
A la suite dun dfaut de page, le SE doit retirer une page de la MC pour

librer de la place manquante


Problme : quelle page choisir dcharger afin de rcuprer lespace
et minimiser le nombre de dfauts de pages?
Dfinition: si un processus cherche accder une page non prsente en
mmoire centrale, il se produit ce quon appelle un dfaut de page .
Lors d'un dfaut de page, la page manquante est charge dans une case
libre
-----> La totalit des cases de la mmoire centrale peuvent tre occupes
-----> Il faut librer une case
Plusieurs algorithmes de remplacements :
Alatoire
Premire entre, premire sortie FIFO
Remplacement de la page la moins rcemment utilise -- LRU (Least

Recently Used)
Optimal
Remplacement dune page non rcemment utilise -- NRU (Not Recently
Used)
IsetSiliana

CHaabani Nizar

145 145

Algorithmes de Remplacement (2)


Algorithme alatoire -- Random:
La victime est choisie au hasard

FIFO :
Lors dun dfaut de page, la page la plus anciennement charge est la page

retire pour tre remplace


Facile implanter
Remplacement dune page trs rfrence trop de dfaut de pages
Exemple 1 : Supposons avoir 3 cases et 4 pages avec la chane de rfrence
suivante :
ABCABDADBCB

cases\ref.

2
3

D
B

C
A

B
4 dfauts de
pages

IsetSiliana

CHaabani Nizar

146 146

FIFO : la page la plus anciennement charge est la


page remplace

3 frames, 15 page faults


IsetSiliana

CHaabani Nizar

147

Algorithmes de Remplacement (3)


Algorithme Optimal :
Principe :

choisir comme victime la page qui sera rfrence le plus tard possible
Ncessite la connaissance, pour chacune des pages, le nombre
dinstructions qui seront excutes avant que la page soit rfrence
Algorithme irralisable dans un contexte offline
Connaissance des rfrences qui seront faites
Intrt : permet de comparer les performances des autres algorithmes
Exemple : reprendre exemple 1 en appliquant optimal

cases\ref.

2
3

C
C

B
C

IsetSiliana

B
2 dfauts de
pages

CHaabani Nizar

148 148

Algorithmes de Remplacement (4)


Algorithme LRU (Least Recently Used) :
Principe : remplacer la page la moins rcemment utilise (accde)

Remplacer la page qui est reste inutilise le plus de temps


Une bonne approximation de lalgorithme optimal
Thoriquement ralisable mais trs coteux
Ncessite des dispositifs matriels particuliers (compteur pour
chaque rfrence)
Exemple 2 : nonc exemple 1 + la chane de rfrence A B C D A
BCDABC D

cases\ rf.
1
2
3

D
B

IsetSiliana

C
A

D
LRU :
9 dfauts de
pages
Optimal : ?

B
D

C
A

CHaabani Nizar

D
149 149

IsetSiliana

CHaabani Nizar

150

IsetSiliana

CHaabani Nizar

151

12 DEFAUT PAGE

IsetSiliana

CHaabani Nizar

152

Algorithmes de Remplacement (5)


Algorithme NRU (Not Recently Used) :
Ide : marquer les pages rfrences
Principe :
A chaque page sont associes deux bits R et M :

R=1 chaque fois que la page est rfrence


(lecture/criture), R=0 sinon
M=1 lorsque la page a t modifie dans la mmoire
centrale

Au lancement dun processus, le SE met zro R et M de toutes les


pages
Priodiquement, le bit R est remis 0 pour diffrencier les pages qui
nont pas t rcemment rfrences des autres
Lors dun dfaut de page, le SE retire une page au hasard dont la
valeur RM est la plus petite :

RM
RM
RM
RM

=
=
=
=

00
01
10
11

:
:
:
:

non rfrence, non modifie


non rfrence, modifie
rfrence, non modifie
rfrence, modifie

Algorithme bas sur une solution matrielle


IsetSiliana

CHaabani Nizar

153 153

Algorithmes de Remplacement -Conclusion


Critre de performance:

Optimal

LRU

NRU

FIFO/Alatoire
-

La taille de la MC influe beaucoup sur les performances que lalgorithme :


Nessayer pas de raffiner un algorithme, mais plutt augmenter, si

ncessaire, la taille de la mmoire, et ce afin de minimiser le


remplacement.
Question : est-ce que le rajout de mmoire rduit toujours le nombre de
dfauts de pages?
Oui pour seulement optimal et LRU
Non pour FIFO!!
Exemple 3 : on dispose de 3 cases mmoires. Appliquer FIFO la chane
de rfrences suivante :
ABCDABEABCDE
Rajouter 1 case et reprendre lalgorithme de remplacement FIFO.
Conclure

IsetSiliana

CHaabani Nizar

154 154

4. La Mmoire Virtuelle
Principe

Taille programme + donnes + pile peut tre > Taille


mmoire disponible Le SE conserve les parties en
cours dutilisation en mmoire et le reste sur disque.

Quand un programme attend le chargement dune


partie de lui-mme il est en attente dE/S

Pagination

Les adresses gnres par un programme


sappellent des adresses virtuelles, et forment
lespace dadressage virtuel.

La MMU (Memory Management Unit, unit de


gestion mmoire) fait la correspondance entre les
adresses virtuelles et les adresses physiques.
IsetSiliana

CHaabani Nizar

155

Tables de pages
multiniveaux
Processeur 32bits, page de 4Ko nombre de
pages = 232/ 212 = 220 pages: une table de
pages de plus que un million dentres!

Sans oublier que chaque processus a son


propre espace dadressage et donc sa propre
table de pages!

Tables de pages multiniveaux: On ne garde pas en


mmoire toutes les tables de pages

Tables de pages inverses


Mmoire Associative ou TLB (Translation
Lookaside Buffer): une petite table des pages les
plus rfrences
IsetSiliana

CHaabani Nizar

156

Tables de pages
multiniveaux

Second-level page tables

Exple: une adresse virtuelle sur 32


bits est partitionne en 3 champs

A quoi correspond ladresse


virtuelle sur 32 bits 0x00403004 ?
IsetSiliana

CHaabani Nizar

157

Tables de pages
inverses
Cas dun processeur 64 bits, 256Ko
de mmoire et page de 4Ko

IsetSiliana

CHaabani Nizar

158

Structure dune
entre de la Table des
pages
Prsent/ Absent: 1 bit, indique si la page est en mmoire ou non.
Protection: 1 bit (0: RW, 1: R) ou 3 bits (RWX).

Modifi: 1 bit, une page modifie doit tre crite sur le disque.
Rfrenc: 1 bit, chaque fois que la page est rfrence (lue ou crite) il
est mis 1.
Cache inhib: 1 bit, permet dinhiber le cache pour une page.

IsetSiliana

CHaabani Nizar

159

Algo
de
remplacement
de
Dfaut de page
pages

Chercher une page vincer, pour faire de la place pour


la page charger en mmoire.

Si le bit M de la page vincer = 1, la page doit tre


sauve sur disque.

Algo. optimal

Question de performances, afin dviter le rechargement


de pages, la page vincer doit tre peu utilise.

tiqueter chaque page avec le nombre dinstructions qui


seront excutes avant que cette page ne soit rfrence
Evincer la page dont ltiquette est la + grande (on
repousse ainsi le dfaut de page aussi tard que possible)

Cet algo est irralisable, le SE ne sait pas si la page serait


rfrence ou pas ultrieurement. Par contre, pour une
2me excution, il est possible dimplanter cet algo.

IsetSiliana

CHaabani Nizar

160

Algo NRU (Not

Principe
Recently
Used)

R 1, chaque fois que la page est lue ou crite.

M 1, chaque fois que la page est modifie.

A chaque interruption, R 0, afin de distinguer les


pages rcemment rfrences.

Classes de pages

Classe 0: non rfrence, non modifie

Classe 1: non rfrence, modifie

Classe 2: rfrence, non modifie

Classe 3: rfrence, modifie

La classe 1 est obtenue par consq de leffacement


du bit R de la classe 3.

Lalgo NRU vire une page au hasard dans la +


basse classe
IsetSiliana

CHaabani Nizar

161

Algo FIFO (1st In, 1st


out)
Algo. FIFO

Le SE conserve une liste de pages couramment en


mmoire. En cas de dfaut de page, la + ancienne
tant en tte de liste est vince.

(-) cet algo peut virer des pages importantes. En effet, la


page la + ancienne peut tre la page la + utilise.

Algo. seconde chance

Cest lalgo FIFO modifi, tel que le bit R de la page la


+ ancienne est inspect,

Si R = 1 de la page en tte de liste, la page est


rfrence, et est place la fin de la liste avec R
0 et un instant de chargement actualis

Si R = 0, page virer (ancienne et non rfrence).

(-) cet algo dplace constamment des pages de la liste.


IsetSiliana

CHaabani Nizar

162

Algo de lhorloge
Page
charge
rcemment

Page
charge en
premier
En cas de dfaut
de page et A tel
que R = 1

Algo de lhorloge

Cest lalgo de seconde chance avec une liste circulaire


(horloge) et un pointeur sur la page la + ancienne.

Quand un dfaut de page survient, la page pointe est


examine:

Si R = 0, la page est vince


Sinon, R 0, le pointeur avance vers la page suivante,
Le processus se rpte jusqu trouver une page avec R
=0
IsetSiliana

CHaabani Nizar

163

Algo LRU (Least


Recently
Used)
Principe
Cet algo est fond sur lobservation les pages les +
rfrences lors des dernires instructions seront
probablement utilises.
Un dfaut de page vince la page qui na pas t
utilise pendant le plus de temps.

Implantations

Compteur de 64 bits / cadre de page

Un dfaut de page examen de tous les compteurs


de la table des pages la recherche du plus petit
compteur

Matrice (n n), n cadres

Cellules initialises 0
Quand une page k est rfrence, tous les bits de la
range k 1, tous les bits de la colonne k 0
Un dfaut de page vince la page dont la range est la
+ petite
IsetSiliana

CHaabani Nizar

164

Algo LRU

pages rfrences dans lordre 0,1,2,3,2,1,0,3,2,3


IsetSiliana

CHaabani Nizar

165

Algo de vieillissement
Principe
Cet algo ncessite un compteur/ page (init: 0)
A chaque interruption, le SE examine toutes
les pages en mmoire, et pour chaque page
son bit R est ajout son compteur, comme
suit:

Dabord, le compteur est dcal dun bit droite


Puis, le bit R est ajout au bit de poids le plus fort
(de gauche)

Une page qui na pas t rfrence depuis 4

tops dhorloge a 4 zros dans son compteur,


et aura une + petite valeur quune page qui
na pas t rfrence depuis 3 tops
dhorloge.
Dfaut de page: vincer la page dont le
compteur est le + petit
IsetSiliana

CHaabani Nizar

166

Algo de vieillissement

IsetSiliana

CHaabani Nizar

167

Algo de vieillissement
Diffrence
1:
vs
LRU
Slide 27 (e)>> les pages 3 (00100000) et 5

(00101000) nont pas t rfrences depuis 2


tops dhorloge
LRU: aucun moyen de distinguer les 2 pages
car on ne mmorise quun seul bit/ intervalle de
temps
Algo. Vieillissement: la page 3 est vire

Diffrence 2:
Le compteur de lalgo de vieillissement a un

nombre fini de bits (8 dans lexple), on ne peut


pas distinguer 2 pages ayant la mme val du
compteur.
Dans la pratique un compteur sur 8 bits est
suffisant pour des tops dhorloge qui se
produisent toutes les 20ms, une page non
rfrence depuis 160ms nest pas trs utilise
IsetSiliana

CHaabani Nizar

168

Algo ensemble de
travail
Pagination la demande
Les pages sont charges la demande et

non lavance beaucoup de dfauts de


page au dbut

Ensemble de Travail
Cest lensemble de pages exploites par le
processus lors des k rfrences en mmoire
les + rcentes
Il est intressant que le SE mmorise
lensemble de travail de chaque processus
et pr-charge en mmoire lensemble de
travail du processus
En cas de dfaut de page, vincer une page
qui lensemble de travail du processus
IsetSiliana

CHaabani Nizar

169

Algo ensemble de
travail

IsetSiliana

CHaabani Nizar

170

Algo WSClock

Working Set Clock (ensemble de travail + horloge)


Optimisation de lalgo bas sur lens. de travail, qui

ncessite le parcours de toute la table des pages


chaque dfaut de page.
Chaque entre contient: le Temps de la dernire
utilisation, le bit R et le bit M.
A chaque dfaut de page, la page pointe est
examine:

Si R = 1, cd la page a t utilise pendant le top courant, R


0, mj d temps et le pointeur avance dune page.
Si R = 0 et age > et M = 0, cd la page lens de travail
cadre de page librer
Si R = 0 et age > et M = 1, cd la page lens de travail
une criture sur disque de la page est ordonnance, le
pointeur avance dune page. Ainsi, mme si le pointeur
revient son point de dpart, lcriture serait termine.

IsetSiliana

CHaabani Nizar

171

IsetSiliana

CHaabani Nizar

172

3.2. Conversion dune Adresse Virtuelle


Procdure Conversion (Entre : advirt; Sortie : adphysique)
Dbut
index = advirt.page + adresse_table(processus)
Si (non index.P)
/* page absente */
Alors /* Dfaut de page*/
charger_page(advirt.page, adresse_case
index.P = 1
index.case = adresse_case
finsi
adphysique = adresse_case + advirt.deplacement
Fin
Procdure charger_page (E : page; S : case)
Dbut
Si (Non trouver_case_libre())
Alors
choisir_case__librer(case__librer, page_victime)
Si (page_victime.M) Alors ecrire_disque(page_victime) finsi
lire_disque(case_voila_liberer, page)
finsi
Fin
IsetSiliana

CHaabani Nizar

173 173

4. Autres Considrations (1)


Politique dallocation locale/globale :
Remplacement de la page la plus ancienne :

Globale -- la plus ancienne du systme


Locale -- la plus ancienne du processus
En gnral, lallocation globale produit de meilleurs rsultats
Redmarrage dune instruction aprs le dfaut de page
La taille dune page? Influe sur les tables de pages utilises par la
MMU
Mmoire de SWAP
o stocker les pages dloges de la MC?
sur un ou plusieurs disques locaux
partition de swap : + rapide, - de place pour le SGF
Fichier de swap : - rapide, + de place pour les autres fichiers
En gnral, le SE utilise les deux simultanment
Plusieurs disques = swap en parallle
sur un serveur (de disques) distant :
Net PC, TX, STB, ...

IsetSiliana

CHaabani Nizar

174 174

4. Autres Considrations (2)


Ecroulement -- thrashing

Si le nombre de processus est trs grand, lespace propre chacun


est insuffisant et ils passeront leur temps grer des dfauts de pages
Ecroulement du systme : une haute activit de pagination

un processus s'croule lorsquil passe plus de temps paginer


qu s'excuter
Limiter le risque d'croulement :

Allocation
plus de page

Dfaut
de pages

Limite suprieure

Limite infrieure
Retrait de page
Nombre de pages
Si un processus provoque trop de dfauts de pages :
au dessus dune limite suprieure : on lui allouera plus de pages
en dessous dune limite infrieure : on lui en retirera
Sil y a plus de pages disponibles et trop de dfauts de pages, on devra
suspendre un des processus
IsetSiliana

CHaabani Nizar

175 175

4. Autres Considrations (3)


Lespace de travail -- Working set (W)

W = les pages dun processus rfrences sur un court instant de temps

Une allocation optimale : allouer un processus actif autant de pages que

ncessite W
les dfauts de pages seront provoqu lors des changements despace de
travail
Ce modle nest utilis que pour la prpagination
Prpagination
Lors du lancement dun processus ou lors de sa reprise aprs suspension,
on provoque obligatoirement un certain nombre de dfauts de page

Essayer de les limiter -- enregistrer W avant suspension


Au lancement dun programme les 1eres pages de code seront
vraisemblablement excutes
Conclusions
Dcoupage en pages et cases de mme taille
Les pages dun processus ne sont charges en mmoire physique que
lorsque le processus y accde
les pages peuvent tre mises dans nimporte quelle case
Lorsquun processus accde une page non prsente en mmoire physique,
il se produit un DEFAUT DE PAGE :
la page manquante est alors charge dans une case libre
pas de case libre, le systme utilise un algorithme de remplacement de
page pour choisir une case librer
IsetSiliana

CHaabani Nizar

176 176

Chap. II

SYNCHRONISATION ET COMMUNICATION
ENTRE PROCESSUS --IPC

1.Exemple introductif
Int i;
P1 P2
i=0;
i=0;
while (i<10)
while (i>-10)
i++;
i--;
printf(P1 GAGNE! \n);
GAGNE !\n);

printf(P2

i variable partage risque de conflit daccs!


Les instructions i++ et i doivent sexcuter de

manire indivisible!
Lequel des processus P1 ou P2 gagne?
Vont-ils terminer? Si lun se termine, est-ce que
lautre termine aussi?
Est-ce que P1 peut commencer?

177
IsetSiliana

CHaabani Nizar

177

Prsentation du problme
Pas dinteraction:
Excution dans nimporte quel ordre
Excution parallle ou concurrente

Interactions entre processus:


Ncessit de synchroniser

Lordre dexcution est important


Cas particulier: Exclusion mutuelle srialisation des
excutions

Moyens de synchronisation:
Matriel: masquage dinterruption et TASTest-And-Set
Logiciel: verrous, smaphores, moniteurs, et passage

par messages
178
IsetSiliana

CHaabani Nizar

178

2. Dfinitions de synchronisation, Section critique


Synchronisation
Utilisation doprations atomiques afin de

garantir une bonne coopration entre processus.


Une opration qui consiste distribuer, dans le
temps, les accs une ressource partage entre
plusieurs processus.

Conditions de rapidit
un ordre quelconque de processus/instructions
peut produire des rsultats incorrects
La commutation dpend, dans le cas

de concurrence, de lordonnancement
de paralllisme, de la vitesse dexcution relative on
synchronise le processus le plus rapide sur le processus
le plus lent..
179
IsetSiliana

CHaabani Nizar

179

Section critique --SC

Une partie dun programme o se produit un conflit

daccs.
Comment viter ce conflit?

Besoin de contrler lentre une SC


Besoin de supporter lexclusion mutuelle dans la SC.

Une bonne solution au problme de SC doit

satisfaire:

1.
2.

3.

Exclusion mutuelle: accs exclusif: tout instant


un seul processus excute sa SC (ressource partage).
Avancement et absence de blocage: un
processus qui nest pas dans sa SC ne doit bloquer un
autre processus entrer en SC; c-d pas dattente sil
ny a pas de comptition
Attente borne (pas de famine): une fois la
demande dentre en SC est lance, le processus ne
doit pas attendre indfiniment. La demande est
assure de manire quitable, si possible.

Aucune hypothse ne doit tre faite sur les vitesses


relatives des processus

180
IsetSiliana

CHaabani Nizar

180

Structure Typique dun


Processus
Soient N processus excutant le programme suivant:
Do

// Entrer en SC

] Prologue

SC
// Sortir de la SC
SNC
While (1);

] Epilogue

181
IsetSiliana

CHaabani Nizar

181

3. Solutions Possibles
Hypothses:
Vitesses relatives des processus quelconque et inconnu
tout processus quitte sa SC au bout dun temps fini

Aperu

Opratio
ns
atomique Verrous
s de haut Moniteurs
niveau
(API)
Opratio
ns

Smaphores
Send/Receive

182
IsetSiliana

CHaabani Nizar

182

3.1. Solutions Matrielles


Permettre lutilisateur dinterdire momentanment

les interruptions (difficile et dangereuse!)


Augmenter lensemble des actions atomiques
Masquage dinterruptions
Problme: les processus users ne peuvent pas
garantir le test et la modification dune variable
Solution: Interdire la commutation de processus
pendant quun processus est en SC ou encore
masquer les Its (le systme peut le faire en mode
SVC par un appel spcifique).
Masquer It
SC
Demasquer It
183
IsetSiliana

CHaabani Nizar

183

Solutions Matrielles
--TAS

TAS (Test-And-Set): Instruction spciale cable dont le rle est

de rendre atomique le test and set du contenu dun mot.


Int TAS (int *val)
{ int temp;
temp= *val;
//implante de manire atomique
*val = 1;
return temp;
}
Une solution au problme de SC pour n processus:
Int verrou = 0;
void MutexDebut()
Processus Pi
{
Do
while (TAS(&verrou))
MutexDebut();
;
SC }
MutexFin(); void MutexFin()
SNC { verrou = 0; }
while (1);
Preuve?

184
IsetSiliana

CHaabani Nizar

184

3.2. Solutions Logicielles Attente Active sur un


Verrou

Soient deux processus P0 et P1


Algorithme1: A qui le tour!
Public //Variables partages
int tour=0; //tour =i si Pi veut entrer en SC
Processus Pi
Do
while (tour != i)
;
// on fait rien
SC
tour = (i+1)%2;
SNC
While (1);
Dmontrer que cest une fausse solution?
Exclusion mutuelles satisfaite
Avancement non vrifi: si P0 est plus lent que
P1 alors P0 bloque P1; bien quil nest pas dans
sa SC
Ncessit dune alternance stricte (jeton)

185
IsetSiliana

CHaabani Nizar

185

Algorithme2
Algorithme2: deux drapeaux

Public //Variables partages


int flag[2]=[0]; //flag[i]=0 si Pi est prt pour entrer en SC
Processus Pi
Do
flag[i] = 1;
while (flag[i])
;
// on fait rien
SC
flag[i] = 0;
SNC
While (1);
Dmontrer que cest une fausse solution?
Exclusion mutuelles satisfaite
Avancement non vrifi: si les processus arrivent en
mme temps, c-a-d flag[0] = flag[1] =1!
Une vraie solution consiste del combiner les deux

dernieres!
186
IsetSiliana

CHaabani Nizar

186

Solution de Peterson
Algorithme3 //pour deux processus

Public //Variables partages


int
flag[2]=[0]; //flag[i]=0 si Pi est prt pour entrer
en SC
int tour = 0;
Processus Pi
Do
flag[i] = 1;
tour = j;
// j = (i+1)%2;
while (flag[i] && tour == j)
;
// on fait rien
SC
flag[i] = 0;
SNC
While (1);
Preuve de correction?
Cet algorithme satisfait les 3 conditions de SC,

dmontrer?
Gnralisation n processus: voire algorithme de
Bakery

187
IsetSiliana

CHaabani Nizar

187

3.3. Attente active


--Conclusion
Solutions qui fournissent des attentes actives
Inefficace: il faut que le processus en attente

libre le processeur explicitement (exemple la


fonction sleep sous Unix).
Les processus de priorit lev peuvent tre

prives (inversion de priorit)

Solutions de blocage
Smaphores
Moniteurs
Send/Receive
188
IsetSiliana

CHaabani Nizar

188

4. Les SEMAPHORES
Motivation : synchronisation des processus concurrents
Une approche par attente active nest pas intressante, puisque

le processeur est immobilis simplement pour attendre

Gaspillage de la puissance CPU disponible


Une approche alternative = utilisation de smaphores

Principe et dfinition des smaphores


Mcanisme de synchronisation simple et ancien entre des

processus concurrents
Le principe est directement hrit des chemins de fer -- Signal
muni dun bras indiquant si la voie ferre est libre ou occupe

Smaphore lev : le processus P peut continuer son


chemin
Smaphore baiss : il doit attendre jusqu' ce quun autre
processus Q le lve
Eviter des collisions en assurant l'accs exclusif un
croisement ferr

Invents par le mathmaticien Allemand Dijkstra (1965)

4.1. Syntaxe et Smantique


Un smaphore S est une variable spciale contenant un nombre

entier (IN) et manipul uniquement par 3 oprations atomiques :


initialisation, P et V
189
IsetSiliana

CHaabani Nizar

189

4.1. Syntaxe et Smantique dun Smaphore


P --passer : P(S)/Wait(S)/Down(S)

Dcrmenter la variable S ( moins quelle ne soit dj 0)


Utilise (lorsque dj 0) pour bloquer (suspendre) le

processus appelant jusqu' ce quun vnement survienne.


V --relcher : V(S)/Signal(S)/Up(S)
Incrmenter le smaphore de 1
Utilise pour signaler un vnement, et si possible,
ractiver un processus en attente.
Initialisation de S : interprte comme un nombre
dautorisations (disponibles quand lentier est positif,
attendues quand le le nombre est ngatif).
Dclaration de smaphores -- Notation dAndrews
Sem S1, S2; Sem ingred[3]=([3] 1); S1 = 0; S2 = 1;
Apres initialisation, les seules oprations permises sont P et
V
P(S) : < attendre(S>0); S--; >
V(S) : < S++; >
Smaphores gnral vs. smaphore binaire :
Smaphore gnral : peut prendre nimporte quelle valeur
non-ngative
Smaphore binaire : la valeur peut tre uniquement 0 ou 1
190
IsetSiliana

CHaabani Nizar

190

4.1. Syntaxe et Smantique dun Smaphore (suite)


Smaphore associ une file dattente --

Smaphore de blocage
A chaque smaphore est associe une file dattente
pour les processus bloqus
Cration dun smaphore gnral
typedef struct semaphore {
int valeur;
bcp *tete; }
void P(semaphore *S)
{ if ( --S->valeur < 0) {
insrer ce processus dans la FA associe
Bloquer }
}
void V(semaphore *S)
{ if ( ++S->valeur <= 0) {
supprimer le processus courant de la FA
associe ce smaphore
Rveiller }
}
Lutilisation correcte des smaphores ne doit pas
dpendre dune gestion particulire de la file dattente
191
IsetSiliana

CHaabani Nizar

191

4.2. Utilisation des Smaphores


Les smaphores peuvent tre utiliss tant pour la ralisation des sections

critiques que pour diverses formes de synchronisation conditionnelle

Comptition entre 2 processus Coopration -- smaphore priv


Variables partages
Variables partages
Semaphore Mutex=1;
Semaphore Sync = 0;
Processus Pi
Processus P0 Processus P1
Repeat
.......
.......
P(Mutex);
P(Sync);
V(Sync);
SECTION CRITIQUE
.......
.......
V(Mutex);
until flase;
Il existe une relation de prcdence P1 < P0
Consquence :
Un smaphore est toujours initialis une valeur non-ngative mais

peut devenir ngative aprs un certain nombre d'oprations P(S) -nombre des processus en attente.

192
IsetSiliana

CHaabani Nizar

192

4.3. Problmes de dysfonctionnement des smaphores


Remarques :

La plupart des mises en uvre des smaphores assurent que les

processus en attente sont ractivs dans lordre dans lequel ils ont t
suspendus sur le smaphore.

Equit dans lordonnancement des processus


Les smaphores sont les principales primitives de synchronisation
dans Unix
Un smaphore est un mcanisme qui permet le blocage et le rveil
explicite.
Servir traiter tous les paradigmes de la programmation
concurrente
Aucune garantie quune synchronisation est exempte de problmes!! :
Interblocage (Deadlock) -- attente circulaire
Un processus est bloqu indfiniment sil est en attente dun
vnement qui ne peut tre produit que par le processus dj
en attente
Considrons 2 processus utilisant 2 smaphores dexclusion
mutuelle
P1
P2
P(S1)
P(S2)
P(S2)
P(S1)
...
...
Famine (starvation) : des processus qui s'excutent indfiniment sans
aucun changement; certains processus peuvent ne jamais obtenir les
ressources!

193
IsetSiliana

CHaabani Nizar

193

4.4. Attente active vs. Blocage

Lattente active est-elle plus coteuse que le

blocage?
Cot de blocage contre le cot de manipulation des
files dattente + la commutation de contexte?
La dure de lattente?
Lattente active peut tre meilleure pour des sections

critiques de courtes dures, plus particulirement pour


les multiprocesseurs, elle est incontournable.

194
IsetSiliana

CHaabani Nizar

194

4.5. Problmes Classiques de Synchronisations


Rendez-vous -- Principe gnral
P1 P2
Point de
rendez-vous

Pn
Point de
synchronisation

Version simplifie du problme pour 2 processus


(gnralisation -- voir TD)
Synchronisation par smaphores privs :
Semaphores arrivee1=0, arrivee2 = 0;
Processus P1
P2
......
V(arrivee1);
V(arrivee2);
IsetSiliana
P(arrivee2);

Processus
.......
// signaler mon arrive
195
CHaabani Nizar
// attendre
l'arrive de lautre

195

4.5. Problmes Classiques de Synchronisations (2)


Problme de Producteur/Consommateur (tampon born)
Vide
N cases
Producteur

Consommateur

Plein

Contraintes de synchronisation :
Relation de prcdence : Producteur <

Consommateur
Section critique (tampon)

tampon plein Producteur se bloque


tampon vide Consommateur se
bloque
Exclusion mutuelle au tampon
196

IsetSiliana

CHaabani Nizar

196

Solution au Problme de Producteur/Consommateur (tampon born)

Variables partages

#define N 100
Semaphore mutex=1; /* protge l'accs au tampon */
Semaphore plein=0; /* compte le nombre dinformations

produites dans le tampon */


Semaphore vide = N;
/* Nb demplacements libres dans le
tampon */

Processus Producteur
Processus Consommateur
Repeat
Repeat
......
......
Produire_objet();
P(plein);
/* dcrmenter nb info.
*/
......
P(mutex); /* entre en SC */
P(vide) /* dec. Cases libres */
retirer_objet();
P(mutex); /* entre en SC */
V(mutex); /* sortie
de SC */

deposer_objet();

V(vide);

cases vides */

V(mutex); /* sortie de SC */
V(plein);
/* Incr. nb info. */
until false;

/* Incr. nb

Consommer_objet()
until false;
197

IsetSiliana

CHaabani Nizar

197

4.5. Problmes Classiques


de Synchronisations (4)

Considrons ce problme comme tant un systme de rservation

de billets davions o plusieurs processus tentent de lire et d'crire

Problme
des Lecteurs/Rdacteurs
des informations:

On accepte que plusieurs lisent ensemble (degr d'accs 1)


On nautorise quun seul processus modifier (on exclut les

lecteurs et les autres rdacteurs) Exclusion mutuelle (degr


= d'accs 1)
On suppose que les lecteurs sont prioritaires par rapport aux
rdacteurs
Un rdacteur bloqu doit attendre le dernier des lecteurs pour
quil puisse entrer en section critique
Solution

Variables partages
Semaphore mutex1=1;
/* protge le compteur des lecteurs
*/
Semaphore mutex2=1;
/* garantir la priorit des lecteurs)
Semaphore wrt=1;
/* exclusion mutuelle pour les rdacteurs */
int nblect=0;
/* Nombre de lecteurs actifs */
198
IsetSiliana

CHaabani Nizar

198

Solution au Problme des Lecteurs/Rdacteurs


avec priorit des lecteurs par rapport aux rdacteurs
Processus Lecteur
......
P(mutex1); /* accs exclusif nblect */
P(mutex2); /* priorit des lecteurs*/
if (++nblect == 1)

Processus Rdacteur

exclusif */

P(wrt);

P(wrt);
/* bloquer les rdacteurs */
V(mutex1); /* librer lutilisation de nblect */
librer l'accs exclusif */

/* accs

Ecriture
V(wrt); /*

Lecture
V(mutex2);
P(mutex1);
if (--nblect == 0) /* si le dernier lecteur */
V(wrt); /* autoriser une criture */
V(mutex1);
......

199
IsetSiliana

CHaabani Nizar

199

5. Les MONITEURS
Motivation :
Les smaphores peuvent tre utiliss pour rsoudre
peu prs n'importe quel problmes d'exclusion mutuelle ou
synchronisation ... mais les smaphores possdent certains
dsavantages :
Mcanisme de bas niveau qui demande une discipline
svre dans la faon dont ils sont utiliss, sous peine
d'erreurs: que se passe-t-il si on oublie d'indiquer un
appel V? ou si on effectue une action P en trop?
Le rle d'une opration P ou V (exclusion mutuelle?
synchronisation conditionnelle?) dpend du type de
smaphore, de la faon dont il est initialis et manipul
par les divers processus pas explicite
Moniteur :
Mcanisme de synchronisation de haut niveau, propos
par Hoare et Brinch Hansen.
Forme de module qui supporte, laide de deux
mcanismes indpendants, lexclusion mutuelle et la
synchronisation conditionnelle.
Conceptuellement, un moniteur simule une classe en OO
(des variables partages et les mthodes qui les
manipulent)
Un moniteur est cens assurer une exclusion mutuelle (un
seul processus actif dans le moniteur) daccs aux donnes
quil contient
IsetSiliana
CHaabani Nizar

2
0
200
0

5.1. Syntaxe et Smantique dun Moniteur


Structure
Moniteur

dun

VARIABLES Partages
- dEtat
- Condition
Procdures

Points
d'entre

Externe
s

Interne
s

Smantique dun Moniteur =


Type abstrait, mais avec des proprits dexclusion mutuelle et
de synchronisation lorsque le moniteur est partag par plusieurs
processus.
On na accs quaux procdures externes, pas aux variables
Les procdures sont excutes en exclusion mutuelle et
donc les variables internes sont manipules en exclusion
mutuelle
On peut bloquer et rveiller des taches. Le blocage et le
rveil sexprime au moyen de conditions.

IsetSiliana

CHaabani Nizar

2
0
201
1

5.1. Syntaxe et Smantique dun Moniteur


(suite)
Syntaxe : la forme gnrale dune dclaration de moniteur
:

Monitor nom_moniteur {
/* --- Dclarations des variables --- */
.....; /* variables d'tats */
Condition ... ; /* variables conditions */
/* ------------ Dclarations des procdures
*/
Public nom_fonction (...)
{
....
}
Public void nom_procedure (..)
{
....
}
Private .... (...)
{
.....
}
{ /* -- Initialisation des variables ---*/
}
IsetSiliana

CHaabani Nizar

------------

2
0
202
2

5.1.1. Exclusion Mutuelle


Philosophie des moniteurs = sparer de faon claire lexclusion
mutuelle de la synchronisation conditionnelle (coopration):
Lexclusion mutuelle est supporte de faon implicite : un appel,
par un processus, dune procdure exporte par le moniteur
assure que la procdure sera excute de faon exclusive, c--d,
au plus un appel dune procdure du moniteur sera actif un
instant donn
le moniteur maintient une FA des processus en attente d'entre.
Les synchronisations conditionnelles doivent tre dcrites de
faon explicite laide de variables condition (Condition variables)
En dautres termes, lexclusion mutuelle est automatique, sa
mise en uvre tant assure par le langage (compilateur), la
librairie, ou le systme dexploitation, pas le programmeur lui-mme.
Langages de programmation
JAVA (le meilleur) dclarations en exclusion mutuelle
(synchronized) certaines mthodes dune classe.
ADA95 -- type protg, objet protg protected; ainsi, toutes
les procdures de ces objets protgs sont excutes en exclusion
mutuelle.

IsetSiliana

CHaabani Nizar

2
0
203
3

5.1.2. Variables de Condition


Une variable condition est utilise pour suspendre un processus

jusqu' ce quune certaine condition devienne vraie.


Dclare comme une variable, mais on ne peut ni lui attribuer
de valeur ni la tester) -- Condition C;
Servir de FA des processus qui attendent sur cette condition
3 oprations possibles sur une variable condition C :
Empty(C)
// La FA associe est-elle vides ?
Mise en attente dun processus : Wait(C) // le processus
appelant se bloque et doit librer le moniteur.
Ractivation de processus en attente : Signal(C) //
reprend exactement un processus (en tte de la FA
associe C). Si aucun processus nest suspendu alors
cette opration est sans effet.
Problme de signalisation : un processus P fait un signal et
rveille un processus Q, alors qui aura le contrle exclusif du
moniteur? 2 approches :
Signaler et continuer : le processus qui excute signal
continue son excution, donc conserve l'accs exclusif au
moniteur. Le processus ayant t signal sera excut plus
tard Approche non-premptive -- la plus couramment utilise
(Unix, Java, Pthreads).
Signaler et Attendre : le processus qui signale attend pendant
que celui qui vient d'tre signale acquiert laccs exclusif au
moniteur
IsetSiliana

CHaabani Nizar

2
0
204
4

IsetSiliana

CHaabani Nizar

2
0
205
5

5.2. Similitudes/Diffrence entre P/Wait et


V/Signal
Les oprations Wait et P peuvent toutes deux avoir pour

effet de suspendre un processus qui excute cette


opration :

Wait suspend toujours le processus


P ne le fait que si la valeur du smaphore est ngative ou

nulle

Signal et V peuvent ractiver un processus suspendu :


Signal na aucun effet si aucun processus nest suspendu,
alors que V aura pour effet dincrmenter la valeur du
smaphore si aucun processus nest suspendu.
Implantation des moniteurs par des smaphores :
Assurer lexclusion mutuelle au moniteur mutex (P entre V
aprs sortie)
A chaque variable condition sont associs un smaphore et
un compteur
Wait (V(mutex); P(semcond))

IsetSiliana

CHaabani Nizar

2
0
206
6

Exemple:
ProducerMonitor ProducerConsumer
consumer
condition full, empty;
integer count;

procedure insert(item:integer);
begin
if count = N then wait(full);
insert_item(item);
count := count + 1;
if count = 1 then signal(empty)
end;
function remove: integer;
begin
if count = 0 then wait(empty);
remove = remove_item;
count := count - 1;
if count = N-1 then signal(full)
end;

procedure producer;
begin
while true do
item = produce_item();
ProducerConsumer.insert(item)
end;

procedure consumer;
begin
while true do
ProducerConsumer.remove();
consume_item(item);
end

count := 0;
end monitor;
IsetSiliana

CHaabani Nizar

2
0
207
7

Lecteurs/Rdacteurs
1.Un objet (par ex. un fichier, un enregistrement dans un fichier ou une base de

donnes toute entire) est partag entre plusieurs activits concurrentes.


2.Certaines activits les lecteurs) ne modifient pas le contenu de lobjet

contrairement dautres (les crivains).


3.Les lecteurs peuvent donc accder simultanment au fichier.
4.Un crivain au contraire doit accder seul au fichier.
5.Si le fichier est disponible, lecteur et rdacteur ont la mme priorit.

Il existe plusieurs versions classiques du problme.

IsetSiliana

CHaabani Nizar

2
0
208
8

Lecteurs/Rdacteurs

variante n1 : Priorit aux lecteurs.


Sil existe des lecteurs sur le fichier, toute nouvelle demande
de lecture est accepte.
risque : le rdacteur peut ne jamais accder au fichier (famine).
variante n2 : Priorit aux lecteurs, sans famine des
rdacteurs.
Sil existe des lecteurs sur le fichier, toute nouvelle demande de
lecture est accepte sauf sil y a un rdacteur en attente.
variante n3 : Priorit aux rdacteurs.
Un lecteur ne peut lire que si aucun rdacteur nest prsent ou en
attente.
risque : famine des lecteurs.
IsetSiliana

CHaabani Nizar

2
0
209
9

Lecteurs/Rdacteurs
variante n4 : FIFO.
Les demandes daccs lobjet sont servies dans lordre
darrive. Sil y a plusieurs lecteurs conscutifs, ils sont
servis ensemble.
risque : Le regroupement des lecteurs est inefficace si les
demandes sont lecteur/crivain en alternance.

IsetSiliana

CHaabani Nizar

2
1
210
0

IsetSiliana

CHaabani Nizar

2
1
211
1

Exemple:
type lecture_criture = moniteur
private criture: boolen;
Lecteurs/Rdacteurs
private lecteurs: entier;

private accord_lecture,accord_criture: condition;

procdure dbut_lecture;
dbut
si criture ou accord_criture.non_vide
alors accord_lecture.wait
findesi;
lecteurs:= lecteurs + 1;
accord_lecture.signal
fin;
procdure fin_lecture;
dbut
lecteurs:= lecteurs 1;
si lecteurs = 0 alors
findesi
fin;
IsetSiliana

accord_criture.signal

CHaabani Nizar

2
1
212
2

procdure dbut_criture;
dbut
si lecteurs > 0 ou criture
alors accord_criture.wait
findesi;
criture:= vrai
fin;
procdure fin_criture;
dbut
criture:= faux;
si accord_lecture.non_vide
alors accord_lecture.signal
sinon accord_criture.signal
findesi
fin;
dbut {du moniteur}
criture:= faux;
lecteurs:= 0
fin;

IsetSiliana

CHaabani Nizar

2
1
213
3

import lecture_criture
processus lecteur
{
lecture_criture.dbut_lecture ;
< lecture >
lecture_criture.fin_lecture ;
}
processus crivain
{
lecture_criture.dbut_criture ;
< criture >
lecture_criture.fin_criture ;
}

IsetSiliana

CHaabani Nizar

2
1
214
4

Structure des Systmes Informatiques

Oprations des Systmes Informatiques


Structure des E/S
Structure de stockage
Hirarchie de stockage
Protection matrielle
Structure rseau

IsetSiliana

CHaabani Nizar

215

Oprations des SI
Priphriques dE/S et la CPU peuvent sexcuter

simultanment
Chaque contrleur de priphrique est en charge
dun type particulier de priphriques
Chaque contrleur de priphrique a un tampon
local
CPU transfre les donnes de/ la mmoire
centrale au/du tampon local
E/S se fait du priphrique au tampon local du
contrleur
Le contrleur de priphrique informe la CPU quil
a fini lopration en gnrant une interruption
IsetSiliana

CHaabani Nizar

216

Tratement des
Interruptions
LOS sauvegarde ltat de la CPU (registre,

compteur de programme)
Dtermine quelle interruption a eu lieu:
polling
Vecteur dinterruption

Diffrentes fonctions du noyau correspondent

aux tratement rattachs chaque


interruption

IsetSiliana

CHaabani Nizar

217

Structure des E/S


E/S Synchrones Aprs le dbut de lE/S, le contrle ne

retourne au processus utilisateur qu la terminaison de


lopration dE/S

Instruction Wait qui fait attendre la CPU jusqu la nouvelle

interruption
Boucle Wait (contentieux sur laccs mmoire)

E/S Asynchrones Aprs le dbut de lE/S, le contrle retourne

au processus utilisateur sans attendre la fin de lE/S

Appel systme requte lOS pour permettre lutilisateur

dattendre la fin de lE/S

Table de Statut de Priphrique contient une entre par

priphrique dE/S indiquant son type, son adresse, et son tat

LOS regarde dans cette table dE/S pour dterminer ltat du

priphrique, pour y ajouter une requte, et pour reflter


loccurrence dune interruption
IsetSiliana

CHaabani Nizar

218

Deux Mthodes dE/S


Synchronous

IsetSiliana

Asynchronous

CHaabani Nizar

219

Storage Structure
Mmoire Principale le seul mdia de stockage que

la CPU peut accder directement


Mmoire Secondaire extension de la mmoire
centrale qui offre un espace de stockage persistent
Disques Magntiques plateaux couverts de
matriel magntique pour le stockage
dinformations
Surface du disque dcompose logiquement en

pistes, divises elles-mmes en secteurs


Le contrleur de disque fait lintermdiaire entre la
vue logique du disque par lOS et sa disposition
physique relle
IsetSiliana

CHaabani Nizar

220

Hirarchie des Priphriques de


Stockage

IsetSiliana

CHaabani Nizar

221

La lecture sur le
disque

IsetSiliana

CHaabani Nizar

222

Principe
les plateaux tournent trs haute vitesse (entre
3600 et 15000 tours/min)
la tte de lecture flotte au-dessus du plateau
grce au coussin dair induit ( 10 nm de la
surface)
lecture / criture
criture : le courant lectrique dans la tte gnre
un champ magntique qui magntise la surface
lecture : la magntisation du support induit un
courant lectrique dans la tte

IsetSiliana

CHaabani Nizar

223

Capacit dun disque


Taille dune piste
= nb de secteurs par piste * taille dun secteur
Taille dun cylindre
= nb de faces * taille dune piste
Taille dun plateau
= nb de pistes par face * taille dune piste * 2
Taille du disque
= nb de cylindres * taille dun cylindre
= nb de plateaux * taille dun plateau
IsetSiliana

CHaabani Nizar

224

Quest-ce quun
fichier
?
Une suite de secteurs
lordre est essentiel !!!

IsetSiliana

CHaabani Nizar

225

Quest-ce quun
une collection de noms de fichiers
rpertoire
?
+ un accs la liste de leurs secteurs
un rpertoire est lui-mme un fichier (rang dans

une suite de secteurs)


Les temps daccs
Quand on demande lire un secteur, la carte
d'interface va
1. Placer les ttes de lecture sur le bon cylindre
2. Attendre que le secteur cherch arrive sous la tte
3. Copier le secteur sur la carte d'interface.
4. Envoyer les donnes de la carte l'ordinateur.
IsetSiliana

CHaabani Nizar

226

Temps de lecture
Temps de lecture dun secteur
= dure de 1 tour / nombre de secteurs par piste
Dure constante (ex : 0,5 ms)
Dbit
= le nombre d'octets lus par seconde si on lisait sans arrt
= le nombre d'octets qui passent sous la tte en 1 seconde
Temps de latence
= dure moyenne dattente dun secteur = dure dun 1/2 tour
Exemple
secteurs de 512 octets, 32 secteurs par piste, 7200 tours/min
16 ko par piste, 120 tours / s
dbit max = 1920 ko/s = 1,875 Mo/s
temps de lecture dun secteur = 1/(120*32) = 2,5.10-4s =
0,25ms
temps de latence = 1/(120*2) = 4,2ms

IsetSiliana

CHaabani Nizar

227

Cache
Utilisation dune mmoire trs rapide daccs

pour maintenir des informations


dernirement accdes
Besoin dune polititque de gestion de cache
Le cache introduit un autre niveau de
stockage
Besoin que les donnes stockes plusieurs

niveaux soient cohrents

IsetSiliana

CHaabani Nizar

228

Transfert dun Entier A du Disque au


Registre

IsetSiliana

CHaabani Nizar

229

Architecture Systme
Gnrale
Composition
Un (ou plusieurs) processeur(s)
Mmoire
Contrleurs de priphriques
Priphriques associs
Bus de liaison dn systme informatique

IsetSiliana

CHaabani Nizar

230

Exemple : architecture
Pentium

IsetSiliana

CHaabani Nizar

231

Cycle de Von Neumann


Scenario
Extraction dune instruction
Stockage dans le registre dinstruction
Dcodage
Extraction de donnes ventuelles (oprandes)
Excution
Implmentation
Jeu dinstructions spcifique chaque CPU
Utilisation de registres CPU. Registres spciaux : PC
(Program Counter), SP (Stack Pointer), PSW (Program
Status Word)
Architectures modernes : pipelines, CPU superscalaires, RISC etc.
IsetSiliana

CHaabani Nizar

232

Initialisation
BIOS (Basic Input Output System)
initialise le matriel (registres processeur,
mmoire etc.)
scanne les bus (ISA et PCI dabord) pour trouver
un
priphrique amorable (bootable) Premier secteur
=) partition active =) deuxime boot loader
ou systme
charge le systme dexploitation en mmoire
Systme dExploitation
lance le premier processus ( init )
attend un vnement
Les vnements sont produits par des

interruptions

IsetSiliana

CHaabani Nizar

233