• Aucun résultat trouvé

Organisation des données

N/A
N/A
Protected

Academic year: 2022

Partager "Organisation des données"

Copied!
396
0
0

Texte intégral

(1)

Cours C1-3

Systèmes de Gestion de Bases de Données (SGBD) relationnels

Maude Manouvrier

Partie II : les SGBD vus du coté Administrateur de Bases de Données Architecture générale d’un SGBD

Organisation des données

Évaluation et optimisation de requêtes

Gestion de la concurrence / transactions

Reprise sur pannes

(2)

R. Ramakrishnan et J. Gehrke, Database Management Systems, Second Edition;

McGraw-Hill, 2000, disponible à la BU 055.7 RAM

H. Garcia Molina, J.D. Ullman et J. Widom, Database System Implementation, Prentice Hall, 2000, disponible à la BU 005.7 GAR

H. Garcia Molina, J.D. Ullman et J. Widom, Database Systems - The Complete Book, Prentice Hall, 2002

T. Connoly, C. Begg et A. Strachan, Database Systems A Pratical Approach to Desigh, Implementation and Management, 1998, disponible à la BU 055.7 CON

A. Silberschatz, H.F. Korth et S. Sudarshan, Database System Concepts, McGraw- Hill, 2002, version de 1996 disponible à la BU 005.7 DAT

C.J. Date, An Introduction aux bases de données, 6ème édition, Thomson publishing, 1998, disponible à la BU 005.7 DAT

R.A. El Masri et S.B. Navathe, Fundamentals of Database Systems, Prentice Hall,

disponible à la BU 005.7 ELM

(3)

Chapitre 1

Chapitre 2

Chapitre 4 Chapitre 5

3

Gestionnaire de fichiers

(4)

• Vision des données par le SGBD : un ensemble d’enregistrements mémoire

• Vision des données par le gestionnaire de fichiers : un ensemble de pages mémoire

• Vision des données par le gestionnaire de disque : un ensemble de pages disque

• Rôle du gestionnaire de buffer : passage des pages

du disque vers la mémoire (et inversement)

(5)

5

Rôle : placer, au moment voulu, une page du disque vers la mémoire et inversement

• Politique de remplacement (ex. LRU)

• Gestion des pages mises à jour

• Partition de la mémoire

• Vérification des droits sur les pages

(6)

Disque Mémoire

Page mémoire libre

Page de données

Page de données

modifiées

(7)

6 Disque

Mémoire

Page mémoire libre

Page de données

Page de données

modifiées

(8)

Disque Mémoire

Page mémoire libre

Page de données

Page de données

modifiées

(9)

6 Disque

Mémoire

Page mémoire libre

Page de données

Page de données

modifiées

(10)

Disque Mémoire

Page mémoire libre

Page de données

Page de données

modifiées

(11)

6 Disque

Mémoire

Page mémoire libre

Page de données

Page de données

modifiées

(12)

Disque Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

(13)

6 Disque

Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

(14)

Disque Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

(15)

6 Disque

Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

Page non accédée depuis longtemps (LRU)

(16)

Disque Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

Page non accédée depuis longtemps (LRU)

(17)

6 Disque

Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

Page non accédée depuis longtemps (LRU)

(18)

Disque Mémoire

Page mémoire libre

Page de données

Page de données modifiées

Date de montée Date de dernier accès

Page non accédée depuis longtemps (LRU)

(19)

7

Intégration ou non des fonctionnalités du SGF du système d’exploitation :

A chaque relation correspond un fichier liaison forte du SGBD et du SGF

Stockage de toute la base de données dans un seul fichier le SGF donne accès aux différentes pages

le SGBD contrôle tout

Les pages doivent être connues du SGBD

(20)

• Stockage des données

→ Conservation

Accès

• Structuration des données

• Moyens de manipulation des données

(21)

9

• Relation : collection de pages ou blocs disque ou mémoire

champ : séquences d’octets de taille fixe ou variable représentant la valeur d’un attribut de nuplet sur le disque ou en mémoire

enregistrement : collection de taille fixe ou variable

de champs

(22)
(23)

fixe

11

seg2 seg1 segN

(24)
(25)

13

Modèle de coût [RG00] :

B pages de disque

R enregistrements par page

• Temps moyen de lecture d’une page : D

• Temps moyen d’accès à un enregistrement : C

