Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section 6.2-6.4 de Folk, Zoellick & Riccardi, File.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Structures de données avancées : Principales structures de fichiers
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Tris.
Structures de données et complexité
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 435 Principes des systèmes d’exploitation
Chap. 1 Structures séquentielles : listes linéaires
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
Structures de données linéaires
Administration système
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Methode de Tri efficace
Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Groupe 1: Classes de même intervalle
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Gestion de Fichiers Arbres B.
Sections sélectionnées du Chapitre 11
Allocation de mémoire Allocation de mémoire.
Etude de cas : buffer clavier
FICHIERS : Définition : Algorithme général:
Les fichiers indexés (Les B-arbres)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-10541
Stockage Secondaire: Disques
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Introduction et Motivation
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
Gestion de Fichiers GF-1: Introduction à la Géstion des Fichiers et Opérations de Base.
Organisation des Fichiers pour la Performance
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Gestion de Fichiers GF-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Analyse d’algorithmes
Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.
Gestion de Fichiers GF-14: Acces Sequentiel et Indexe aux Fichiers et Arbres B+ Prefixes (Base sur le Chapitre 10 de Folk, Zoellick & Riccardi, File Structures,
Gestion de Fichiers GF-16: Addressage Disperse Extensible (Extendible Hashcoding) (Base sur le Chapitre 12 de Folk, Zoellick & Riccardi, File Structures,
Gestion de Fichiers GF-1: Introduction a la Gestion des Fichiers et Operations de Base.
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: II. Arbres B (Base sur les Sections de.
Gestion de Fichiers GF-9: Construction d’Indexes (Base sur le Chapitre 7 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Cours de Systèmes d’exploitations
Programmation linéaire en nombres entiers
Méthodes de tri.
Cours 4 - Trois algorithmes de recherche dans un tableau
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
GF-11: Tri Interne Efficace et Tri Externe
CSI 4506: Introduction à l’Intelligence Artificielle
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
GF-4: Storage Secondaire: Disques
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Gestion de Fichiers Construction d’Indexes. 2 Plan du cours de la semaine Vue Générale Un indexe pour les fichiers à entrées séquentielles Opérations.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Ordinateurs, Structure et Applications
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Algorithmique Boucles et Itérations
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Chapitre 5 Configuration et gestion des systèmes de fichiers Module S41.
Transcription de la présentation:

Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++;)

2 Resume du Cours d’aujourd’hui Etudions, maintenant, les manieres d’organiser ou de re-organiser les fichiers de maniere a ameliorer la performance: On a deja parle des techniques de compression des fichiers. Parlons maintenant de: Le triage des fichiers de facon a pouvoir appliquer la recherche binaire  tri interne Un tri plus sophistique: Tri par cle. La recuperation d’espace dans les fichiers qui ont connu des changements (effacements, mises a jour)

3 Recherche Rapide: Vue Generale I Le cout de la recherche physique (seeking) est tres eleve. Ce cout doit etre pris en consideration lorsque l’on determine une strategie pour la recherche directe. La meme question se pose dans le contexte du tri, qui est le plus souvent la premiere etape d’une recherche efficace. Plutot que d’essayer tout simplement de trier puis de chercher, on va essayer de le faire de maniere a minimiser le nombre de seeks.

4 Recherche Rapide: Vue Generale II Jusqu’a maintenant, la seule facon que l’on ait de trouver des enregistrements rapidement est d’utiliser leur Numero d’Enregistrement Relatif (NER). Ceci ne peut marcher que dans le cas d’enregistrement a taille fixe. Sans le NER ou bien dans le cas d’enregistrements a taille variable, la seule facon de trouver un enregistrement est de faire une recherche sequentielle. Ceci est une methode tres inefficace. On voudrait trouver une facon plus efficace de chercher un enregistrement en utilisant la valeur de leur cle.

5 Recherche Rapide: Recherche Binaire Veuillez supposer que le fichier est trie et que l’on cherche un enregistrement dont la cle est kelly dans un fichier de 1000 enregistrements a taille fixe. 1 2 … : Johnson2: Monroe Comparaison Suivante

6 Recherche Rapide:Recherche Binaire versus Recherche Sequentielle La recherche binaire dans un fichier de n enregistrements prend O(log 2 n) comparaisons. La recherche sequentielle prend O(n) comparaisons. Lorsque la recherche sequentielle est utilisee, doubler le nombre d’enregistrements dans un fichier double le nombre de comparaisons requises pour la recherche. Lorsqu’une recherche binaire est utilisee, doubler le nombre d’enregistrements ajoute une seule comparaison au pire. Afin d’utiliser une recherche binaire, cependant, le fichier doit tout d’abord etre trie. Ceci peut prendre beaucoup de temps.

7 Recherche Rapide: Trier un fichier de disque en Memoire. Si le contenu d’un fichier peut etre sauvegarde entierement en memoire, on peut executer un tri interne. Trier en memoire est tres efficace. Cependant, si le fichier ne tient pas completement en memoire, tous les algorithmes de tri vont necessiter un grand nombre de seeks. Trier serait, dans ce cas, extremement lent. Malheureusement, ceci est souvent le cas et il faut trouver une solution a ce probleme.

8 Recherche Rapide: Les limitations de la recherche binaire et le tri interne La recherche binaire demande plus d’un ou deux acces. Par contre, l’acces aux enregistrements en utilisant un NER peut etre execute en un seul acces  Nous voudrions atteindre la preformance d’une recherche par REN tout en conservant l’avantage de l’acces par cle. Conserver un fichier trie est tres cher: en plus de la recherche pour la location precise de l’insertion, une fois cette location trouvee, il faut deplacer les enregistrements afin de degager l’espace pour l’insertion. Le tri interne ne peut marcher que sur des petits fichiers  Lorsque l’on a de grands fichiers, on peut utiliser le tri par cle

9 Recherche Rapide: Tri par Cle Vue Generale: Lorsque l’on trie un fichier en memoire, les seules choses qui aient vraiement besoin d’etre triees sont les cles. Les algorithmes de tri par cle marchent comme le tri interne, mais avec deux differences importantes: Plutot que de lire un enregistrement entier dans un tableau en memoire, on lit chaque enregistrement dans une memoire tampon temporaire, on en extrait la cle et on ignore le reste des informations Si on veut ecrire les enregisrements en ordre, il faut les lire une seconde fois.

10 Recherche Rapide: Limitation de la Methode de Tri par Cle L’ecriture d’enregistrements en ordre demande autant de seeks au hasard qu’il y a d’enregistrements. Puisque l’ecriture est parsemee parmi les operations de lectures, l’ecriture demande egalement autant de seeks au hasard qu’il y a d’enregistrements. Solution: Pourquoi re-ecrire le fichier trie par ordre de cle? Il suffit de re-ecrire l’index trie.

11 Recuperation d’Espace dans les Fichiers I: Effacement des enregistrements et compaction du storage. Compaction de Storage: Lorsque beaucoup d’enregistrements ont ete effaces, il est important d’essayer de recuperer l’espace perdu. Ceci peut se faire par compaction. La compaction se fait en cherchant les emplacements du fichier qui n’ont pas de donnees et en recuperant ces espaces. Il est donc important, pour ce faire, d’avoir un moyen pour indiquer les enregistrements effaces. Une fois l’espace perdu detecte, un programme de compaction le comprime.

12 Recuperation d’Espace dans les Fichiers II: Effacement Dynamique des enregistrements a taille fixe Le desavantage de la methode precedente est qu’il y a de l’attente entre l’effacement d’un enregistrement et la compaction. Parfois, cependant, il est necessaire de recuperer l’espace immediatement. Pour ce faire, on peut: Indiquer les enregistrements effaces Trouver l’endroit que les enregistrements effaces ont occuppe afin de le reutiliser lorsque l’on ajoute de nouveaux enregistrements Avoir un moyen de savoir immediatement s’il y a de la place dans le fichier et sauter directements a ces endroits. Solution: Utiliser une liste chainee “libre” sous forme de stack. Les numeros d’enregistrements relatifs (NER) jouent le role de pointeurs.

13 Recuperation d’Espace dans les Fichiers III: Effacement Dynamique des enregistrements a taille variable Meme idee que pour les enregistrements a taille fixe, mais une implementation differente doit etre utilisee. En partiulier, on doit conserver un compte d’octets de chaque enregistrement. De plus, les liens jusqu’au prochain enregistrement sur la liste “libre” ne peuvent pas etre les NERs. De plus, la structure de donnees utilisee pour la liste “libre” ne peut pas etre un stack puisque l’on doit s’assurer que lorsque l’on re- utilise un emplacement, il a la bonne taille.

14 Recuperation d’Espace dans les Fichiers IV: Fragmentation de Storage L’espace perdu a l’interieur d’un enregistrement s’appelle la fragmentation interne. Les enregistrements a taille variable ne souffre pas de fragmentation interne. Par contre, la fragmentation externe ne peut pas etre evitee. Il y a 3 facons de traiter la fragmentation externe: Compaction de Storage Coalescence des trous L’utilisation d’une strategie de placement intelligente

15 Recuperation d’Espace dans les Fichiers V: Strategies de Placement Strategie First Fit: accepter le premier emplacement libre capable d’accomoder le nouvel enregistrement. Strategie Best Fit: choisir le plus petit emplacement de libre qui peut accomoder le nouvel enregistrement. Strategie Worst Fit: choisir le plus grand emplacement de libre.

16 Recuperation d’Espace dans les Fichiers VI: Strategies de Placement II Quelques remarques generales sur les strategies de placement: Les strategies de placement s’appliquent seulement aux enregistrements a taille variable (bien entendu!) Si l’espace est perdu a la fragmentation interne, les meilleurs choix de strategies de placement sont first fit et best fit. Une strategie worst fit aggrave la fragmentation interne. Si, par contre, l’espace est perdu a la fragmentation externe, la strategie worst fit peut etre tres utile.

17 Enregistrements Fixes Tout comme dans le tri rapide, les indexes sont utiles dans le contexte des enregistrements effaces. La liste “libre” indicant la location des enregistrements non-utilises consiste en des enregistrements fixes (pinned records) dans le sens ou ces enregistrements ne peuvent pas etre deplaces car les deplacer creerait des pointeurs pendants (dangling pointers). Les enregistrements fixes, par contre, rendent le tri tres difficile. Une solution consiste a utiliser un index ordonne et a ne pas deplacer les enregistrements.