Gestion de Fichiers Tri Interne Efficace et Tri Externe.

Slides:



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

GEF 435 Principes des systèmes d’exploitation
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Chap. 4 Recherche en Table
Fonctions & procédures
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
GEF 435 Principes des systèmes d’exploitation
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Methode de Tri efficace
1.2 COMPOSANTES DES VECTEURS
Algorithme d’addition #1
Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2001 © Julie Dufort, M. Ing. Chapitre 3 - ajout Systèmes de fichiers.
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Structures de données IFT-10541
Structures de données IFT-2000
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline – opérations multicycles Nous avons vu jusquà maintenant comment faire un.
Hiérarchie de la mémoire
Systèmes Superscalaires et VLIW
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.
1 Evaluation des Operations Relationnelles Chapitre 14, Section 14.4.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Indexes à Arbres et Indexes à Hachage
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 Hachage Extensible.
1 Survol du Stockage et de lIndexage Chapitre 8. 2 Objectifs Stockage persistant Organisation des fichiers Fichiers de données Fichiers dindexes Operations.
1 Survol du Stockage et de lIndexage Chapitres 9-12.
Indexes à Arbres et Indexes à Hachage
Efficacité des algorithmes
Institut Supérieur des Etudes Technologiques de Djerba Exposé du Traitement de Données Réalisé par: Khalifa Marwa Magroun Amira Jawadi Souad L2MDW.
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
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,
Programmation dynamique
326 UMLV Méthodes de classement destinées à de grandes masses de données Applicables à des fichiers séquentiels Complexité : évaluée surtout en nombre.
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,
Programmation linéaire en nombres entiers
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
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
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.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Les fichiers 1ère partie
GF-4: Storage Secondaire: Disques
1 Survol du Stockage et de l’Indexage Chapitre 8.
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.
Structures de données avancées : Introduction 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.
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Files de priorité (Priority Queue)
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.
Plan… -Introduction et motivations : -Qu'est-ce que le traitement de fichiers ? -Terminologie et définitions fondamentales des structures de fichiers :
Tri Externe Chapitre 13: 13.1—13.5
Transcription de la présentation:

Gestion de Fichiers Tri Interne Efficace et Tri Externe

2 Plan du cours daujourdhui Vue générale Tri interne efficace: heapsort Tri de grands fichiers mergesort Temp dexécution de mergesort Le cout associé à lallongement des fichiers Amélioration de la performance de mergesort Ajout de hardware Améliorations algorithmiques Chevauchement des opérations dentrée/sortie

3 Vue générale Ce cours sintéresse à la question du tri efficace dans le traitement des fichiers. En particulier, il sintéresse au tri efficace dans deux cas: Le cas où le fichier peut tenir en mémoire Le cas où le fichier est trop grand pour tenir en mémoire => Tri externe Les techniques de fusion discutées précédemment (i.e. traitement coséquentiel) sont très utiles pour le tri de grands fichiers.

4 Une approche efficace pour le triage en mémoire interne Nous navons considéré jusquà maintenant que le triage de fichiers assez petits pour tenir en mémoire: On peut lire le fichier du disque en mémoire On peut le trier en utilisant une procédure habituelle. On peut écrire le fichier trié sur le disque Si le fichier est lu et écrit de facon aussi efficace que possible et si le meilleur algorithme de triage est utilisé, il semblerait que lon ne peut pas améliorer cette procédure. Néanmoins, une amélioration est possible par un traitement en parallèle: on peut, en effet, lire et écrire en même temps que lon fait le triage.

5 Chevauchement du traitement et de lentrée/sortie: heapsort heapsort peut être combinée avec la lecture du disque et lécriture sur le disque, de la manière suivante: Le heap peut être construit pendant que le fichier non trié est lu du disque. Le tri peut être fait pendant que la partie triée du fichier est écrite sur le disque.

6 Construction du heap pendant la lecture du fichier Au lieu de faire un seek à chaque fois que lon veut un nouvel enregistrement, on peut lire des blocs denregistrements en une seule fois dans une mémoire tampon et opérer sur ce bloc avant de se tourner vers un autre bloc. La mémoire tampon dentrée pour chaque nouveau bloc devient une partie de la mémoire reservée pour le heap. A chaque fois que lon lit un nouveau bloc, on lattache à la fin du heap courant. Le premier nouvel enregistrement à ajouter est à la fin du tableau contenant le heap comme requis par la fonction dinsertion dans le heap. Une fois quun enregistrement est inserré, le nouvel enregistrement suivant est a la fin du tableau contenant le heap, de nouveau, prêt à être inserré.