• Temps de calcul d’une valeur de fonction de

hachage : H

(26)

aléatoire (Heap File)

ordonné (Sorted File)

hachage (Hash File) Plusieurs opérations :

• Lecture complète du fichier

• Recherche par égalité

• Recherche par intervalle

Insertion

(27)

15

Fonction de hachage :

calcule la page où doit être stocké l’enregistrement en fonction de la valeur d’un ou plusieurs de ses champs

• Regroupement de pages d’un fichier de hachage en buckets composés de segments

Gestion de pages d’overflow

• Placement des enregistrements par ordre d’arrivée dans le bucket

• Pas de garantie d’adresse unique

• Gestion des collisions

(28)
(29)

17

Open adressing : Recherche linéaire du premier segment vide

Unchained overflow : Maintien d’une zone d’overflow

Chained overflow : Maintien, pour chaque bucket, d’un pointeur vers une zone d’overflow

Multiple hashing : Utilisation d’une deuxième fonction de

hachage pour placer les enregistrements dans la zone

d’overflow

(30)

Ex. 32 en binaire = 100000

Entrées r telles que h(r)=00

(31)

18 Ex. 32 en binaire = 100000 Entrées r telles que h(r)=00

Insertions : 13 en binaire = 1101

(32)

Ex. 32 en binaire = 100000 Entrées r telles que h(r)=00

Insertions : 13 en binaire = 1101

13

(33)

18 Ex. 32 en binaire = 100000 Entrées r telles que h(r)=00

Insertions : 13 en binaire = 1101

13

20 en binaire = 10100 mais bucket A plein

(34)

La taille du

répertoire

est doublée

et le bucket

A est divisé

en 2

(35)

19 La taille du

répertoire est doublée et le bucket A est divisé en 2

13

(36)

La taille du répertoire est doublée et le bucket A est divisé en 2

13

h(4)=100

h(12)=100

h(16) = 000

h(32)=000

h(20) = 100

(37)

19 La taille du

répertoire est doublée et le bucket A est divisé en 2

13

h(4)=100 h(12)=100 h(16) = 000 h(32)=000 h(20) = 100 Taille

globale

(38)

La taille du répertoire est doublée et le bucket A est divisé en 2

13

h(4)=100 h(12)=100 h(16) = 000 h(32)=000 h(20) = 100 Taille

globale Taille

locale

(39)

20 0

1

Répertoire de buckets

2 14 22 10

5 9 7 15

buckets 14 2 1110 10

22 10110

10 1010

5 101

9 1001

7 111

15 1111

On ajoute l’entrée 26 (11010)

(40)

00 01

Répertoire de buckets

5 9 15

buckets 11

2 14 22 10 2

2 10

14 1110

22 10110

10 1010

5 101

9 1001

7 111

15 1111

26 11010

2 1 2

26

Pages d’overflow

10 7

(41)

22 00

Répertoire de buckets

20 8 12 16

5 9 7 15

buckets 10

11

2 14 22 10 2

20 10100

8 1000

12 1100

16 10000

2 1 2

Pages d’overflow 26

01

(42)

00

Répertoire de buckets

20 8 12 16

5 9 7 15

buckets 10

11

2 14 22 10 2

20 10100

8 1000

12 1100

16 10000

2 1 2

Pages d’overflow 26

01

Insertion de 17

(10001 en binaire)

(43)

23 00

01

Répertoire de buckets

20 8 6 16

5 9 17

buckets 10

11

2 14 22 10 2

20 10100

8 1000

6 110

16 10000

5 101

9 1001

7 111

15 1111

17 10001

2 2 2

Pages d’overflow 26

7 15

2

(44)

Buckets existant au début du

round dans l’intervalle h level Prochain

bucket à diviser

Buckets dédoublés pendant le round Si h level (clé) est dans cet intervalle, il faut utiliser h level +1 (clé) pour savoir si l’entrée est dans les buckets

dédoublés

Buckets dédoublés

pendant le round

(45)

25

Entrées r telles que

ho(r)=01

(46)

Entrées r telles que ho(r)=01

Insertion de l’entrée 43 : 43 en binaire =101011 h 0 (43)=11

Or le bucket est plein

Division du bucket Next

(47)

26

(48)
(49)

26 Bucket divisé

Bucket dédoublé

(50)

Bucket divisé

