La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Gestion de Fichiers Organisation des Fichiers pour la Performance.

Présentations similaires


Présentation au sujet: "Gestion de Fichiers Organisation des Fichiers pour la Performance."— Transcription de la présentation:

1 Gestion de Fichiers Organisation des Fichiers pour la Performance

2 2 Motivation et plan du cours Comment organiser ou re-organiser les fichiers de manière à en améliorer la performance? On a déjà couvert les techniques de compression des fichiers. Maintenant: Le triage des fichiers de facon à pouvoir appliquer la recherche binaire tri interne Un tri plus sophistiqué: Tri par clé. La récuperation despace dans les fichiers qui ont connu des changements

3 3 Recherche rapide: vue générale Le coût de la recherche physique (seeking) est très élevé. Ce coût doit être pris en considération lorsque lon détermine une stratégie pour la recherche directe. La même question se pose dans le contexte du tri, qui est le plus souvent la première étape dune recherche efficace. Plutôt que dessayer tout simplement de trier puis de chercher, on va essayer de le faire de manière à minimiser le nombre de recherches (seeks).

4 4 Recherche rapide: vue générale (suite) Jusquà maintenant, la seule facon que lon ait de trouver des enregistrements rapidement est dutiliser leur Numero dEnregistrement Relatif (RRN). Ceci ne peut marcher que dans le cas denregistrement à taille fixe. Sans le RRN ou bien dans le cas denregistrements à taille variable, la seule facon de trouver un enregistrement est de faire une recherche séquentielle. Ceci es très inéfficace. On voudrait trouver une facon plus efficace de chercher un enregistrement en utilisant la valeur de leur clé.

5 5 Recherche rapide: recherche binaire Supposez que le fichier est trié et que lon cherche un enregistrement dont la clé est kelly dans un fichier de 1000 enregistrements à taille fixe. 1 2 … : Johnson2: Monroe Comparaison Suivante

6 6 Recherche binaire versus rech. séquentielle La recherche binaire dans un fichier de n enregistrements prend O(log 2 n) comparaisons. La recherche séquentielle prend O(n) comparaisons. Lorsque la recherche séquentielle est utilisée, doubler le nombre denregistrements dans un fichier double le nombre de comparaisons requises pour la recherche. Lorsquune recherche binaire est utilisée, doubler le nombre denregistrements ajoute une seule comparaison au pire. Afin dutiliser une recherche binaire, cependant, le fichier doit tout dabord être trié. Ceci peut prendre beaucoup de temps !

7 7 Recherche rapide: triage dun fichier de disque en mémoire Si le contenu dun fichier peut être sauvegardé entièrement en mémoire, on peut executer un tri interne. Trier en mémoire est très efficace. Cependant, si le fichier ne tient pas complètement en mémoire, tous les algorithmes de tri vont nécessiter un grand nombre de seeks. Trier serait, dans ce cas, extrêmement lent. Malheureusement, bien des fichiers sont rop large pour tenir en mémoire. Il faut trouver une solution à ce probleme.

8 8 Recherche rapide: les limitations de la recherche binaire et le tri interne La recherche binaire demande plus dun ou deux accès. Par contre, laccès aux enregistrements en utilisant un RRN peut être executé en un seul accès. Comment atteindre la performance dune recherche par RRN tout en conservant lavantage de laccès par clé ? Conserver un fichier trié est très cher: en plus de la recherche pour la location précise de linsertion, une fois cette location trouvée, il faut déplacer les enreg.s afin de dégager lespace pour linsertion. Le tri interne ne marche que sur des petits fichiers. Pour de grands fichiers, le tri par clé simpose.

9 9 Recherche rapide: tri par clé Vue générale: Lorsque lon trie un fichier en mémoire, les seules choses qui aient vraiement besoin dêtre triées sont les clés. Les algorithmes de tri par clé marchent comme le tri interne, mais avec deux différences importantes: Plutot que de lire un enregistrement entier dans un tableau en mémoire, on lit chaque enregistrement dans une mémoire tampon temporaire, on en extrait la clé et on ignore le reste des informations Si on veut écrire les enregi.s en ordre, il faut les lire une seconde fois, car on les avait ignoré en 1ère lecture.

10 10 Limitation de la méthode de tri par clé Lécriture denregistrements en ordre demande autant de seeks au hasard quil y a denreg.s. Puisque lécriture est parsemée parmi les opérations de lectures, lécriture demande également autant de seeks au hasard quil y a denregistrements. Solution: Pourquoi re-écrire le fichier trié par ordre de clé? Il suffit de re-écrire lindex trié.

11 11 Récuperation despace dans les fichiers: effacement des enreg.s et compactage Lorsque beaucoup denreg.s ont été effacés, il faut essayer de récuperer lespace perdu. Ceci peut se faire par compactage des données en stockage. Le compactage se fait en cherchant les emplacements du fichier qui nont pas de données et en récuperant ces espaces. Il est donc important, pour ce faire, davoir un moyen pour indiquer les enregistrements effacés. Une fois lespace perdu est détecté, un programme de compactage le comprime.

12 12 Effacement dynamique des enregistrements à taille fixe Le désavantage de la méthode précédente est quil y a de lattente entre leffacement dun enregistrement et le compactage. Parfois, cependant, il est nécessaire de récuperer lespace immédiatement. Pour ce faire, on peut: Indiquer les enregistrements effacés Trouver lendroit que les enregistrements effacés ont occuppé afin de le reutiliser lorsque lon ajoute de nouveaux enregistrements Avoir un moyen de savoir immédiatement sil y a de la place dans le fichier et sauter à ces endroits. Solution: Utiliser une liste chainée avec les RRN jouant le rôle de pointeurs.