7 Construction du heap pendant la lecture du fichier (suite) Afin de construire le heap en même temps, on a besoin de mémoires tampon multiples: tout en traitant les enreg.s dun bloc, on peut simultanément lire un autre bloc qui sera traité plus tard. Question: Combien de mémoires tampon doivent être utilisées et où doit-on les mettre? Réponse: Le nombre de mémoires tampon correspond au nombre de blocs dans le fichier et elles doivent être localisées en séquence dans le tableau. Puisque la construction du heap est plus rapide que la lecture de blocs, il peut y avoir certains delais.

8 Faire le heapsort tout en écrivant le fichier trié sur le disque (Fig. 8.19) Le plus petit enregistrement du heap est connu dès la première étape du heapsort. Donc, il peut être mis dans une mémoire tampon de sortie jusquà ce quun bloc entier trié soit determiné. Pendant que ce bloc est écrit sur le disque, un nouveau bloc trié peut être préparé, etc… Puisqua chaque fois quun nouveau bloc est écrit sur le disque, la taille du heap diminue par un facteur de un bloc, ce bloc peut être utilisé comme mémoire tampon. Ainsi on a autant de mémoire tampon de sortie quil y a de bloc dans le fichier. Puisque tout le I/O est séquentiel, cet algorithme marche aussi bien avec des disques que avec des bandes magnétiques. De même, três peu de seeking est nécessaire et la procédure est donc efficace.

9 Une technique efficace pour trier de large fichiers sur disques: mergesort Une solution pour le problème des fichiers qui ne tiennent pas en mémoire a déjà été présentée sous la forme de lalgorithme pour triage de clés. Cependant, cet algorithmes a deux insuffisances: Une fois que les clés étaient triées, il était couteux de chercher (seek) chaque enregistrement en ordre et de les écrire dans le nouveau fichier trié. Si le fichier contient de nombreux enregistrements, lindexe lui-même ne tiendra pas en mémoire. Solution: (1) diviser le fichier en plusieurs sous-fichiers triés (runs) en utilisant une méthode de tri interne; et (2) fusionner tous les runs avec mergesort (Fig. 8.21).

10 Avantages du mergesort Il peut être appliqué à des fichiers de toutes tailles. La lecture de fichier dentrée pendant létape de création des runs est séquentielle Peu de seeking. La lecture de chaque run pendant la fusion est aussi séquentielle. Le seul seeking necessaire est pour aller dun run à lautre. Si heapsort est utilisé pour létape de tri des runs en mémoire, son opération peut être chevauchée avec celle du I/O. Puisque le I/O est surtout séquentiel, des bandes magnétiques peuvent être utilisées.

11 Temps est nécessaire pour un mergesort Supposition de simplification: Seulement un seek est requis pour chaque accès séquentiel. Seulement un délai de rotation est nécessaire par accès. Etapes couteuses (incluant du I/O) de mergesort: Pendant la phase de Tri: Lecture de tous les enregistrements dans la mémoire pour le tri et la formation des runs. Ecriture des runs triées sur le disque. Pendant la phase de Fusion: Lecture des runs triées dans la mémoire pour la fusion Ecriture du fichier trié sur le disque.

12 Type de I/O prenant place lors des phases de tri et de fusion Puisque, pendant la phase de tri, les runs sont crées en utilisant heapsort, I/O est séquentiel. Aucune amélioration de performance nest possible ici. Pendant letape de lecture de la phase de fusion, il y a beaucoup daccès au hazard (puisque les runs différents sont amenées en mémoire et effacées de la mémoire de manière imprédictible). Le nombre et la taille de la mémoire tampon contenant les runs détermine le nombre daccès au hazard. De lamélioration de performance peut prendre place en cette étape. Letape decriture de la phase de fusion nest pas influencée par la facon dont on organize les runs.

13 Cout associé à lallongement des fichiers En général, pour une fusion de K runs où chaque run est aussi large que lespace libre en mémoire, la taille de la mémoire tampon pour chacun des runs est de: (1/K)*taille de lespace mémoire=(1/K)*taille de chaque run. Donc K seeks sont requis afin de lire tous les enregistrements dans chacun des runs individuels et puisquil y a k runs en tout, lopération de fusion requiert K 2 seeks. Puisque K est directement proportionnel à N, le nombre denregistrements, mergesort est une opération dordre O(N 2 ) comptée en nombre de seeks.

14 Que faire pour améliorer la performance de mergesort? La performance de mergesort peut être ameliorée de plusieurs façons: On peut allouer plus de hardware tel que des unités de disque, de la mémoire ou des chaines I/O. On peut performer la fusion en plus dune étape, en réduisant lordre de chaque fusion et augmentant la taille de la mémoire tampon pour chaque run. On peut augmenter la longueur des runs triés initial, algorithmiquement. On peut trouver des façons de chevaucher les opérations I/O.