Bucket dédoublé

(51)

26 Bucket divisé

Bucket dédoublé

Insertion des entrées 37

(100101 en binaire) et 29

(11101 en binaire)

(52)

Bucket divisé

Bucket dédoublé

Insertion des entrées 37 (100101 en binaire) et 29 (11101 en binaire)

37

(53)

27 Insertion de 22 (10110 en binaire)

division du bucket Next

(54)

Insertion de 66 (1000010 en binaire) et de 34 (10010 en binaire)

Insertion de 50 (110010)

division du bucket Next

100

101

(55)

29 Après la division du

bucket Next = N-1

N = N*2 et Next =0

100 101

(56)

→ Les entrées de clé de recherche k sont les enregistrements mêmes

→ Les entrées sont des couples (k,rid)

→ Les entrées sont des couples (k,liste_rid)

Index primaire

Clé de recherche = clé primaire de la relation

Index secondaire

(clé de recherche, valeur(s) de clé primaire)

(clé de recherche, pointeur(s) vers les pages du fichier)

l’index primaire doit être lu après l’index secondaire

(57)

31

(58)

(59)

33

(60)

arborescentes : Arbre B+ (1/3)

n0

23 46

f1 f2 f3

(1, GAMOTTE, Albert, …) (2, HIBULAIRE, Pat, …)

(23, PABIEN, Yvon, …) (24, DEBECE, Aude, …)

(46, PAN, Amédée, …) (47, DENT, Malo, …)

Exemple d’index primaire

Pages de la relation et feuilles de l’index

(61)

35 n0

GAMOTTE PABIEN

f1 f2 f3

(DEBECE, 24) (DENT,47)

(GAMOTTE, 1) (HIBULAIRE,2)

(PABIEN, 23) (PAN, 46)

(62)

n0

GAMOTTE PABIEN

f1 f2 f3

(DEBECE, 24) (DENT,47)

(GAMOTTE, 1) (HIBULAIRE,2)

(PABIEN, 23) (PAN, 46)

(1, GAMOTTE, Albert, …) (2, HIBULAIRE, Pat, …)

(23, PABIEN, Yvon, …) (24, DEBECE, Aude, …)

(46, PAN, Amédée, …) (47, DENT, Malo, …)

Pages de la relation

(63)

36

HIBULAIRE

f1 f2 f3

(DEBECE, 24) (DENT,47)

(FRICE, 70) (GAMOTTE, 1)

(HIBULAIRE,2) (PABIEN, 23)

(PAN, 46) (ZEN, 98)

FRICE PAN

f4

(64)

Exécution de requête : séries d’opérations permettant d’extraire des données de la base

Optimisation de requête : activité

permettant de choisir la meilleure stratégie

d’exécution d’une requête

(65)

38

(66)

dans les filiales de Londres ? »

SELECT e.Nom

FROM Employe e, Filiale f

WHERE e.#Filiale=f.#Filiale

AND e.Position = ‘Commercial’

AND f.Ville=‘Londres’

Trois requêtes possibles en algèbre relationnelle

Calcul du coût de chaque requête en terme E/S

Employe contient 1000 nuplets, Filiale en contient 50

Il y a 50 commerciaux et 5 filiales à Londres

(67)

40

Transformation de la requête SQL en une requête en algèbre relationnelle

• Vérification syntaxique et sémantique de la requête

• Utilisation du catalogue du système

• Représentation de la requête par un

arbre d’opérateurs algébriques

(68)

• Appelé également dictionnaire de données

• Contient la description des données de la base

Pour chaque relation :

nom de la relation, identificateur du fichier et structure du fichier

nom et domaine de chaque attribut

nom des index

contraintes d’intégrité

Pour chaque index :

nom et structure de l’index

attribut appartenant à la clé de recherche

Pour chaque vue :

nom de la vue

(69)

42

• Contient également des données statistiques

Cardinalité de chaque relation

Nombre de pages de chaque relation

Nombre de valeurs distinctes de clé de recherche pour chaque index

Hauteur des index de structures arborescente

Valeur minimum et valeur maximum de chaque clé de recherche dans chaque index

• Exemple sous Oracle8 : USER_ALL_TABLES,

USER_CONSTRAINTS etc.

(70)

Représentation des relations impliquées dans la requête par les nœuds feuille de l’arbre