13 13 Effacement dynamique des enregistrements à taille fixe (suite) Idée: construire une liste chainée de tous les enreg.s disponibles. Une telle liste est appelée avail list. Les pointeurs sont une référence à lenreg. suivant sur la liste avail list. Lorque une insertion est à faire dans un fichier à enreg.s à taille fixe, il suffit de prendre le premier enregistrement sur la liste avail list. Puisque tous les enreg.s sont de même taille, il ny a aucune raison de trier la liste avail list, car nimporte lequel des enreg.s disponibles convient.

14 14 Effacement dynamique des enregistrements à taille fixe (suite) Le moyen le plus commode pour administrer avail list est dutiliser une pile (stack): Le stack est constitué de noeuds de la forme suivante: [enregistrement|suivant] enregistrement = RRN suivant = RRN (pointeur de tête) [4|8] [8|3][3|5] [5|2] [2|-1] Effacer un eneg. = push; récuperer de lespace = pop. Si le pointeur au dessus du stack est -1 (NULL), il n y a plus despace libre dans le fichier. Trouver lendroit que les enreg.s effacés ont occuppé afin de les reutiliser est donc réalisé en exécutant un pop.

15 15 Effacement dynamique des enregistrements à taille fixe (suite) Une question pratique: à quel endroit stocke-t-on le stack? Le fait-on physiquement séparé du fichier lui- même? Le stack nest pas physiquement stocké de manière séparée du fichier, mais conceptuellement. Les enregistrements ne se déplacent donc pas physiquement; seuls les pointeurs sont réarrangés. Il est à se rappeler que les pointeurs dont il est question ici sont des pointeurs logiques et non physiques; ce sont les RRN et non des variables formelles pour pointer que lon utilise dans un language de programmation.

16 16 Effacement dynamique des enregistrements à taille fixe (suite) Considérons un fichier avec 7 enreg.s à longueur fixe: LH -1 |Edwards…|Bates … |Wills… |Jone |Masters…|Bouche |Chavez… | Le fichier après leffacement de lenreg. 1: LH 1 |Edwards…|*-1 … |Wills… | Saul… |Masters…|Jane… |Chavez… | Le fichier après leffacement de lenreg. 5: LH 5 |Edwards…|*-1 … |Wills… | Saul… |Masters…| *1 |Chavez… | Le fichier après linsertion des enreg.s Jone et Bouche: LH -1 |Edwards…|Bouche … |Wills… |Saul… |Masters…|Jone… |Chavez… |

17 17 Effacement dynamique des enregistrements à taille variable Meme idée que pour les enreg.s à taille fixe, mais une implementation différente doit être utilisée. En particulier, on doit conserver un compte doctets de chaque enreg. au début de celui-ci. De plus, les liens vers le prochain enreg. sur la liste avail list ne peuvent pas être les RRN, mais les décalages en octets (Pourquoi?). De plus, la structure de données utilisée pour la liste avail list ne peut pas être un stack puisque lon doit sassurer que, lorsque lon réutilise un emplacement, ce dernier a la bonne taille !

18 18 Effacement dynamique des enregistrements à taille variable (suite) Considérons un fichier avec 5 enreg.s à longueur variable: LH -1 |40Edwards…|64Bates … |45Wills… |87Masters…|53Chavez…| Le fichier après leffacement des enreg. 1: LH 43 |40Edwards…|64*-1… |45Wills… |87Masters…|53Chavez…| Le fichier après leffacement des enreg. 1 et 3: LH 156 |40Edwards…|64* … |45Wills… |87*43…|53Chavez…| Le fichier après linsertion de lenreg. Jone: LH 43 |40Edwards…|64* … |45Wills… |87Jone…|53Chavez…| Nous devons faire autant de pops que possible pour trouver un enreg. de taille convenable !

19 19 Fragmentation de stockage Lespace perdu à lintérieur dun enregistrement sappelle la fragmentation interne. Les enregistrements à taille variable ne souffre pas de fragmentation interne. Par contre, la fragmentation externe ne peut pas être évitée. Il y a 3 façons de traiter la fragmentation externe: compactage de stockage (voir début du cours) Coalescence/fonte des trous Lutilisation dune stratégie de placement

20 20 Strategies de placement Stratégie First Fit: accepter le premier emplacement libre capable daccomoder le nouvel enregistrement. Stratégie Best Fit: choisir le plus petit emplacement de libre qui peut accomoder le nouvel enregistrement. Stratégie Worst Fit: choisir le plus grand emplacement de libre.

21 21 Stratégies de placement (suite) Quelques remarques générales sur les stratégies de placement: Les stratégies de placement sappliquent seulement aux enregistrements à taille variable Si lespace est perdu à la fragmentation interne, les meilleurs choix de stratégies de placement sont first fit et best fit. Une strategie worst fit aggrave la fragmentation interne. Si, par contre, lespace est perdu à la fragmentation externe, la stratégie worst fit peut être très utile.

22 22 Enregistrements fixes Tout comme dans le tri rapide, les indexes sont utiles dans le contexte des enregistrements effacés. La liste avail list indicant la location des enregistrements non-utilisés consiste en des enregistrements fixes (pinned records) dans le sens ou ces enregistrements ne peuvent pas être déplacés car les déplacer créerait des pointeurs pendants (dangling pointers). Les enregistrements fixes, par contre, rendent le tri difficile. Une solution consiste à utiliser un index ordonné et à ne pas déplacer les enregistrements.


Télécharger ppt "Gestion de Fichiers Organisation des Fichiers pour la Performance."

Présentations similaires


Annonces Google