Représentation des résultats intermédiaires par des nœuds non feuille

Représentation du résultat de la requête par la racine de l’arbre

Ordre des séquences d’opérations : des

feuilles vers la racine

(71)

44

(Employe.#Filiale=Filiale.#Filiale)

σ (Position = ‘Commercial’) σ (Ville = ‘Londres)

Employe Filiale

(72)

Equivalences d’expressions (1/3)

1) Cascade de sélections : σ p ∧ q ∧ r (R) =

2) Commutativité des sélections : σ p ( σ q ( R) ) =

3) Séquence de projections : Π L M ( … Π N ( R) )) = 4) Commutativité des sélections et des projections :

Π A1 …An σ p ( R) =

5) Commutativité des jointures : R p S =

6) Commutativité des jointures et des sélections

σ ( R ∞ S ) = et σ

(73)

46

7) Commutativité des jointures et des projections

Π L1 ∪ L2 ( R ∞ p S ) =

8) Commutativité des unions et des intersections

( R ∪ S ) = et ( R ∩ S ) =

9) Commutativité des unions, intersections, différences et des sélections

σ p ( R ∪ S ) =

σ p ( R ∩ S ) =

σ p ( R - S) =

(74)

10) Commutativité des projections et des unions

Π L ( R ∪ S ) =

11) Associativité des jointures

( R ∞ S ) ∞ T=

12) Associativité des unions et des intersections

( R ∪ S ) ∪ T=

( R ∩ S ) ∩ T=

(75)

48 Division des conjonctions de sélections

Ré-ordonnancement des sélections en utilisant les règles 2 et 4 Application des sélections les plus sélectives en premier

Transformation des produits cartésiens en jointure

Ré-ordonnancement des équi-jointures en utilisant la règle 11

Déplacement des projections et création de nouvelles projections en

utilisant les règles 4 et

(76)

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe

AND #Equipe = #Appartenance

AND DaeNais=1973

(77)

49

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe

AND #Equipe = #Appartenance

AND DaeNais=1973

(78)

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973

Employe Equipe

Projet

(79)

49

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973

Employe Equipe

Projet

*

*

l

Proje

rojet = ‘Sirius’

t = #Projet_Equipe

e = #Appartenance

s=1973

(80)

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973

Employe Equipe

Projet

*

*

l

Proje

rojet = ‘Sirius’

t = #Projet_Equipe

e = #Appartenance

s=1973

(81)

49

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973

Employe Equipe

Projet

*

*

l

Proje

rojet = ‘Sirius’

t = #Projet_Equipe e = #Appartenance s=1973

σ (Nom_Projet=‘Siruis’) ∧ (#Projet=#Projet_Equipe) ∧ (#Equipe=#Appartenance) ∧ (DateNais=1973)

pe, Projet

(82)

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973

Employe Equipe

Projet

*

*

l

Proje

rojet = ‘Sirius’

t = #Projet_Equipe e = #Appartenance s=1973

σ (Nom_Projet=‘Siruis’) ∧ (#Projet=#Projet_Equipe) ∧ (#Equipe=#Appartenance) ∧ (DateNais=1973)

pe, Projet

(83)

49

SELECT Nom

FROM Employe, Equipe, Projet WHERE Nom_Projet = ‘Sirius’

AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973

Employe Equipe

Projet

*

*

l

Proje

rojet = ‘Sirius’

t = #Projet_Equipe e = #Appartenance s=1973

σ (Nom_Projet=‘Siruis’) ∧ (#Projet=#Projet_Equipe) ∧ (#Equipe=#Appartenance) ∧ (DateNais=1973)

pe, Projet

(84)

σ (#Projet=#Projet_Equipe)

σ (#Equipe=#Appartenance)

σ (DateNais=1973)

σ (Nom_Projet=‘Siruis’)

Projet

*

*

Division des conjonctions de

sélections

(85)

51

σ (#Projet=#Projet_Equipe)

σ (#Equipe=#Appartenance)

σ (DateNais=1973)

σ (Nom_Projet=‘Siruis’)

Projet

*

*

Employe

Equipe

Ré-ordonnancement des sélections et

application des

sélections les plus

sélectives en premier

(86)

Transformation des produits cartésiens en

jointure

σ (DateNais=1973)

σ (Nom_Projet=‘Siruis’)

Projet

(#Equipe=#Appartenance)

Employe

Equipe

(#Projet=#Projet_Equipe)

(87)

53 Ré-ordonnancement

des jointures (les plus sélectives en premier)

σ (DateNais=1973)

σ (Nom_Projet=‘Siruis’)

Projet

(#Equipe=#Appartenance)

Employe Equipe

(#Projet=#Projet_Equipe)

(88)

projections

σ (DateNais=1973)

σ (Nom_Projet=‘Siruis’)

(#Equipe=#Appartenance)

Employe

(#Projet=#Projet_Equipe)

Π #Projet

Π #Projet_Equipe, #Equipe

Π Nom, #appartenance

Π #Equipe

(89)

55

Pour chaque relation R [CBS98] :

NTuples(R) : nombre de nuplets

Bfactor(R) : nombre de nuplets par bloc

NBlocks(R) : nombre de blocs pour la relation NBlocks(R) =

Pour chaque attribut A de R :

NDistinct A (R) : nombre de valeurs distinctes de A

Min A (R) et Max A (R) : valeurs min et max de A

SC A (R) : nombre moyen de nuplets satisfaisant un prédicat sur A

(90)

SC A (R) dépend du prédicat

Egalité :

A > c

A < c

A ∈ {c 1 , …, c n }

A ∧ B

A ∨ B

Pour index I de R sur un attribut A :

NLevels A (I) : nombre de niveaux pour I

NLBlocks A (I) : nombre de blocs utilisés pour I

(91)

57

Stratégies :

Recherche linéaire (fichier non ordonné sans index)

Recherche binaire (fichier ordonné sans index)

Condition d’égalité sur la valeur d’une fonction de hachage

Condition d’égalité sur la clé primaire

Condition d’inégalité sur la clé primaire

Condition d’égalité sur la clé d’un index secondaire clustered

Condition d’égalité sur la clé d’un index secondaire unclustered

Condition d’inégalité sur un index secondaire en arbre B+

(92)

Exemple :

Employe(NSS, Departement, Salaire, Position …) NTuples(e)=3000

BFactor(e)=30 NDistinct

D

(e)=500 NDistinct

P

(e)=10

NDistinct

S

(e)=500 Min

s

(e)=1000 Max

s

(e)=5000 NLevels

D

(I)=2

NLevels

S

(I)=2 NBlocks

S

(I)=50

Fonction de hachage Index clustered

Index unclustered

) (

...

273 e

NSS =

σ

) (

'.

' Commercial e

Position =

σ σ

) (

. 2000 e

Salaire >

σ

) ( e

σ

(93)

59

Stratégies d’implantations de la jointure :

Boucles imbriquées (Block nested loop join)

Boucles imbriquées en utilisant un index (Indexed nested loop join)

Tri-fusion (Sort-merge join)

Hachage (Hash join)

Pour chaque algorithme, possibilité de le faire en multi-passes

(94)

NTuples(R F S) NTuples(R) * NTuples(S)

Lorsque le prédicat est R.A=S.B

Si A est clé de R : NTuples(R F S) NTuples(S)

Si B est clé de S : NTuples(R F S) NTuples(R)

Si ni A ni B ne sont clés :

NTuples(R F S) ~ Max ( SC A (R)* NTuples(S), SC B (S)* NTuples(R) )

(95)

61 Zone mémoire du buffer

disque

Les blocs de S sont montés en mémoire autant de fois qu’il y a de blocs pour R

S’il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages

S’il existe un index sur

l’attribut de jointure

d ’une des deux relations,

on l’utilise pour trouver

les nuplets participant à la

jointure

(96)

Zone mémoire du buffer

disque

Les blocs de S sont montés en mémoire autant de fois qu’il y a de blocs pour R

S’il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages

S’il existe un index sur l’attribut de jointure d ’une des deux relations, on l’utilise pour trouver les nuplets participant à la

Page de R

(97)

61 Zone mémoire du buffer

disque

Les blocs de S sont montés en mémoire autant de fois qu’il y a de blocs pour R

S’il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages

S’il existe un index sur l’attribut de jointure d ’une des deux relations, on l’utilise pour trouver les nuplets participant à la jointure

Page de R Page de S

(98)

Zone mémoire du buffer

disque

Les blocs de S sont montés en mémoire autant de fois qu’il y a de blocs pour R

S’il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages

S’il existe un index sur l’attribut de jointure d ’une des deux relations, on l’utilise pour trouver les nuplets participant à la

Page de R Page de S Page de

R∞S

(99)

62

Tri des relations sur l ’attribut de jointure

Ex. Tri externe ou tri par séries monotones

Equi-jointure des deux relations triées

En parcourant simultanément les deux relations pages par pages

(100)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3

7

2

(101)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3

7

2

(102)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

(103)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

(104)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

2

(105)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22

3

(106)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22

3

2

3

5

(107)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2

3

5

(108)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2

3

5

(109)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

7

(110)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77

9

(111)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77

9

7

9

10

(112)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7

9

10

(113)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7 9 10 4

13 8

6

1

12

(114)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7 9 10 4

13 8

6 1 12

1

4

6

(115)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7 9 10 4

13 8

6 1 12

1 4 6

8

12

13

(116)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7 9 10 4

13 8

6 1 12

1 4 6

8

12

13

(117)

63

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7 9 10 4

13 8

6 1 12

1 4 6

8 12 13 11

15

20

(118)

5 10

9

4 13

8

6 1 12

15 11 20

La mémoire contient 3 emplacements

disque

3 7 2

3 7 2

5 10

9

22 3 2 3 5

2 3 5

77 9 7 9 10

7 9 10 4

13 8

6 1 12

1 4 6

8 12 13 11

15 20

11

15

20

(119)

64

3 7 2

5 10

9

4 13

8

6 1 12

15 11 20

Ensemble de départ

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20

Après la 1ère étape de tri : Les pages sont triées par paquets de 2

3 paquets triés de 2

pages soit 2*5 E/S

(120)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11

15

20

(121)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3

5

(122)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1

4

6

(123)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1

4

6

(124)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

1

(125)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11

2

(126)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11

2

1

2

3

(127)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1

2

3

(128)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1

2

3

(129)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

4

(130)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44

5

(131)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9

10

(132)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9 10

4

5

6

(133)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9 10

4 5 6 8

12

13

(134)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9 10

4 5 6 8

12 13

4

5

6

(135)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9 10

4 5 6 8

12 13

4

5

6

(136)

La mémoire contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9 10

4 5 6 8

12 13

4 5 6

7

8

9

(137)

65 La mémoire

contient 3 emplacements

disque

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20 2

3 5

1 4 6

11 2 1 2 3

1 2 3

44 5 7

9 10

4 5 6 8

12 13

4 5 6

7 8 9

10

12

13

(138)

3 7 2

5 10

9

4 13

8

6 1 12

15 11 20

2 3 5

7 9 10

1 4 6

8 12 13

11 15 20

1 2

4 5

7 8

10 12

11 15

Après la 2ème étape de tri : Les paquets sont triés 2 par 2

1 paquets trié de 4 pages et 1 paquet de Après la 1ère étape de

tri : Les pages sont triées par paquets de 2

3 paquets triés de 2 pages soit 2*5 E/S

Ensemble de

départ

(139)

67

RID 22 28 31 36

Nom Daniel Jeanne Paul Pierre

Heure 7 9 12

6

Salaire 145KF 175KF 200KF 120KF

SID 28 28 31 31 31

Département R&D R&D Compta Direction

Compta

Jour

02/02/2001

05/02/2001

03/02/2001

05/02/2001

06/02/2001

Références

Documents relatifs

• Rôle du gestionnaire de buffer : passage des pages du disque vers la mémoire (et inversement)...

[r]

On rappelle que l’adresse linéaire doit permettre d’adresser toute la mémoire d’un pro- cessus, mais qu’elle n’a pas besoin d’adresser l’ensemble de la mémoire

Le jeu se fait donc systématiquement entre deux secteurs libres : le secteur 5 (usure 143) et un autre secteur, qui va changer à chaque exécution, mais donc l’usure sera forcément

[r]

Quand on travaille sur un fichier, il faut connaître son nom, mais aussi le nom du répertoire où il se trouve, ainsi que la branche complète des répertoires dans lequel

La performance d'un disque dur influe de manière importante sur la performance générale du système : un disque dur lent aura le potentiel à entraver un processeur rapide

Quant au temps de calcul de décodage, nous proposons une organisation efficace en mémoire des covariances ainsi que des distances pour la recherche rapide des plus proches